Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .github/workflows/maven.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@ jobs:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
java-version: '21'
distribution: 'corretto'
cache: maven

# Build and verify
Expand All @@ -41,4 +41,4 @@ jobs:

# Optional: Uploads the full dependency graph to GitHub to improve the quality of Dependabot alerts this repository can receive
- name: Update dependency graph
uses: advanced-security/maven-dependency-submission-action@571e99aab1055c2e71a1e2309b9691de18d6b7d6
uses: advanced-security/maven-dependency-submission-action@571e99aab1055c2e71a1e2309b9691de18d6b7d6
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

<groupId>simplexity</groupId>
<artifactId>AdminHax</artifactId>
<version>1.2.2</version>
<version>1.3.0</version>
<packaging>jar</packaging>

<name>AdminHax</name>
Expand Down
54 changes: 29 additions & 25 deletions src/main/java/simplexity/adminhax/commands/basic/Hat.java
Original file line number Diff line number Diff line change
Expand Up @@ -21,42 +21,46 @@ public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command
sender.sendRichMessage(Message.ERROR_MUST_BE_PLAYER.getMessage());
return false;
}
ItemStack itemInHand = player.getInventory().getItemInMainHand();
ItemStack itemInHelmSlot = player.getInventory().getHelmet();
if (itemInHelmSlot == null && itemInHand.isEmpty()) {
player.sendRichMessage(Message.ERROR_NO_ITEMS_HAT.getMessage());
ItemStack itemToHat = player.getInventory().getItemInMainHand();
ItemStack previousHelm = player.getInventory().getHelmet();
boolean userHadHelmetBefore = (previousHelm != null && !previousHelm.isEmpty());
if (!userHadHelmetBefore && itemToHat.isEmpty()) {
player.sendRichMessage(Message.ERROR_NO_HAT_ITEMS.getMessage());
return false;
}
if ((itemInHelmSlot != null && !itemInHelmSlot.isEmpty()) && (
itemInHelmSlot.getItemMeta().hasEnchant(Enchantment.BINDING_CURSE) &&
ConfigHandler.getInstance().isHatRespectsCurseOfBinding()
)){
if (userHadHelmetBefore && (previousHelm.getItemMeta().hasEnchant(Enchantment.BINDING_CURSE) &&
ConfigHandler.getInstance().shouldRespectBindingCurse())) {
player.sendRichMessage(Message.ERROR_CURSE_OF_BINDING.getMessage());
return false;
}
if (ConfigHandler.getInstance().getDisabledHatItems().contains(itemInHand.getType())) {
if (ConfigHandler.getInstance().getDisabledHatItems().contains(itemToHat.getType())) {
player.sendRichMessage(Message.ERROR_HAT_NOT_ALLOWED.getMessage());
return false;
}
if (itemInHand.getAmount() > 1) {
player.getInventory().setHelmet(itemInHand.asOne());
int amt = itemInHand.getAmount() - 1;
itemInHand.setAmount(amt);
player.getInventory().setItemInMainHand(itemInHand);
if (itemInHelmSlot != null) {
HashMap<Integer, ItemStack> leftover = player.getInventory().addItem(itemInHelmSlot);
if (!leftover.isEmpty()) {
for (Integer integer : leftover.keySet()) {
player.getWorld().dropItem(player.getLocation(), leftover.get(integer));
}
}
}
if (itemToHat.isEmpty()) {
player.getInventory().setHelmet(null);
player.getInventory().setItemInMainHand(previousHelm);
player.sendRichMessage(Message.HAT_REMOVED.getMessage());
return true;
}
player.getInventory().setHelmet(itemToHat.asOne());
itemToHat.subtract();
if (!userHadHelmetBefore) {
player.sendRichMessage(Message.HAT_SUCCESSFUL.getMessage());
} else {
player.getInventory().setHelmet(itemInHand);
if (itemInHelmSlot != null) player.getInventory().setItemInMainHand(itemInHelmSlot);
return true;
}
if (player.getInventory().getItemInMainHand().isEmpty()) {
player.getInventory().setItemInMainHand(previousHelm);
player.sendRichMessage(Message.HAT_SUCCESSFUL.getMessage());
return true;
}
HashMap<Integer, ItemStack> leftover = player.getInventory().addItem(previousHelm);
if (!leftover.isEmpty()) {
for (Integer index : leftover.keySet()) {
player.getWorld().dropItem(player.getLocation(), leftover.get(index));
}
}
player.sendRichMessage(Message.HAT_SUCCESSFUL.getMessage());
return true;
}
}
18 changes: 9 additions & 9 deletions src/main/java/simplexity/adminhax/config/ConfigHandler.java
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ public static ConfigHandler getInstance() {

private float maxWalkSpeed, minWalkSpeed, maxFlySpeed, minFlySpeed;
private boolean sessionPersistentFlight, worldChangePersistentFlight, respawnPersistentFlight,
gamemodeChangePersistentFlight, hatRespectsCurseOfBinding;
gamemodeChangePersistentFlight, respectBindingCurse;
private int maxRenameCharacters;
private static final HashSet<Material> disabledHatItems = new HashSet<>();

Expand All @@ -38,17 +38,17 @@ public void reloadConfigValues() {
respawnPersistentFlight = config.getBoolean("flight.persistent.respawn", true);
gamemodeChangePersistentFlight = config.getBoolean("flight.persistent.gamemode-change", true);
maxRenameCharacters = config.getInt("rename.max-characters", 50);
hatRespectsCurseOfBinding = config.getBoolean("hat.respect-curse-of-binding", true);
respectBindingCurse = config.getBoolean("hat.respect-curse-of-binding", true);
List<String> disabledItems = config.getStringList("hat.disabled-items");
disabledHatItems.clear();
if (!disabledItems.isEmpty()) {
for (String string : disabledItems) {
Material material = Material.getMaterial(string);
if (material == null) {
logger.info(string + " is not a valid material, please check your syntax");
for (String disabledItem : disabledItems) {
Material itemType = Material.getMaterial(disabledItem);
if (itemType == null) {
logger.info(disabledItem + " is not a valid material, please check your syntax");
continue;
}
disabledHatItems.add(material);
disabledHatItems.add(itemType);
}
}
}
Expand Down Expand Up @@ -109,8 +109,8 @@ public int getMaxRenameCharacters() {
return maxRenameCharacters;
}

public boolean isHatRespectsCurseOfBinding() {
return hatRespectsCurseOfBinding;
public boolean shouldRespectBindingCurse() {
return respectBindingCurse;
}

public HashSet<Material> getDisabledHatItems(){
Expand Down
3 changes: 2 additions & 1 deletion src/main/java/simplexity/adminhax/config/Message.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,15 @@ public enum Message {
ERROR_INVALID_PLAYER("error.invalid-player", "<red>That is not a valid player. Please check your spelling and try again</red>"),
ERROR_MUST_BE_PLAYER("error.must-be-player", "<red>You must be a player to run this command</red>"),
ERROR_MUST_HOLD_ITEM_TO_RENAME("error.must-hold-item", "<red>You must be holding item to rename</red>"),
ERROR_NO_ITEMS_HAT("error.no-hat-items", "<red>You must be holding an item or have an item in your helmet slot to use this command</red>"),
ERROR_NO_HAT_ITEMS("error.no-hat-items", "<red>You must be holding an item or have an item in your helmet slot to use this command</red>"),
ERROR_CURSE_OF_BINDING("error.curse-of-binding", "<red>You currently are wearing something with curse of binding! Sorry!</red>"),
ERROR_HAT_NOT_ALLOWED("error.hat-not-allowed", "<red>Hats of this type are not allowed</red>"),
ERROR_NAME_TOO_LONG("error.name-too-long", "<red>Sorry, that item name is too long! The max characters for an item name is <value></red>"),
ERROR_NO_PERMISSION("error.no-permission", "<red>You do not have permission to run this command</red>"),
ERROR_NOT_ENOUGH_ARGUMENTS("error.not-enough-arguments", "<red>You did not provide enough arguments. Please check your syntax and try again</red>"),
ERROR_NOT_IN_RANGE("error.not-in-range", "<red>Sorry, you must provide a number between <min> and <max></red>"),
HAT_SUCCESSFUL("hat.success", "<green>Enjoy your new hat!</green>"),
HAT_REMOVED("hat.removed", "<gray>Your hat has been returned to your inventory</gray>"),
FEED_OTHER("feed.other", "<green>You have fed <target></green>"),
FEED_SELF("feed.self", "<green>You have been fed</green>"),
FLY_SET_BY_OTHER("fly.by-other", "<green>Your fly has been <value></green>"),
Expand Down
Loading