diff --git a/pom.xml b/pom.xml index 3c89020..468fdc8 100644 --- a/pom.xml +++ b/pom.xml @@ -15,6 +15,11 @@ paper-api 1.13.2-R0.1-SNAPSHOT + + com.comphenix.protocol + ProtocolLib + 4.4.0 + @@ -22,6 +27,10 @@ papermc https://papermc.io/repo/repository/maven-public/ + + dmulloy2-repo + http://repo.dmulloy2.net/nexus/repository/public/ + diff --git a/src/main/java/pw/kaboom/extras/Main.java b/src/main/java/pw/kaboom/extras/Main.java index d83cf12..12b4066 100644 --- a/src/main/java/pw/kaboom/extras/Main.java +++ b/src/main/java/pw/kaboom/extras/Main.java @@ -9,6 +9,8 @@ import org.bukkit.Material; import org.bukkit.block.BlockFace; import org.bukkit.plugin.java.JavaPlugin; +/*import com.comphenix.protocol.ProtocolLibrary;*/ + import com.destroystokyo.paper.profile.PlayerProfile; public class Main extends JavaPlugin { @@ -611,6 +613,7 @@ public class Main extends JavaPlugin { this.getServer().getPluginManager().registerEvents(new PlayerConnection(this), this); this.getServer().getPluginManager().registerEvents(new PlayerDamage(), this); this.getServer().getPluginManager().registerEvents(new PlayerInteract(this), this); + /*ProtocolLibrary.getProtocolManager().addPacketListener(new PlayerInventory(this));*/ /* Server-related modules */ new AutosaveCheck().runTaskTimerAsynchronously(this, 0, 20); diff --git a/src/main/java/pw/kaboom/extras/modules/entity/EntitySpawn.java b/src/main/java/pw/kaboom/extras/modules/entity/EntitySpawn.java index c62c93c..5149938 100644 --- a/src/main/java/pw/kaboom/extras/modules/entity/EntitySpawn.java +++ b/src/main/java/pw/kaboom/extras/modules/entity/EntitySpawn.java @@ -19,6 +19,8 @@ import org.bukkit.entity.LivingEntity; import org.bukkit.entity.MagmaCube; import org.bukkit.entity.Slime; +import org.bukkit.event.block.BlockDispenseEvent; + import org.bukkit.event.entity.CreatureSpawnEvent; import org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason; import org.bukkit.event.entity.EntitySpawnEvent; @@ -34,6 +36,15 @@ import com.destroystokyo.paper.event.entity.PreCreatureSpawnEvent; import com.destroystokyo.paper.event.entity.PreSpawnerSpawnEvent; class EntitySpawn implements Listener { + @EventHandler + void onBlockDispense(BlockDispenseEvent event) { + try { + event.getItem().getItemMeta(); + } catch (Exception exception) { + event.setCancelled(true); + } + } + @EventHandler void onCreatureSpawn(CreatureSpawnEvent event) { if (event.getSpawnReason() == SpawnReason.CUSTOM || @@ -50,7 +61,8 @@ class EntitySpawn implements Listener { } } - if (event.getEntityType() == EntityType.DROWNED || + /*if (event.getEntityType() == EntityType.ARMOR_STAND || + event.getEntityType() == EntityType.DROWNED || event.getEntityType() == EntityType.GIANT || event.getEntityType() == EntityType.HUSK || event.getEntityType() == EntityType.PIG_ZOMBIE || @@ -60,33 +72,28 @@ class EntitySpawn implements Listener { event.getEntityType() == EntityType.WITHER_SKELETON || event.getEntityType() == EntityType.ZOMBIE || event.getEntityType() == EntityType.ZOMBIE_VILLAGER) { - final LivingEntity mob = event.getEntity(); + final LivingEntity mob = (LivingEntity) event.getEntity(); try { mob.getEquipment().getArmorContents(); } catch (Exception exception) { mob.getEquipment().setArmorContents( - new ItemStack[] { - new ItemStack(Material.AIR), - new ItemStack(Material.AIR), - new ItemStack(Material.AIR), - new ItemStack(Material.AIR), - } + new ItemStack[] {null, null, null, null} ); } try { mob.getEquipment().getItemInMainHand(); } catch (Exception exception) { - mob.getEquipment().setItemInMainHand(new ItemStack(Material.AIR)); + mob.getEquipment().setItemInMainHand(null); } try { mob.getEquipment().getItemInOffHand(); } catch (Exception exception) { - mob.getEquipment().setItemInOffHand(new ItemStack(Material.AIR)); + mob.getEquipment().setItemInOffHand(null); } - } else if (event.getEntityType() == EntityType.ENDER_DRAGON) { + } else */if (event.getEntityType() == EntityType.ENDER_DRAGON) { final int dragonCount = event.getLocation().getWorld().getEntitiesByClass(EnderDragon.class).size(); if (dragonCount > 25) { @@ -120,6 +127,40 @@ class EntitySpawn implements Listener { entity.remove(); } } + + /*if (event.getEntityType() == EntityType.ARMOR_STAND || + event.getEntityType() == EntityType.DROWNED || + event.getEntityType() == EntityType.GIANT || + event.getEntityType() == EntityType.HUSK || + event.getEntityType() == EntityType.PIG_ZOMBIE || + event.getEntityType() == EntityType.PLAYER || + event.getEntityType() == EntityType.SKELETON || + event.getEntityType() == EntityType.STRAY || + event.getEntityType() == EntityType.WITHER_SKELETON || + event.getEntityType() == EntityType.ZOMBIE || + event.getEntityType() == EntityType.ZOMBIE_VILLAGER) { + final LivingEntity mob = (LivingEntity) event.getEntity(); + + try { + mob.getEquipment().getArmorContents(); + } catch (Exception exception) { + mob.getEquipment().setArmorContents( + new ItemStack[] {null, null, null, null} + ); + } + + try { + mob.getEquipment().getItemInMainHand(); + } catch (Exception exception) { + mob.getEquipment().setItemInMainHand(null); + } + + try { + mob.getEquipment().getItemInOffHand(); + } catch (Exception exception) { + mob.getEquipment().setItemInOffHand(null); + } + }*/ } } diff --git a/src/main/java/pw/kaboom/extras/modules/player/PlayerConnection.java b/src/main/java/pw/kaboom/extras/modules/player/PlayerConnection.java index c48183e..70b0aff 100644 --- a/src/main/java/pw/kaboom/extras/modules/player/PlayerConnection.java +++ b/src/main/java/pw/kaboom/extras/modules/player/PlayerConnection.java @@ -8,7 +8,9 @@ import javax.net.ssl.HttpsURLConnection; import org.bukkit.Bukkit; import org.bukkit.ChatColor; +import org.bukkit.World; +import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; @@ -21,6 +23,8 @@ import org.bukkit.event.player.PlayerLoginEvent; import org.bukkit.event.player.PlayerLoginEvent.Result; import org.bukkit.event.player.PlayerQuitEvent; +import org.bukkit.inventory.ItemStack; + import com.destroystokyo.paper.profile.PlayerProfile; import com.destroystokyo.paper.profile.ProfileProperty; @@ -122,6 +126,7 @@ class PlayerConnection implements Listener { @EventHandler void onPlayerQuit(PlayerQuitEvent event) { final Player player = event.getPlayer(); + final World world = player.getLocation().getWorld(); main.commandMillisList.remove(player.getUniqueId()); main.interactMillisList.remove(player.getUniqueId()); diff --git a/src/main/java/pw/kaboom/extras/modules/player/PlayerInventory.java b/src/main/java/pw/kaboom/extras/modules/player/PlayerInventory.java new file mode 100644 index 0000000..b1d5d2f --- /dev/null +++ b/src/main/java/pw/kaboom/extras/modules/player/PlayerInventory.java @@ -0,0 +1,65 @@ +/*package pw.kaboom.extras; + +import java.util.ArrayList; +import java.util.List; + +import org.bukkit.entity.LivingEntity; + +import org.bukkit.inventory.ItemStack; + +import com.comphenix.protocol.PacketType; +import com.comphenix.protocol.events.ListenerPriority; +import com.comphenix.protocol.events.PacketAdapter; +import com.comphenix.protocol.events.PacketContainer; +import com.comphenix.protocol.events.PacketEvent; + +class PlayerInventory extends PacketAdapter { + private Main main; + public PlayerInventory(Main main) { + /*super(main, ListenerPriority.HIGH, PacketType.Play.Server.SET_SLOT, PacketType.Play.Server.WINDOW_ITEMS); + super(main, ListenerPriority.HIGH, PacketType.Play.Server.ENTITY_METADATA); + } + + @Override + public void onPacketSending(PacketEvent event) { + try { + LivingEntity entity = (LivingEntity) event.getPacket().getEntityModifier(event).read(0); + entity.getEquipment().getArmorContents(); + } catch (Exception exception) { + LivingEntity entity = (LivingEntity) event.getPacket().getEntityModifier(event).read(0); + entity.getEquipment().setArmorContents( + new ItemStack[] {null, null, null, null} + ); + System.out.println("slot"); + } + } + + /*@Override + public void onPacketSending(PacketEvent event) { + if (event.getPacketType().equals(PacketType.Play.Server.SET_SLOT)) { + try { + event.getPacket().getItemModifier().read(0); + } catch (Exception exception) { + PacketContainer packet = event.getPacket(); + packet.getItemModifier().write(0, new ItemStack(Material.AIR)); + event.setPacket(packet); + System.out.println("slot"); + } + } else { + try { + for (int i = 0; i < 50; i++) { + event.getPacket().getItemListModifier().read(i); + } + } catch (Exception exception) { + System.out.println("window1"); + PacketContainer packet = event.getPacket(); + for (int i = 0; i < 50; i++) { + packet.getItemListModifier().write(i, null); + } + + event.setPacket(packet); + System.out.println("window"); + } + } + } +}*/ diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index c6693d9..e120785 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -1,8 +1,9 @@ name: Extras main: pw.kaboom.extras.Main -description: Plugin that adds extra functionality to the Kaboom.pw server. +description: Plugin that adds extra functionality to the server. api-version: 1.13 version: master +#depends: [ProtocolLib] commands: clearchat: