diff --git a/src/main/java/cn/dreeam/surf/modules/antiillegal/CheckIllegal.java b/src/main/java/cn/dreeam/surf/modules/antiillegal/CheckIllegal.java index 30e14cf..0f0c2f8 100644 --- a/src/main/java/cn/dreeam/surf/modules/antiillegal/CheckIllegal.java +++ b/src/main/java/cn/dreeam/surf/modules/antiillegal/CheckIllegal.java @@ -28,7 +28,7 @@ public void onJoin(PlayerJoinEvent event) { Inventory inv = event.getPlayer().getInventory(); - ItemUtil.cleanIllegals(inv); + ItemUtil.cleanIllegals(inv, event.getPlayer().getName()); } @EventHandler(ignoreCancelled = true) @@ -40,7 +40,7 @@ public void onInventoryMove(InventoryMoveItemEvent event) { if (!inv.getType().equals(InventoryType.CRAFTING)) return; - ItemUtil.cleanIllegals(inv); + ItemUtil.cleanIllegals(inv, inv.getType().name()); } @EventHandler @@ -52,7 +52,7 @@ public void onInventoryClose(InventoryCloseEvent event) { if (!inv.getType().equals(InventoryType.PLAYER)) return; - ItemUtil.cleanIllegals(inv); + ItemUtil.cleanIllegals(inv, event.getPlayer().getName()); } @EventHandler @@ -64,7 +64,7 @@ public void onInventoryOpen(InventoryOpenEvent event) { if (!inv.getType().equals(InventoryType.PLAYER)) return; - ItemUtil.cleanIllegals(inv); + ItemUtil.cleanIllegals(inv, event.getPlayer().getName()); } @EventHandler(ignoreCancelled = true) @@ -95,7 +95,11 @@ public void onPickup(EntityPickupItemEvent event) { Player player = (Player) event.getEntity(); MessageUtil.sendMessage(player, "&6You can not pick up this illegal item."); } else { - MessageUtil.println(event.getEntity().getName() + " try to pick up an illegal item at " + event.getItem().getLocation()); + MessageUtil.println(String.format( + "%s try to pick up an illegal item at %s", + event.getEntity().getName().toLowerCase(), + MessageUtil.locToString(event.getItem().getLocation()) + )); } } } diff --git a/src/main/java/cn/dreeam/surf/modules/antiillegal/CheckRoseStackerItem.java b/src/main/java/cn/dreeam/surf/modules/antiillegal/CheckRoseStackerItem.java index 950baf9..5b4a10a 100644 --- a/src/main/java/cn/dreeam/surf/modules/antiillegal/CheckRoseStackerItem.java +++ b/src/main/java/cn/dreeam/surf/modules/antiillegal/CheckRoseStackerItem.java @@ -26,7 +26,11 @@ public void onPickup(ItemPickupEvent event) { Player player = (Player) event.getEntity(); MessageUtil.sendMessage(player, "&6You can not pick up this illegal item."); } else { - MessageUtil.println(event.getEntity().getName() + " try to pick up an illegal item at " + event.getStackedItem().getLocation()); + MessageUtil.println(String.format( + "%s try to pick up an illegal item at %s", + event.getEntity().getName().toLowerCase(), + MessageUtil.locToString(event.getStackedItem().getLocation()) + )); } } } diff --git a/src/main/java/cn/dreeam/surf/modules/antiillegal/IllegalDamageAndPotionCheck.java b/src/main/java/cn/dreeam/surf/modules/antiillegal/IllegalDamageAndPotionCheck.java index 1e94598..e32fe8b 100644 --- a/src/main/java/cn/dreeam/surf/modules/antiillegal/IllegalDamageAndPotionCheck.java +++ b/src/main/java/cn/dreeam/surf/modules/antiillegal/IllegalDamageAndPotionCheck.java @@ -47,13 +47,25 @@ public void onDamage(EntityDamageByEntityEvent event) { LivingEntity damager = (LivingEntity) entity; // Only check entities using illegal items if (damager.getEquipment() != null && damager.getEquipment().getItemInMainHand().hasItemMeta()) { - if (event.getDamage() > 30) { + double damage = event.getDamage(); + + if (damage > 30) { + String itemName = ItemUtil.getItemDisplayName(damager.getEquipment().getItemInMainHand()); + event.setCancelled(true); damager.getEquipment().setItemInMainHand(null); // Seems only can use item on main hand to attack - MessageUtil.println(damager.getName() + " | " + Config.checkIllegalDamageMessage + " | " + damager.getLocation()); + + MessageUtil.println(String.format( + "%s try to use illegal item %s with damage %s at %s", + damager.getName(), + itemName, + damage, + MessageUtil.locToString(damager.getLocation()) + )); } } } + // Player: Projectile -> Entity // Dreeam TODO: this is temp fix, need to rewrite. if (entity instanceof Projectile) { @@ -186,12 +198,18 @@ public void onDispense(BlockDispenseEvent event) { if (ItemUtil.isIllegalEffect(effect)) { event.setCancelled(true); disp.getInventory().remove(event.getItem()); - MessageUtil.println(Config.checkIllegalPotionMessage + " | " + event.getBlock().getLocation()); + // One illegal potion effect appear, remove whole item // then break the for loop. break; } } + + MessageUtil.println(String.format( + "Detected item %s with illegal effects at %s", + ItemUtil.getItemDisplayName(event.getItem()), + MessageUtil.locToString(event.getBlock().getLocation()) + )); } } } diff --git a/src/main/java/cn/dreeam/surf/modules/antilag/MinecartLag.java b/src/main/java/cn/dreeam/surf/modules/antilag/MinecartLag.java index cb76034..d74a64f 100644 --- a/src/main/java/cn/dreeam/surf/modules/antilag/MinecartLag.java +++ b/src/main/java/cn/dreeam/surf/modules/antilag/MinecartLag.java @@ -31,11 +31,13 @@ public void onSpawn(VehicleCreateEvent event) { if (amount >= max) { event.setCancelled(true); + for (Entity ent : event.getVehicle().getChunk().getEntities()) { if (ent instanceof Vehicle) { ent.remove(); } } + MessageUtil.sendMessage(player, Util.getPrefix() + "&6Please limit " + formattedName + " to &r&c" + max + "&r&6 per chunk"); } } diff --git a/src/main/java/cn/dreeam/surf/modules/patch/BucketEvent.java b/src/main/java/cn/dreeam/surf/modules/patch/BucketEvent.java index 5214822..10edfb9 100644 --- a/src/main/java/cn/dreeam/surf/modules/patch/BucketEvent.java +++ b/src/main/java/cn/dreeam/surf/modules/patch/BucketEvent.java @@ -32,7 +32,11 @@ public void onDispense(BlockDispenseEvent event) { if (checkEndPortal(event.getBlock())) { event.setCancelled(true); - MessageUtil.println(Config.preventBuketPortalMessage + " | " + event.getBlock().getLocation()); + + MessageUtil.println(String.format( + "Prevent a bucket on portal crash at %s.", + MessageUtil.locToString(event.getBlock().getLocation()) + )); } } diff --git a/src/main/java/cn/dreeam/surf/modules/patch/DispenserCrash.java b/src/main/java/cn/dreeam/surf/modules/patch/DispenserCrash.java index d57807a..b11fda7 100644 --- a/src/main/java/cn/dreeam/surf/modules/patch/DispenserCrash.java +++ b/src/main/java/cn/dreeam/surf/modules/patch/DispenserCrash.java @@ -28,7 +28,11 @@ public void dispense(BlockDispenseEvent event) { boolean isYMaxFacingUp = block.getY() == block.getWorld().getMaxHeight() - 1 && face == BlockFace.UP; if (isY0FacingDown || isYMaxFacingUp) { event.setCancelled(true); - MessageUtil.println("Prevent a dispenser crash at " + block.getLocation() +"."); + + MessageUtil.println(String.format( + "Prevent a dispenser crash at %s.", + MessageUtil.locToString(block.getLocation()) + )); } } } diff --git a/src/main/java/cn/dreeam/surf/modules/patch/GateWay.java b/src/main/java/cn/dreeam/surf/modules/patch/GateWay.java index 2051a0b..47bb2f2 100644 --- a/src/main/java/cn/dreeam/surf/modules/patch/GateWay.java +++ b/src/main/java/cn/dreeam/surf/modules/patch/GateWay.java @@ -58,7 +58,11 @@ public void onEntityPortal(EntityPortalEvent event) { if (entity instanceof ChestedHorse) { entity.eject(); event.setCancelled(true); - MessageUtil.println("&1Prevented a entity enter portal crash at" + entity.getLocation()); + + MessageUtil.println(String.format( + "&1Prevented a entity enter portal crash at %s", + MessageUtil.locToString(entity.getLocation()) + )); } } @@ -77,7 +81,12 @@ public void EndGatewayTeleportProtection(VehicleMoveEvent event) { vehicle.eject(); vehicle.remove(); Util.kickPlayer(player, "Sorry this exploit got patched :("); - MessageUtil.println("&1Prevented&r&e " + player.getName() + "&r&1 at &r&e" + vehicle.getLocation() + " &r&1from crashing the server"); + + MessageUtil.println(String.format( + "&1Prevented&r&e %s &r&1 at &r&e %s &r&1from crashing the server", + player.getName(), + MessageUtil.locToString(vehicle.getLocation()) + )); } } } diff --git a/src/main/java/cn/dreeam/surf/util/ItemUtil.java b/src/main/java/cn/dreeam/surf/util/ItemUtil.java index 5134944..f10a311 100644 --- a/src/main/java/cn/dreeam/surf/util/ItemUtil.java +++ b/src/main/java/cn/dreeam/surf/util/ItemUtil.java @@ -2,13 +2,16 @@ import cn.dreeam.surf.config.Config; import com.cryptomorin.xseries.XMaterial; +import net.kyori.adventure.text.serializer.plain.PlainTextComponentSerializer; import org.bukkit.attribute.Attribute; import org.bukkit.enchantments.Enchantment; +import org.bukkit.entity.Item; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemFlag; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.inventory.meta.PotionMeta; +import org.bukkit.inventory.meta.SpawnEggMeta; import org.bukkit.potion.PotionEffect; import org.bukkit.potion.PotionEffectType; @@ -172,7 +175,7 @@ public static boolean isIllegal(ItemStack i) { || isUnbreakable(i) || hasIllegalEnchants(i) || hasIllegalItemFlag(i) || hasIllegalAttributes(i); } - public static void cleanIllegals(Inventory inventory) { + public static void cleanIllegals(Inventory inventory, String name) { ItemStack[] contents = inventory.getContents(); // if inventory is empty, skip @@ -190,7 +193,11 @@ public static void cleanIllegals(Inventory inventory) { item.setAmount(0); } - MessageUtil.println("&6Detected illegals " + original.getI18NDisplayName()); + MessageUtil.println(String.format( + "&6Detected illegals %s on %s", + ItemUtil.getItemDisplayName(original), + name + ) ); } } } @@ -297,7 +304,11 @@ private static List initIllegalBlocks() { "REINFORCED_DEEPSLATE" )); + // <= 1.12.2 if (Util.isNewerAndEqual(12, 0)) { + list.addAll(Arrays.asList( + + )); } return list; @@ -381,4 +392,5 @@ private static Map initIllegalEnchantsMap() { return map; } + public static String getItemDisplayName(ItemStack itemStack) { } \ No newline at end of file diff --git a/src/main/java/cn/dreeam/surf/util/MessageUtil.java b/src/main/java/cn/dreeam/surf/util/MessageUtil.java index 78e778c..aa901fe 100644 --- a/src/main/java/cn/dreeam/surf/util/MessageUtil.java +++ b/src/main/java/cn/dreeam/surf/util/MessageUtil.java @@ -4,6 +4,7 @@ import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer; import org.bukkit.Bukkit; import org.bukkit.ChatColor; +import org.bukkit.Location; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; @@ -21,7 +22,7 @@ public static void sendMessage(Player player, String message) { player.sendMessage(message); } - println(player + " | " + message); + println("[" + player + "] " + message); } @SuppressWarnings("deprecation") @@ -43,4 +44,9 @@ public static void println(String message) { Bukkit.getServer().getConsoleSender().sendMessage(message); } + + // World + public static String locToString(Location loc) { + return loc.getWorld().getName() + ""; + } }