From 446f658c1322055eab1831a9ec8c7bb4ee2d59f5 Mon Sep 17 00:00:00 2001 From: Super_ Date: Thu, 2 Jan 2020 19:58:52 -0500 Subject: [PATCH] section exploit patch --- .../blocking/BlockBlocker.java | 31 +++++++++++++++---- 1 file changed, 25 insertions(+), 6 deletions(-) diff --git a/src/main/java/me/totalfreedom/totalfreedommod/blocking/BlockBlocker.java b/src/main/java/me/totalfreedom/totalfreedommod/blocking/BlockBlocker.java index 69084610..633d2642 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/blocking/BlockBlocker.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/blocking/BlockBlocker.java @@ -13,6 +13,7 @@ import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.block.BlockPlaceEvent; import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.inventory.meta.SkullMeta; public class BlockBlocker extends FreedomService @@ -145,14 +146,32 @@ public class BlockBlocker extends FreedomService case PLAYER_WALL_HEAD: { Skull skull = (Skull) event.getBlockPlaced().getState(); - if (skull.hasOwner() && skull.getOwner().length() > 16) + if (skull.hasOwner()) { - skull.setOwner(skull.getOwner().substring(0, 16)); - SkullMeta meta = (SkullMeta) event.getItemInHand().getItemMeta(); - if (meta != null) + if (skull.getOwner().contains("§")) { - meta.setOwner(meta.getOwner().substring(0, 16)); - event.getItemInHand().setItemMeta(meta); + skull.setOwner(skull.getOwner().replace("§", "")); + SkullMeta meta = (SkullMeta) event.getItemInHand().getItemMeta(); + if (meta != null) + { + ItemStack newHead = new ItemStack(Material.PLAYER_HEAD, 1); + ItemMeta headMeta = newHead.getItemMeta(); + headMeta.setDisplayName(ChatColor.YELLOW + "C-sectioned Head"); + newHead.setItemMeta(headMeta); + player.getInventory().setItem(player.getInventory().getHeldItemSlot(), newHead); + player.sendMessage(ChatColor.GRAY + "The player head you are attempting to place has a section symbol. Your player head has been C-sectioned."); + event.setCancelled(true); + } + } + if (skull.getOwner().length() > 16) + { + skull.setOwner(skull.getOwner().substring(0, 16)); + SkullMeta meta = (SkullMeta)event.getItemInHand().getItemMeta(); + if (meta != null) + { + meta.setOwner(meta.getOwner().substring(0, 16)); + event.getItemInHand().setItemMeta(meta); + } } } break;