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: