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) {