From c20baafe861039acf9c1de4e286f51c2d5bfdafb Mon Sep 17 00:00:00 2001 From: add5tar Date: Tue, 8 Jul 2025 14:51:27 +1000 Subject: [PATCH 1/4] Add PacketEvents soft depend and module dependency --- pom.xml | 11 ++++ src/au/com/addstar/pandora/MasterPlugin.java | 1 + .../pandora/modules/OverworldHijack.java | 53 +++++++++++++++++++ src/resources/plugin.yml | 2 +- 4 files changed, 66 insertions(+), 1 deletion(-) create mode 100644 src/au/com/addstar/pandora/modules/OverworldHijack.java diff --git a/pom.xml b/pom.xml index dd9997e..f446f70 100644 --- a/pom.xml +++ b/pom.xml @@ -145,6 +145,10 @@ MikeRepo https://repo.mikeprimm.com/ + + simplix + https://repo.simplix.dev/ + @@ -525,6 +529,13 @@ Konquest 0.12.0 + + + dev.simplix.protocolize + packetevents-bukkit + 1.0.0 + provided + diff --git a/src/au/com/addstar/pandora/MasterPlugin.java b/src/au/com/addstar/pandora/MasterPlugin.java index f6c5212..cdf4c02 100644 --- a/src/au/com/addstar/pandora/MasterPlugin.java +++ b/src/au/com/addstar/pandora/MasterPlugin.java @@ -128,6 +128,7 @@ private void registerModules() { registerModule("RPlaceDynmap", "au.com.addstar.pandora.modules.RPlaceDynmap", "dynmap", "RPlace"); registerModule("Konquest", "au.com.addstar.pandora.modules.Konquest", "Konquest"); registerModule("MineChessHelper", "au.com.addstar.pandora.modules.MineChessHelper","MineChessPlus", "ChatControl"); + registerModule("OverworldHijack", "au.com.addstar.pandora.modules.OverworldHijack", "PacketEvents"); } @Override diff --git a/src/au/com/addstar/pandora/modules/OverworldHijack.java b/src/au/com/addstar/pandora/modules/OverworldHijack.java new file mode 100644 index 0000000..a18e2a1 --- /dev/null +++ b/src/au/com/addstar/pandora/modules/OverworldHijack.java @@ -0,0 +1,53 @@ +package au.com.addstar.pandora.modules; + +import au.com.addstar.pandora.MasterPlugin; +import au.com.addstar.pandora.Module; +import dev.simplix.protocolize.api.Protocolize; +import dev.simplix.protocolize.api.event.PacketListener; +import dev.simplix.protocolize.api.event.PacketSendEvent; +import dev.simplix.protocolize.api.mapping.MappingData; +import dev.simplix.protocolize.data.packets.PlayServerJoinGame; +import dev.simplix.protocolize.data.packets.PlayServerRespawn; + +public class OverworldHijack implements Module, PacketListener { + + @Override + public void onEnable() { + Protocolize.listenerProvider().registerListener(this); + } + + @Override + public void onDisable() { + Protocolize.listenerProvider().unregisterListener(this); + } + + @Override + public void setPandoraInstance(MasterPlugin plugin) { + } + + @Override + public void packetSend(PacketSendEvent event) { + Object packet = event.packet(); + if (packet instanceof PlayServerJoinGame) { + handle((PlayServerJoinGame) packet); + } else if (packet instanceof PlayServerRespawn) { + handle((PlayServerRespawn) packet); + } + } + + private void handle(PlayServerJoinGame packet) { + MappingData.Dimension dim = packet.getDimension(); + if (dim != MappingData.Dimension.NETHER && dim != MappingData.Dimension.END) { + packet.setDimension(MappingData.Dimension.OVERWORLD); + packet.setDimensionType(MappingData.Dimension.OVERWORLD); + } + } + + private void handle(PlayServerRespawn packet) { + MappingData.Dimension dim = packet.getDimension(); + if (dim != MappingData.Dimension.NETHER && dim != MappingData.Dimension.END) { + packet.setDimension(MappingData.Dimension.OVERWORLD); + packet.setDimensionType(MappingData.Dimension.OVERWORLD); + } + } +} diff --git a/src/resources/plugin.yml b/src/resources/plugin.yml index 966cb77..d19cf29 100644 --- a/src/resources/plugin.yml +++ b/src/resources/plugin.yml @@ -5,7 +5,7 @@ description: ${project.description} main: ${mainClass} -softdepend: [geSuitHomes, Multiverse-Core, My_Worlds, GriefPrevention, QuickShop, VanishNoPacket, Citizens, Votifier, Monolith, Minigames, MurderMystery, BuildBattle, VillageDefense, PrisonMines, ChatControl, RPlace, Konquest, Treasures, Slimefun] +softdepend: [geSuitHomes, Multiverse-Core, My_Worlds, GriefPrevention, QuickShop, VanishNoPacket, Citizens, Votifier, Monolith, Minigames, MurderMystery, BuildBattle, VillageDefense, PrisonMines, ChatControl, RPlace, Konquest, Treasures, Slimefun, PacketEvents] loadbefore: [CommandHelper] From 4499f4adad8ca5cb6deb7b0abfeeae0aa0267184 Mon Sep 17 00:00:00 2001 From: add5tar Date: Tue, 8 Jul 2025 15:49:00 +1000 Subject: [PATCH 2/4] Update OverworldHijack to PacketEvents API --- pom.xml | 12 ++--- .../pandora/modules/OverworldHijack.java | 50 ++++++++++--------- 2 files changed, 32 insertions(+), 30 deletions(-) diff --git a/pom.xml b/pom.xml index f446f70..98be42e 100644 --- a/pom.xml +++ b/pom.xml @@ -146,8 +146,8 @@ https://repo.mikeprimm.com/ - simplix - https://repo.simplix.dev/ + packetevents-repo + https://repo.retrooper.dev/public/ @@ -529,11 +529,11 @@ Konquest 0.12.0 - + - dev.simplix.protocolize - packetevents-bukkit - 1.0.0 + com.github.retrooper.packetevents + spigot + 2.3.0 provided diff --git a/src/au/com/addstar/pandora/modules/OverworldHijack.java b/src/au/com/addstar/pandora/modules/OverworldHijack.java index a18e2a1..d906ed2 100644 --- a/src/au/com/addstar/pandora/modules/OverworldHijack.java +++ b/src/au/com/addstar/pandora/modules/OverworldHijack.java @@ -2,23 +2,24 @@ import au.com.addstar.pandora.MasterPlugin; import au.com.addstar.pandora.Module; -import dev.simplix.protocolize.api.Protocolize; -import dev.simplix.protocolize.api.event.PacketListener; -import dev.simplix.protocolize.api.event.PacketSendEvent; -import dev.simplix.protocolize.api.mapping.MappingData; -import dev.simplix.protocolize.data.packets.PlayServerJoinGame; -import dev.simplix.protocolize.data.packets.PlayServerRespawn; +import com.github.retrooper.packetevents.PacketEvents; +import com.github.retrooper.packetevents.event.PacketListener; +import com.github.retrooper.packetevents.event.PacketSendEvent; +import com.github.retrooper.packetevents.packettype.PacketType; +import com.github.retrooper.packetevents.protocol.world.DimensionType; +import com.github.retrooper.packetevents.wrapper.play.server.WrapperPlayServerJoinGame; +import com.github.retrooper.packetevents.wrapper.play.server.WrapperPlayServerRespawn; public class OverworldHijack implements Module, PacketListener { @Override public void onEnable() { - Protocolize.listenerProvider().registerListener(this); + PacketEvents.get().getEventManager().registerListener(this); } @Override public void onDisable() { - Protocolize.listenerProvider().unregisterListener(this); + PacketEvents.get().getEventManager().unregisterListener(this); } @Override @@ -26,28 +27,29 @@ public void setPandoraInstance(MasterPlugin plugin) { } @Override - public void packetSend(PacketSendEvent event) { - Object packet = event.packet(); - if (packet instanceof PlayServerJoinGame) { - handle((PlayServerJoinGame) packet); - } else if (packet instanceof PlayServerRespawn) { - handle((PlayServerRespawn) packet); + public void onPacketSend(PacketSendEvent event) { + if (event.getPacketType() == PacketType.Play.Server.JOIN_GAME) { + WrapperPlayServerJoinGame packet = new WrapperPlayServerJoinGame(event); + handle(packet); + } else if (event.getPacketType() == PacketType.Play.Server.RESPAWN) { + WrapperPlayServerRespawn packet = new WrapperPlayServerRespawn(event); + handle(packet); } } - private void handle(PlayServerJoinGame packet) { - MappingData.Dimension dim = packet.getDimension(); - if (dim != MappingData.Dimension.NETHER && dim != MappingData.Dimension.END) { - packet.setDimension(MappingData.Dimension.OVERWORLD); - packet.setDimensionType(MappingData.Dimension.OVERWORLD); + private void handle(WrapperPlayServerJoinGame packet) { + DimensionType dim = packet.getDimensionType(); + if (dim != DimensionType.NETHER && dim != DimensionType.END) { + packet.setDimensionType(DimensionType.OVERWORLD); + packet.setDimension(DimensionType.OVERWORLD); } } - private void handle(PlayServerRespawn packet) { - MappingData.Dimension dim = packet.getDimension(); - if (dim != MappingData.Dimension.NETHER && dim != MappingData.Dimension.END) { - packet.setDimension(MappingData.Dimension.OVERWORLD); - packet.setDimensionType(MappingData.Dimension.OVERWORLD); + private void handle(WrapperPlayServerRespawn packet) { + DimensionType dim = packet.getDimensionType(); + if (dim != DimensionType.NETHER && dim != DimensionType.END) { + packet.setDimensionType(DimensionType.OVERWORLD); + packet.setDimension(DimensionType.OVERWORLD); } } } From 17f2008c0b2310da5447a99cb7c2e3e8edf6517c Mon Sep 17 00:00:00 2001 From: add5tar Date: Tue, 8 Jul 2025 15:49:05 +1000 Subject: [PATCH 3/4] Update OverworldHijack for PacketEvents 2.8 --- pom.xml | 2 +- .../pandora/modules/OverworldHijack.java | 36 +++++++++++++++---- src/resources/OverworldHijack.yml | 2 ++ 3 files changed, 33 insertions(+), 7 deletions(-) create mode 100644 src/resources/OverworldHijack.yml diff --git a/pom.xml b/pom.xml index 98be42e..a4f6be4 100644 --- a/pom.xml +++ b/pom.xml @@ -533,7 +533,7 @@ com.github.retrooper.packetevents spigot - 2.3.0 + 2.8.0 provided diff --git a/src/au/com/addstar/pandora/modules/OverworldHijack.java b/src/au/com/addstar/pandora/modules/OverworldHijack.java index d906ed2..08770f8 100644 --- a/src/au/com/addstar/pandora/modules/OverworldHijack.java +++ b/src/au/com/addstar/pandora/modules/OverworldHijack.java @@ -1,7 +1,9 @@ package au.com.addstar.pandora.modules; +import au.com.addstar.pandora.AbstractModule; +import au.com.addstar.pandora.AutoConfig; +import au.com.addstar.pandora.ConfigField; import au.com.addstar.pandora.MasterPlugin; -import au.com.addstar.pandora.Module; import com.github.retrooper.packetevents.PacketEvents; import com.github.retrooper.packetevents.event.PacketListener; import com.github.retrooper.packetevents.event.PacketSendEvent; @@ -9,47 +11,69 @@ import com.github.retrooper.packetevents.protocol.world.DimensionType; import com.github.retrooper.packetevents.wrapper.play.server.WrapperPlayServerJoinGame; import com.github.retrooper.packetevents.wrapper.play.server.WrapperPlayServerRespawn; +import org.bukkit.entity.Player; +import java.io.File; -public class OverworldHijack implements Module, PacketListener { +public class OverworldHijack extends AbstractModule implements PacketListener { + + private MasterPlugin plugin; + private Config config; @Override public void onEnable() { + if (config != null && config.load()) { + config.save(); + debug = config.debug; + } PacketEvents.get().getEventManager().registerListener(this); } @Override public void onDisable() { PacketEvents.get().getEventManager().unregisterListener(this); + plugin = null; + config = null; } @Override public void setPandoraInstance(MasterPlugin plugin) { + this.plugin = plugin; + this.config = new Config(new File(plugin.getDataFolder(), "OverworldHijack.yml")); } @Override public void onPacketSend(PacketSendEvent event) { if (event.getPacketType() == PacketType.Play.Server.JOIN_GAME) { WrapperPlayServerJoinGame packet = new WrapperPlayServerJoinGame(event); - handle(packet); + handle(packet, event.getPlayer()); } else if (event.getPacketType() == PacketType.Play.Server.RESPAWN) { WrapperPlayServerRespawn packet = new WrapperPlayServerRespawn(event); - handle(packet); + handle(packet, event.getPlayer()); } } - private void handle(WrapperPlayServerJoinGame packet) { + private void handle(WrapperPlayServerJoinGame packet, Player player) { DimensionType dim = packet.getDimensionType(); if (dim != DimensionType.NETHER && dim != DimensionType.END) { + debugLog("Spoofing join dimension for " + player.getName()); packet.setDimensionType(DimensionType.OVERWORLD); packet.setDimension(DimensionType.OVERWORLD); } } - private void handle(WrapperPlayServerRespawn packet) { + private void handle(WrapperPlayServerRespawn packet, Player player) { DimensionType dim = packet.getDimensionType(); if (dim != DimensionType.NETHER && dim != DimensionType.END) { + debugLog("Spoofing respawn dimension for " + player.getName()); packet.setDimensionType(DimensionType.OVERWORLD); packet.setDimension(DimensionType.OVERWORLD); } } + + private class Config extends AutoConfig { + public Config(File file) { super(file); } + + @ConfigField(comment = "Enable debugging") + public boolean debug = false; + } } diff --git a/src/resources/OverworldHijack.yml b/src/resources/OverworldHijack.yml new file mode 100644 index 0000000..e0c5ca1 --- /dev/null +++ b/src/resources/OverworldHijack.yml @@ -0,0 +1,2 @@ +# Enable debug logging +#debug: true From 152c765e9832280c170e5a4d484df43d7415d3fb Mon Sep 17 00:00:00 2001 From: addstar Date: Tue, 8 Jul 2025 16:20:12 +1000 Subject: [PATCH 4/4] maven fixes/updates --- pom.xml | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/pom.xml b/pom.xml index a4f6be4..2bb5127 100644 --- a/pom.xml +++ b/pom.xml @@ -134,11 +134,10 @@ - - + + plugilyprojects-snapshots + https://maven.plugily.xyz/snapshots + @@ -488,10 +487,9 @@ - pl.plajer + plugily.projects villagedefense - 4.4.2 - provided + 4.7.0-SNAPSHOT7 @@ -529,12 +527,12 @@ Konquest 0.12.0 + - com.github.retrooper.packetevents - spigot + com.github.retrooper + packetevents-spigot 2.8.0 - provided