diff --git a/src/main/java/rip/iwakura/civil/Core.java b/src/main/java/rip/iwakura/civil/Core.java index f31c471..04c8cae 100644 --- a/src/main/java/rip/iwakura/civil/Core.java +++ b/src/main/java/rip/iwakura/civil/Core.java @@ -25,6 +25,7 @@ import rip.iwakura.civil.events.TeamChatHandler; import rip.iwakura.civil.commands.Spawn; import rip.iwakura.civil.commands.Team; import rip.iwakura.civil.events.JoinHandler; +import rip.iwakura.civil.events.RespawnHandler; import rip.iwakura.civil.types.CivilPlayer; public class Core extends JavaPlugin { @@ -109,5 +110,6 @@ public class Core extends JavaPlugin { getServer().getPluginManager().registerEvents(new JoinHandler(database), this); getServer().getPluginManager().registerEvents(new ChatHandler(this), this); getServer().getPluginManager().registerEvents(new TeamChatHandler(this), this); + getServer().getPluginManager().registerEvents(new RespawnHandler(this), this); } } diff --git a/src/main/java/rip/iwakura/civil/commands/Spawn.java b/src/main/java/rip/iwakura/civil/commands/Spawn.java index 7ccbe63..af683cf 100644 --- a/src/main/java/rip/iwakura/civil/commands/Spawn.java +++ b/src/main/java/rip/iwakura/civil/commands/Spawn.java @@ -62,6 +62,10 @@ public class Spawn { core.getConfig().set("spawn.yaw", loc.getYaw()); core.getConfig().set("spawn.pitch", loc.getPitch()); + core.getServer().getWorld("world").setSpawnLocation(loc); + + core.saveConfig(); + p.sendMessage(MiniMessage.miniMessage().deserialize("Set the server spawn to your current position.")); return Command.SINGLE_SUCCESS; diff --git a/src/main/java/rip/iwakura/civil/events/RespawnHandler.java b/src/main/java/rip/iwakura/civil/events/RespawnHandler.java new file mode 100644 index 0000000..45c2202 --- /dev/null +++ b/src/main/java/rip/iwakura/civil/events/RespawnHandler.java @@ -0,0 +1,23 @@ +package rip.iwakura.civil.events; +import org.bukkit.Bukkit; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.entity.PlayerDeathEvent; +import org.bukkit.event.player.PlayerRespawnEvent; + +import rip.iwakura.civil.Core; + +public class RespawnHandler implements Listener { + private Core core; + + public RespawnHandler(Core core) { + this.core = core; + } + + @EventHandler + public void respawnEvent(PlayerRespawnEvent ev) { + if (ev.isBedSpawn()) return; + + ev.setRespawnLocation(core.getSpawn()); + } +}