File tree Expand file tree Collapse file tree 2 files changed +19
-3
lines changed Expand file tree Collapse file tree 2 files changed +19
-3
lines changed Original file line number Diff line number Diff line change @@ -68,6 +68,11 @@ public final void clear() {
68
68
public final boolean isEmpty () {
69
69
return id == 0 ;
70
70
}
71
+
72
+ public ItemBase getItemBase () {
73
+ return Static .items .items [id ];
74
+ }
75
+
71
76
public final String toString () {
72
77
return "item:" + (int )id + "," + var + "," + count + "," + dmg ;
73
78
}
Original file line number Diff line number Diff line change @@ -1178,16 +1178,27 @@ public void doCommand(Client client, String cmd) {
1178
1178
cnt = JF .atoi (p [3 ]);
1179
1179
if (cnt < 1 || cnt > 64 ) cnt = 1 ;
1180
1180
}
1181
- int var = 0 ;
1181
+ int var = - 1 ;
1182
1182
if (p .length >= 5 ) {
1183
1183
var = JF .atoi (p [4 ]);
1184
- if (var < 0 || var > 7 ) var = 0 ;
1184
+ if (var < 0 || var > 7 ) var = - 1 ;
1185
1185
}
1186
1186
Item item = findItem (p [2 ], cnt );
1187
1187
if (item == null ) {
1188
1188
client .serverTransport .sendMsg ("Error:Item not found:" + p [2 ]);
1189
1189
} else {
1190
- item .var = (byte )var ;
1190
+ if (var != -1 ) {
1191
+ //validate var
1192
+ ItemBase itembase = item .getItemBase ();
1193
+ if (itembase .isVar ) {
1194
+ if (var >= itembase .names .length ) {
1195
+ var = -1 ;
1196
+ }
1197
+ if (var != -1 ) {
1198
+ item .var = (byte )var ;
1199
+ }
1200
+ }
1201
+ }
1191
1202
Static .log ("give:" + (int )item .id + ":" + cnt );
1192
1203
client .addItem (item , true );
1193
1204
}
You can’t perform that action at this time.
0 commit comments