Skip to content

Commit 63aa8b7

Browse files
committed
Fix equipment
1 parent f7b5bd6 commit 63aa8b7

File tree

3 files changed

+27
-33
lines changed

3 files changed

+27
-33
lines changed

.idea/workspace.xml

Lines changed: 1 addition & 13 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

api/src/main/java/me/tofaa/entitylib/wrapper/WrapperEntityEquipment.java

Lines changed: 16 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import com.github.retrooper.packetevents.wrapper.play.server.WrapperPlayServerEntityEquipment;
88
import me.tofaa.entitylib.EntityLib;
99
import org.jetbrains.annotations.NotNull;
10+
import org.jetbrains.annotations.Nullable;
1011

1112
import java.util.ArrayList;
1213
import java.util.Arrays;
@@ -29,39 +30,38 @@ public WrapperEntityEquipment(WrapperLivingEntity entity) {
2930
Arrays.fill(equipment, ItemStack.EMPTY);
3031
}
3132

32-
public void setHelmet(@NotNull ItemStack itemStack) {
33-
equipment[5] = itemStack;
33+
public void setHelmet(@Nullable ItemStack itemStack) {
34+
equipment[5] = itemStack == null ? ItemStack.EMPTY : itemStack;
3435
refresh();
3536
}
3637

37-
public void setChestplate(@NotNull ItemStack itemStack) {
38-
equipment[4] = itemStack;
38+
public void setChestplate(@Nullable ItemStack itemStack) {
39+
equipment[4] = itemStack == null ? ItemStack.EMPTY : itemStack;
3940
refresh();
4041
}
4142

42-
public void setLeggings(@NotNull ItemStack itemStack) {
43-
equipment[3] = itemStack;
43+
public void setLeggings(@Nullable ItemStack itemStack) {
44+
equipment[3] = itemStack == null ? ItemStack.EMPTY : itemStack;
4445
refresh();
4546
}
4647

47-
public void setBoots(@NotNull ItemStack itemStack) {
48-
equipment[2] = itemStack;
48+
public void setBoots(@Nullable ItemStack itemStack) {
49+
equipment[2] = itemStack == null ? ItemStack.EMPTY : itemStack;
4950
refresh();
5051
}
5152

52-
public void setMainHand(@NotNull ItemStack itemStack) {
53-
equipment[0] = itemStack;
53+
public void setMainHand(@Nullable ItemStack itemStack) {
54+
equipment[0] = itemStack == null ? ItemStack.EMPTY : itemStack;
5455
refresh();
5556
}
5657

57-
public void setOffhand(@NotNull ItemStack itemStack) {
58-
verifyVersion(ServerVersion.V_1_9, "Offhand is only supported on 1.9+");
59-
equipment[1] = itemStack;
58+
public void setOffhand(@Nullable ItemStack itemStack) {
59+
equipment[1] = itemStack == null ? ItemStack.EMPTY : itemStack;
6060
refresh();
6161
}
6262

63-
public void setItem(@NotNull EquipmentSlot slot, @NotNull ItemStack itemStack) {
64-
equipment[slot.ordinal()] = itemStack;
63+
public void setItem(@NotNull EquipmentSlot slot, @Nullable ItemStack itemStack) {
64+
equipment[slot.ordinal()] = itemStack == null ? ItemStack.EMPTY : itemStack;
6565
refresh();
6666
}
6767

@@ -102,7 +102,6 @@ public WrapperPlayServerEntityEquipment createPacket() {
102102
List<Equipment> equipment = new ArrayList<>();
103103
for (int i = 0; i < this.equipment.length; i++) {
104104
ItemStack itemStack = this.equipment[i];
105-
if (itemStack == null || itemStack.equals(ItemStack.EMPTY)) continue;
106105
equipment.add(new Equipment(EQUIPMENT_SLOTS[i], itemStack));
107106
}
108107
return new WrapperPlayServerEntityEquipment(
@@ -124,8 +123,6 @@ public boolean isNotifyingChanges() {
124123

125124
public void setNotifyChanges(boolean notifyChanges) {
126125
this.notifyChanges = notifyChanges;
127-
if (notifyChanges) {
128-
refresh();
129-
}
126+
refresh();
130127
}
131128
}

test-plugin/src/main/java/me/tofaa/testentitylib/TestPlayerCommand.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,15 @@ public boolean execute(@NotNull CommandSender commandSender, @NotNull String s,
7979
p.remove();
8080
player.sendMessage("Entity removed");
8181
break;
82+
case "hidearmor":
83+
p.getEquipment().setNotifyChanges(false);
84+
p.getEquipment().setBoots(null);
85+
p.getEquipment().setChestplate(null);
86+
p.getEquipment().setHelmet(null);
87+
p.getEquipment().setLeggings(null);
88+
p.getEquipment().setMainHand(null);
89+
p.getEquipment().setOffhand(null);
90+
p.getEquipment().setNotifyChanges(true);
8291
}
8392
return true;
8493
}
@@ -87,7 +96,7 @@ public boolean execute(@NotNull CommandSender commandSender, @NotNull String s,
8796
@Override
8897
public List<String> tabComplete(@NotNull CommandSender sender, @NotNull String alias, @NotNull String[] args) throws IllegalArgumentException {
8998
if (args.length == 1) {
90-
return Arrays.asList("spawn", "texture", "ping", "gamemode", "displayname", "tablist", "remove", "sneak");
99+
return Arrays.asList("spawn", "texture", "ping", "gamemode", "displayname", "tablist", "remove", "sneak", "hidearmor");
91100
}
92101
return Collections.emptyList();
93102
}

0 commit comments

Comments
 (0)