diff --git a/src/main/java/me/freezy/plugins/papermc/blazesmp/BlazeSMP.java b/src/main/java/me/freezy/plugins/papermc/blazesmp/BlazeSMP.java index f073844..bb22480 100644 --- a/src/main/java/me/freezy/plugins/papermc/blazesmp/BlazeSMP.java +++ b/src/main/java/me/freezy/plugins/papermc/blazesmp/BlazeSMP.java @@ -2,11 +2,15 @@ package me.freezy.plugins.papermc.blazesmp; import lombok.Getter; import me.freezy.plugins.papermc.blazesmp.command.ClanCommand; +import me.freezy.plugins.papermc.blazesmp.listener.JoinListener; import me.freezy.plugins.papermc.blazesmp.module.manager.Clans; import me.freezy.plugins.papermc.blazesmp.module.manager.Homes; import me.freezy.plugins.papermc.blazesmp.module.manager.ProtectedBlocks; +import me.freezy.plugins.papermc.blazesmp.tasks.PlayerNameUpdate; import org.bukkit.configuration.file.FileConfiguration; +import org.bukkit.plugin.PluginManager; import org.bukkit.plugin.java.JavaPlugin; +import org.bukkit.scheduler.BukkitTask; import org.slf4j.Logger; public final class BlazeSMP extends JavaPlugin { @@ -16,11 +20,14 @@ public final class BlazeSMP extends JavaPlugin { @Getter private Clans clans; @Getter private FileConfiguration configuration; @Getter private Logger log; + @Getter private BukkitTask nameUpdateTask; @Override public void onLoad() { this.log=getSLF4JLogger(); + this.log.info("Loading BlazeSMP..."); + this.log.info("Loading Homes..."); this.homes=new Homes(); this.homes.load(); @@ -41,19 +48,52 @@ public final class BlazeSMP extends JavaPlugin { this.configuration= getConfig(); saveConfig(); this.log.info("Loaded config!"); + + this.log.info("Loaded BlazeSMP!"); } @Override public void onEnable() { BlazeSMP.instance=this; + this.log.info("Enabling BlazeSMP..."); + this.log.info("Registering Commands..."); new ClanCommand().register(); this.log.info("Registered Commands!"); + + this.log.info("Registering EventListeners..."); + PluginManager pm = getServer().getPluginManager(); + pm.registerEvents(new JoinListener(), this); + this.log.info("Registered EventListeners!"); + + this.log.info("Starting Timer tasks..."); + this.nameUpdateTask = new PlayerNameUpdate().runTaskTimer(this, 0L, 20L); + this.log.info("Started Timer tasks!"); + + this.log.info("Enabled BlazeSMP!"); } @Override public void onDisable() { - // Plugin shutdown logic + this.log.info("Disabling BlazeSMP..."); + + this.log.info("Cancelling Timer tasks..."); + this.nameUpdateTask.cancel(); + this.log.info("Cancelled Timer tasks!"); + + this.log.info("Saving Homes..."); + this.homes.save(); + this.log.info("Saved Homes!"); + + this.log.info("Saving ProtectedBlocks..."); + this.protectedBlocks.save(); + this.log.info("Saved ProtectedBlocks!"); + + this.log.info("Saving Clans..."); + this.clans.saveAllClans(); + this.log.info("Saved Clans!"); + + this.log.info("Disabling BlazeSMP!"); } } diff --git a/src/main/java/me/freezy/plugins/papermc/blazesmp/listener/JoinListener.java b/src/main/java/me/freezy/plugins/papermc/blazesmp/listener/JoinListener.java new file mode 100644 index 0000000..0b378dc --- /dev/null +++ b/src/main/java/me/freezy/plugins/papermc/blazesmp/listener/JoinListener.java @@ -0,0 +1,15 @@ +package me.freezy.plugins.papermc.blazesmp.listener; + +import me.freezy.plugins.papermc.blazesmp.manager.PlayerManager; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.player.PlayerJoinEvent; + +public class JoinListener implements Listener { + @EventHandler + public void onJoin(PlayerJoinEvent event) { + Player player = event.getPlayer(); + new PlayerManager().setPlayerTeam(player); + } +} diff --git a/src/main/java/me/freezy/plugins/papermc/blazesmp/manager/PlayerManager.java b/src/main/java/me/freezy/plugins/papermc/blazesmp/manager/PlayerManager.java index 4586bbd..ac1ca01 100644 --- a/src/main/java/me/freezy/plugins/papermc/blazesmp/manager/PlayerManager.java +++ b/src/main/java/me/freezy/plugins/papermc/blazesmp/manager/PlayerManager.java @@ -46,7 +46,7 @@ public class PlayerManager { teamName="zzzm"; } teamName+=generateRandomString(12); - scoreboard.getTeams().clear(); + if (!scoreboard.getTeams().isEmpty()) scoreboard.getTeams().clear(); Team team = scoreboard.getTeam(teamName); if (team == null) { team = scoreboard.registerNewTeam(teamName); @@ -64,6 +64,13 @@ public class PlayerManager { ) ); team.prefix(prefix); + Clan clan = clans.getClanByMember(playerUUID); + if (clan != null) { + team.suffix(Component.text(" ").append(clan.getTag())); + } else { + team.suffix(Component.empty()); + } + team.addEntity(player); } private String generateRandomString(int length) { diff --git a/src/main/java/me/freezy/plugins/papermc/blazesmp/tasks/PlayerNameUpdate.java b/src/main/java/me/freezy/plugins/papermc/blazesmp/tasks/PlayerNameUpdate.java new file mode 100644 index 0000000..baad90c --- /dev/null +++ b/src/main/java/me/freezy/plugins/papermc/blazesmp/tasks/PlayerNameUpdate.java @@ -0,0 +1,14 @@ +package me.freezy.plugins.papermc.blazesmp.tasks; + +import me.freezy.plugins.papermc.blazesmp.manager.PlayerManager; +import org.bukkit.Bukkit; +import org.bukkit.scheduler.BukkitRunnable; + +public class PlayerNameUpdate extends BukkitRunnable { + @Override + public void run() { + Bukkit.getOnlinePlayers().forEach(player -> { + new PlayerManager().setPlayerTeam(player); + }); + } +}