From a7091aeb9eb7499008bea0b71884c4774ee38cd1 Mon Sep 17 00:00:00 2001 From: Der-Zauberer Date: Fri, 2 Jul 2021 18:50:17 +0200 Subject: [PATCH] Updated to Spigot 1.17 --- README.md | 3 +- plugin.yml | 2 +- .../events/PlayerDeathListener.java | 16 +------ .../events/PlayerJoinListener.java | 9 ++-- .../events/PlayerQuitListener.java | 2 +- .../events/PlayerRespawnListener.java | 17 +++++++ src/serversystem/handler/ChatHandler.java | 6 ++- .../handler/PlayerPacketHandler.java | 45 ------------------- .../handler/WorldGroupHandler.java | 4 ++ src/serversystem/main/ServerSystem.java | 2 + src/serversystem/menus/AdminMenu.java | 2 +- src/serversystem/menus/PlayerMenu.java | 2 +- 12 files changed, 39 insertions(+), 71 deletions(-) create mode 100644 src/serversystem/events/PlayerRespawnListener.java delete mode 100644 src/serversystem/handler/PlayerPacketHandler.java diff --git a/README.md b/README.md index 0da6ce1..826a2c7 100644 --- a/README.md +++ b/README.md @@ -16,8 +16,7 @@ This is a Bukkit/Spigot plugin for permissions, multiworld features and other ad ## Develpement and Version -API Version: *1.14.x*
-Spigot Version: *1.14.4-R0.1-SNAPSHOT*
+API Version: *1.17.x*
Plugin Version: *v1.7*
Java Class Version: *52 (Java8)*
diff --git a/plugin.yml b/plugin.yml index 08bd9ec..e617f24 100644 --- a/plugin.yml +++ b/plugin.yml @@ -2,7 +2,7 @@ main: serversystem.main.ServerSystem name: ServerSystem version: 1.7 author: Der_Zauberer -api-version: 1.14 +api-version: 1.17 commands: admin: diff --git a/src/serversystem/events/PlayerDeathListener.java b/src/serversystem/events/PlayerDeathListener.java index da9778f..7e664be 100644 --- a/src/serversystem/events/PlayerDeathListener.java +++ b/src/serversystem/events/PlayerDeathListener.java @@ -1,36 +1,24 @@ package serversystem.events; -import org.bukkit.Bukkit; import org.bukkit.World; -import org.bukkit.craftbukkit.v1_14_R1.entity.CraftPlayer; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.entity.PlayerDeathEvent; - -import net.minecraft.server.v1_14_R1.PacketPlayInClientCommand; -import net.minecraft.server.v1_14_R1.PacketPlayInClientCommand.EnumClientCommand; import serversystem.config.Config; import serversystem.handler.ChatHandler; import serversystem.handler.WorldGroupHandler; -import serversystem.main.ServerSystem; public class PlayerDeathListener implements Listener { @EventHandler - public void onPlayerDeath(PlayerDeathEvent event) { + public void onDeath(PlayerDeathEvent event) { if(event.getEntity() instanceof Player && WorldGroupHandler.isEnabled()) { World world = event.getEntity().getWorld(); if(Config.hasDeathMessage(world.getName())) { ChatHandler.sendServerWorldGroupMessage(WorldGroupHandler.getWorldGroup(event.getEntity()), event.getDeathMessage()); } - Bukkit.getScheduler().runTaskLater(ServerSystem.getInstance(), new Runnable() { - @Override - public void run() { - ((CraftPlayer) event.getEntity()).getHandle().playerConnection.a(new PacketPlayInClientCommand(EnumClientCommand.PERFORM_RESPAWN)); - event.getEntity().teleport(world.getSpawnLocation()); - } - }, 10); + WorldGroupHandler.playerdeaths.put(event.getEntity(), world); } event.setDeathMessage(""); } diff --git a/src/serversystem/events/PlayerJoinListener.java b/src/serversystem/events/PlayerJoinListener.java index b8d7f19..b84e0fb 100644 --- a/src/serversystem/events/PlayerJoinListener.java +++ b/src/serversystem/events/PlayerJoinListener.java @@ -3,17 +3,15 @@ import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerJoinEvent; -import net.minecraft.server.v1_14_R1.PacketPlayOutTitle.EnumTitleAction; import serversystem.config.Config; import serversystem.handler.ChatHandler; -import serversystem.handler.PlayerPacketHandler; import serversystem.handler.PermissionHandler; import serversystem.handler.WorldGroupHandler; public class PlayerJoinListener implements Listener { @EventHandler - public void onJoinEvent(PlayerJoinEvent event) { + public void onJoin(PlayerJoinEvent event) { if(Config.isJoinMessageActiv()) { event.setJoinMessage(ChatHandler.getPlayerJoinMessage(event)); } else { @@ -28,8 +26,9 @@ public void onJoinEvent(PlayerJoinEvent event) { event.getPlayer().teleport(Config.getLobbyWorld().getSpawnLocation()); } event.getPlayer().setGameMode(Config.getWorldGamemode(event.getPlayer().getWorld().getName())); - if(Config.getTitle() != null) {PlayerPacketHandler.sendTitle(event.getPlayer(), EnumTitleAction.TITLE, Config.getTitle(), Config.getTitleColor(), 100);} - if(Config.getSubtitle() != null) {PlayerPacketHandler.sendTitle(event.getPlayer(), EnumTitleAction.SUBTITLE, Config.getSubtitle(), Config.getSubtitleColor(), 100);} + if(Config.getTitle() != null && Config.getSubtitle() != null) { + ChatHandler.sendTitle(event.getPlayer(), ChatHandler.parseColor(Config.getTitleColor()) + Config.getTitle(), ChatHandler.parseColor(Config.getSubtitleColor()) + Config.getSubtitle()); + } event.getPlayer().setPlayerListHeader(ChatHandler.parseColor(Config.getTablistTitleColor()) + Config.getTablistTitle()); event.getPlayer().setPlayerListFooter(ChatHandler.parseColor(Config.getTablistSubtitleColor()) + Config.getTablistSubtitle()); } diff --git a/src/serversystem/events/PlayerQuitListener.java b/src/serversystem/events/PlayerQuitListener.java index ac83d18..f27dd5f 100644 --- a/src/serversystem/events/PlayerQuitListener.java +++ b/src/serversystem/events/PlayerQuitListener.java @@ -12,7 +12,7 @@ public class PlayerQuitListener implements Listener { @EventHandler - public void onQuitEvent(PlayerQuitEvent event) { + public void onQuit(PlayerQuitEvent event) { if(Config.isLeaveMessageActiv()) { event.setQuitMessage(ChatHandler.getPlayerQuitMessage(event)); } else { diff --git a/src/serversystem/events/PlayerRespawnListener.java b/src/serversystem/events/PlayerRespawnListener.java new file mode 100644 index 0000000..f3f90f3 --- /dev/null +++ b/src/serversystem/events/PlayerRespawnListener.java @@ -0,0 +1,17 @@ +package serversystem.events; + +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.player.PlayerRespawnEvent; + +import serversystem.handler.WorldGroupHandler; + +public class PlayerRespawnListener implements Listener { + + @EventHandler + public void onRespawn(PlayerRespawnEvent event) { + event.setRespawnLocation(WorldGroupHandler.playerdeaths.get(event.getPlayer()).getSpawnLocation()); + WorldGroupHandler.playerdeaths.remove(event.getPlayer()); + } + +} diff --git a/src/serversystem/handler/ChatHandler.java b/src/serversystem/handler/ChatHandler.java index 6adade5..6084c6b 100644 --- a/src/serversystem/handler/ChatHandler.java +++ b/src/serversystem/handler/ChatHandler.java @@ -9,7 +9,6 @@ import org.bukkit.event.player.AsyncPlayerChatEvent; import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerQuitEvent; - import serversystem.config.Config; import serversystem.utilities.WorldGroup; @@ -20,6 +19,7 @@ public class ChatHandler implements Listener { private static String servername = parseColor(Config.getMessagePrefixColor()) + Config.getMessagePrefix(); public static enum ErrorMessage{ONLYCONSOLE, ONLYPLAYER, NOPERMISSION, PLAYERNOTONLINE, WORLDDOESNOTEXIST, NOTENOUGHTARGUMENTS} + public static enum TitleType{TITLE, SUBTITLE, ACTIONBAR} public static void sendServerMessage(Player player, String message) { player.sendMessage(servername + messagecolor + " " + message); @@ -83,6 +83,10 @@ public static void sendServerWorldGroupMessage(WorldGroup worldgroup, String mes } + public static void sendTitle(Player player, String title, String subtitle) { + player.sendTitle(title, subtitle, 10, 100, 10); + } + public static String getPlayerJoinMessage(PlayerJoinEvent event) { return servername + messagecolor + " " + event.getPlayer().getName() + " joined the game!"; } diff --git a/src/serversystem/handler/PlayerPacketHandler.java b/src/serversystem/handler/PlayerPacketHandler.java deleted file mode 100644 index 25b93d2..0000000 --- a/src/serversystem/handler/PlayerPacketHandler.java +++ /dev/null @@ -1,45 +0,0 @@ -package serversystem.handler; - -import java.util.ArrayList; -import org.bukkit.craftbukkit.v1_14_R1.entity.CraftPlayer; -import org.bukkit.entity.Player; -import net.minecraft.server.v1_14_R1.PacketPlayOutTitle; -import net.minecraft.server.v1_14_R1.IChatBaseComponent.ChatSerializer; -import net.minecraft.server.v1_14_R1.PacketPlayOutTitle.EnumTitleAction; - -public class PlayerPacketHandler { - - public static void sendTitle(Player player, EnumTitleAction titleAction, String jsonstring, int time) { - PacketPlayOutTitle packet = new PacketPlayOutTitle(titleAction, ChatSerializer.a(jsonstring), 0, time, 0); - ((CraftPlayer) player).getHandle().playerConnection.sendPacket(packet); - } - - public static void sendTitle(Player player, EnumTitleAction titleAction, String text, String color, int time) { - PacketPlayOutTitle packet = new PacketPlayOutTitle(titleAction, ChatSerializer.a("{\"text\":\"" + text + "\",\"color\":\"" + color + "\"}"), 0, time, 0); - ((CraftPlayer) player).getHandle().playerConnection.sendPacket(packet); - } - - public static void sendTitle(Player player, EnumTitleAction titleAction, String text, String color, String bold, String italic, int time) { - PacketPlayOutTitle packet = new PacketPlayOutTitle(titleAction, ChatSerializer.a("{\"text\":\"" + text + "\",\"color\":\"" + color + "\",\"bold\":\"" + bold + "\",\"italic\":\"" + italic + "\"}"), 0, time, 0); - ((CraftPlayer) player).getHandle().playerConnection.sendPacket(packet); - } - - public static void sendTitle(ArrayList players, EnumTitleAction titleAction, String jsonstring, int time) { - for (Player player : players) { - sendTitle(player, titleAction, jsonstring, time); - } - } - - public static void sendTitle(ArrayList players, EnumTitleAction titleAction, String text, String color, int time) { - for (Player player : players) { - sendTitle(player, titleAction, text, color, time); - } - } - - public static void sendTitle(ArrayList players, EnumTitleAction titleAction, String text, String color, String bold, String italic, int time) { - for (Player player : players) { - sendTitle(player, titleAction, text, color, bold, italic, time); - } - } - -} diff --git a/src/serversystem/handler/WorldGroupHandler.java b/src/serversystem/handler/WorldGroupHandler.java index baae2b4..cd0c91c 100644 --- a/src/serversystem/handler/WorldGroupHandler.java +++ b/src/serversystem/handler/WorldGroupHandler.java @@ -1,6 +1,8 @@ package serversystem.handler; import java.util.ArrayList; +import java.util.HashMap; + import org.bukkit.Bukkit; import org.bukkit.World; import org.bukkit.WorldCreator; @@ -15,6 +17,8 @@ public enum WorldSetting{DAMAGE, EXPLOSION, HUNGER, PROTECTION, PVP} private static ArrayList worldgroups = new ArrayList<>(); private static boolean enabled = Config.isWorldGroupSystemEnabled(); + public static HashMap playerdeaths = new HashMap<>(); + public static void autoCreateWorldGroups() { for (World world : Bukkit.getWorlds()) { String worldgroup = Config.getWorldGroup(world.getName()); diff --git a/src/serversystem/main/ServerSystem.java b/src/serversystem/main/ServerSystem.java index 098b916..ad721fd 100644 --- a/src/serversystem/main/ServerSystem.java +++ b/src/serversystem/main/ServerSystem.java @@ -22,6 +22,7 @@ import serversystem.events.PlayerDeathListener; import serversystem.events.PlayerJoinListener; import serversystem.events.PlayerQuitListener; +import serversystem.events.PlayerRespawnListener; import serversystem.events.PlayerTeleportListener; import serversystem.handler.ChatHandler; import serversystem.handler.InventoryHandler; @@ -81,6 +82,7 @@ private void registerEvents() { Bukkit.getPluginManager().registerEvents(new PlayerDeathListener(), this); Bukkit.getPluginManager().registerEvents(new PlayerJoinListener(), this); Bukkit.getPluginManager().registerEvents(new PlayerQuitListener(), this); + Bukkit.getPluginManager().registerEvents(new PlayerRespawnListener(), this); Bukkit.getPluginManager().registerEvents(new PlayerTeleportListener(), this); Bukkit.getPluginManager().registerEvents(new ChatHandler(), this); diff --git a/src/serversystem/menus/AdminMenu.java b/src/serversystem/menus/AdminMenu.java index 64c8a17..3b04672 100644 --- a/src/serversystem/menus/AdminMenu.java +++ b/src/serversystem/menus/AdminMenu.java @@ -33,7 +33,7 @@ public AdminMenu(Player player) { } private void addPtionEffect(Player player, PotionEffectType effect) { - player.addPotionEffect(new PotionEffect(effect, 12000, 2), true); + player.addPotionEffect(new PotionEffect(effect, 12000, 2)); } private void removeEffects(Player player) { diff --git a/src/serversystem/menus/PlayerMenu.java b/src/serversystem/menus/PlayerMenu.java index 883e21f..570f3c6 100644 --- a/src/serversystem/menus/PlayerMenu.java +++ b/src/serversystem/menus/PlayerMenu.java @@ -29,7 +29,7 @@ public PlayerMenu(Player player, Player target) { } private void addPotionEffect(Player player, PotionEffectType effect) { - player.addPotionEffect(new PotionEffect(effect, 12000, 2), true); + player.addPotionEffect(new PotionEffect(effect, 12000, 2)); } private void removeEffects(Player player) {