Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork 0
Adds the ability to use /hat to put stuff on your head #4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Uh oh!
There was an error while loading. Please reload this page.
Changes from all commits
File filter
Filter by extension
Conversations
Uh oh!
There was an error while loading. Please reload this page.
Jump to
Uh oh!
There was an error while loading. Please reload this page.
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,66 @@ | ||
| package simplexity.adminhax.commands.basic; | ||
| import org.bukkit.command.Command; | ||
| import org.bukkit.command.CommandExecutor; | ||
| import org.bukkit.command.CommandSender; | ||
| import org.bukkit.enchantments.Enchantment; | ||
| import org.bukkit.entity.Player; | ||
| import org.bukkit.inventory.ItemStack; | ||
| import org.jetbrains.annotations.NotNull; | ||
| import simplexity.adminhax.config.ConfigHandler; | ||
| import simplexity.adminhax.config.Message; | ||
| import java.util.HashMap; | ||
| public class Hat implements CommandExecutor { | ||
| @Override | ||
| public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String s, @NotNull String[] args) { | ||
| if (!(sender instanceof Player player)) { | ||
| sender.sendRichMessage(Message.ERROR_MUST_BE_PLAYER.getMessage()); | ||
| return false; | ||
| } | ||
| 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 (userHadHelmetBefore && (previousHelm.getItemMeta().hasEnchant(Enchantment.BINDING_CURSE) && | ||
| ConfigHandler.getInstance().shouldRespectBindingCurse())) { | ||
RhythmicSys marked this conversation as resolved.
Uh oh!There was an error while loading. Please reload this page. | ||
| player.sendRichMessage(Message.ERROR_CURSE_OF_BINDING.getMessage()); | ||
| return false; | ||
| } | ||
| if (ConfigHandler.getInstance().getDisabledHatItems().contains(itemToHat.getType())) { | ||
| player.sendRichMessage(Message.ERROR_HAT_NOT_ALLOWED.getMessage()); | ||
| return false; | ||
| } | ||
| 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()); | ||
| 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; | ||
| } | ||
| } | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -40,7 +40,7 @@ public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command | ||
| } | ||
| ItemStack heldItem = player.getInventory().getItemInMainHand(); | ||
| if (heldItem.isEmpty() || heldItem.getType().isEmpty()) { | ||
RhythmicSys marked this conversation as resolved.
Uh oh!There was an error while loading. Please reload this page. | ||
| player.sendRichMessage(Message.ERROR_MUST_HOLD_ITEM.getMessage()); | ||
| player.sendRichMessage(Message.ERROR_MUST_HOLD_ITEM_TO_RENAME.getMessage()); | ||
| return false; | ||
| } | ||
| Component newName = parsedName(player, renameString); | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -13,4 +13,8 @@ flight: | ||
| gamemode: true | ||
| rename: | ||
| max-characters: 50 #Going over 50 characters may cause unwanted visual effects such as the | ||
| # tooltip going off the screen | ||
| # tooltip going off the screen | ||
| hat: | ||
| respect-curse-of-binding: true | ||
RhythmicSys marked this conversation as resolved.
Uh oh!There was an error while loading. Please reload this page. | ||
| disabled-items: | ||
| - DEBUG_STICK | ||
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.