feat: enhance silence and unsilence functionality and manage nametag item amount
This commit is contained in:
1 parent
091bc8f10c
commit
98dc59ca15
2 files changed
+16
-1
No files matched your search
+9
@@ -16,8 +16,10 @@ public class NametagEntityListener extends ApplianceListener<SilenceNametag> {
|
|||||||
ItemStack item;
|
ItemStack item;
|
||||||
|
|
||||||
if (event.getHand() == EquipmentSlot.HAND) {
|
if (event.getHand() == EquipmentSlot.HAND) {
|
||||||
|
System.out.println("Using main hand");
|
||||||
item = event.getPlayer().getInventory().getItemInMainHand();
|
item = event.getPlayer().getInventory().getItemInMainHand();
|
||||||
} else {
|
} else {
|
||||||
|
System.out.println("Using off hand");
|
||||||
item = event.getPlayer().getInventory().getItemInOffHand();
|
item = event.getPlayer().getInventory().getItemInOffHand();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -29,17 +31,24 @@ public class NametagEntityListener extends ApplianceListener<SilenceNametag> {
|
|||||||
)) return;
|
)) return;
|
||||||
|
|
||||||
if (getAppliance().getNametagAction(item) == SilenceNametag.NametagActions.SILENCE) {
|
if (getAppliance().getNametagAction(item) == SilenceNametag.NametagActions.SILENCE) {
|
||||||
|
System.out.println("Silencing mob");
|
||||||
event.getRightClicked().setSilent(true);
|
event.getRightClicked().setSilent(true);
|
||||||
event.getPlayer().sendMessage(
|
event.getPlayer().sendMessage(
|
||||||
Component.text("Der Mob wurde verstummt.")
|
Component.text("Der Mob wurde verstummt.")
|
||||||
.color(NamedTextColor.GREEN)
|
.color(NamedTextColor.GREEN)
|
||||||
);
|
);
|
||||||
} else if (getAppliance().getNametagAction(item) == SilenceNametag.NametagActions.UNSILENCE) {
|
} else if (getAppliance().getNametagAction(item) == SilenceNametag.NametagActions.UNSILENCE) {
|
||||||
|
System.out.println("Unsilencing mob");
|
||||||
event.getRightClicked().setSilent(false);
|
event.getRightClicked().setSilent(false);
|
||||||
event.getPlayer().sendMessage(
|
event.getPlayer().sendMessage(
|
||||||
Component.text("Der Mob wurde entstummt.")
|
Component.text("Der Mob wurde entstummt.")
|
||||||
.color(NamedTextColor.GREEN)
|
.color(NamedTextColor.GREEN)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (item.getItemMeta().customName() == null){
|
||||||
|
System.out.println("Nametag has no custom name, reducing amount");
|
||||||
|
item.setAmount(item.getAmount() - 1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+7
-1
@@ -31,6 +31,7 @@ public class SilenceNametag extends Appliance {
|
|||||||
setPersistentDataOfNametag(item, action);
|
setPersistentDataOfNametag(item, action);
|
||||||
removeLoreOfNametag(item);
|
removeLoreOfNametag(item);
|
||||||
setLoreOfNametag(item, action);
|
setLoreOfNametag(item, action);
|
||||||
|
restoreDefaultNameOfNametag(item);
|
||||||
return item;
|
return item;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -58,11 +59,16 @@ public class SilenceNametag extends Appliance {
|
|||||||
} else if (action == NametagActions.UNSILENCE){
|
} else if (action == NametagActions.UNSILENCE){
|
||||||
lore.add(Component.text("Dieser Name Tag entstummt Mobs."));
|
lore.add(Component.text("Dieser Name Tag entstummt Mobs."));
|
||||||
}
|
}
|
||||||
meta.customName(null);
|
|
||||||
meta.lore(lore);
|
meta.lore(lore);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void restoreDefaultNameOfNametag(ItemStack item){
|
||||||
|
item.editMeta(meta -> {
|
||||||
|
meta.customName(null);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
@Nullable NametagActions getNametagAction(ItemStack item) {
|
@Nullable NametagActions getNametagAction(ItemStack item) {
|
||||||
Objects.requireNonNull(item, "Item must not be null.");
|
Objects.requireNonNull(item, "Item must not be null.");
|
||||||
return item.getPersistentDataContainer().get(nametagActionKey, PersistentDataType.INTEGER) == null
|
return item.getPersistentDataContainer().get(nametagActionKey, PersistentDataType.INTEGER) == null
|
||||||
|
|||||||
Reference in new issue
Block a user