12
12
import net .minecraft .item .Item ;
13
13
import net .minecraft .item .ItemStack ;
14
14
import net .minecraft .network .packet .s2c .play .*;
15
+ import net .minecraft .registry .Registries ;
15
16
import net .minecraft .util .Identifier ;
16
17
import net .minecraft .util .math .Vec3d ;
17
18
import net .wurstclient .Category ;
22
23
import net .wurstclient .events .UpdateListener ;
23
24
import net .wurstclient .hack .Hack ;
24
25
import net .wurstclient .settings .CheckboxSetting ;
26
+ import net .wurstclient .settings .ItemListSetting ;
25
27
import net .wurstclient .settings .SliderSetting ;
26
- import net .wurstclient .settings .TextFieldSetting ;
27
28
import net .wurstclient .util .*;
28
29
import org .joml .Matrix4f ;
29
30
import org .lwjgl .opengl .GL11 ;
30
31
31
32
import java .util .ArrayList ;
32
- import java .util .Arrays ;
33
33
import java .util .concurrent .CopyOnWriteArrayList ;
34
34
import java .util .stream .Collectors ;
35
35
import java .util .stream .Stream ;
@@ -43,15 +43,18 @@ public final class MurderMysteryHack extends Hack
43
43
"How large the texture indicators above players heads should be." , 1 ,
44
44
0.5 , 2 , 0.01 , SliderSetting .ValueDisplay .PERCENTAGE );
45
45
46
- private final TextFieldSetting murdererItems = new TextFieldSetting (
47
- "List of murderer's items" ,
48
- "A space-separated string of Minecraft item IDs (without specifying the 'minecraft:' namespace) which describes all possible items that murderer can use as a sword." ,
49
- "wooden_sword stone_sword iron_sword diamond_sword golden_sword netherite_sword shears" );
46
+ private final ItemListSetting murdererItemsList =
47
+ new ItemListSetting ("List of murderer's items" ,
48
+ "All possible items that murderer can use as a sword." ,
49
+ "minecraft:wooden_sword" , "minecraft:stone_sword" ,
50
+ "minecraft:iron_sword" , "minecraft:diamond_sword" ,
51
+ "minecraft:golden_sword" , "minecraft:netherite_sword" ,
52
+ "minecraft:shears" );
50
53
51
- private final TextFieldSetting detectiveItems = new TextFieldSetting (
52
- "List of detective's items" ,
53
- "A space-separated string of Minecraft item IDs (without specifying the 'minecraft:' namespace) which describes all possible items that detective can use as a bow." ,
54
- " bow crossbow" );
54
+ private final ItemListSetting detectiveItemsList =
55
+ new ItemListSetting ( "List of detective's items" ,
56
+ "All possible items that detective can use as a bow." ,
57
+ "minecraft: bow" , "minecraft: crossbow" );
55
58
56
59
private final CheckboxSetting showSwordIndicators = new CheckboxSetting (
57
60
"Show sword indicators" ,
@@ -124,8 +127,8 @@ public MurderMysteryHack()
124
127
super ("MurderMystery" );
125
128
setCategory (Category .RENDER );
126
129
addSetting (scale );
127
- addSetting (murdererItems );
128
- addSetting (detectiveItems );
130
+ addSetting (murdererItemsList );
131
+ addSetting (detectiveItemsList );
129
132
addSetting (showSwordIndicators );
130
133
addSetting (showBowIndicators );
131
134
addSetting (reportMurderers );
@@ -284,14 +287,15 @@ public void onReceivedPacket(PacketInputEvent event)
284
287
if (pair .getFirst () != EquipmentSlot .MAINHAND )
285
288
continue ;
286
289
287
- Item item = pair .getSecond ().getItem ();
288
290
for (PlayerEntity pe : players )
289
291
{
290
292
if (pe .getId () != equip .getId ())
291
293
continue ;
292
294
293
- if (Arrays .asList (murdererItems .getValue ().strip ().split ("\\ s+" ))
294
- .contains (item .toString ()))
295
+ Item item = pair .getSecond ().getItem ();
296
+ String itemName = Registries .ITEM .getId (item ).toString ();
297
+
298
+ if (murdererItemsList .getItemNames ().contains (itemName ))
295
299
{
296
300
if (murderers .contains (pe ))
297
301
break ;
@@ -302,9 +306,7 @@ public void onReceivedPacket(PacketInputEvent event)
302
306
break ;
303
307
}
304
308
305
- if (Arrays
306
- .asList (detectiveItems .getValue ().strip ().split ("\\ s+" ))
307
- .contains (item .toString ()))
309
+ if (detectiveItemsList .getItemNames ().contains (itemName ))
308
310
{
309
311
if (detectives .contains (pe ))
310
312
break ;
0 commit comments