diff --git a/bukkit/src/main/java/com/mineaurion/aurionchat/bukkit/AurionChat.java b/bukkit/src/main/java/com/mineaurion/aurionchat/bukkit/AurionChat.java index dd4d7da..acd4cca 100644 --- a/bukkit/src/main/java/com/mineaurion/aurionchat/bukkit/AurionChat.java +++ b/bukkit/src/main/java/com/mineaurion/aurionchat/bukkit/AurionChat.java @@ -3,7 +3,7 @@ import com.mineaurion.aurionchat.bukkit.command.ChatCommand; import com.mineaurion.aurionchat.bukkit.listeners.ChatListener; import com.mineaurion.aurionchat.bukkit.listeners.CommandListener; -import com.mineaurion.aurionchat.bukkit.listeners.LoginListener; +import com.mineaurion.aurionchat.bukkit.listeners.PlayerListener; import com.mineaurion.aurionchat.common.AbstractAurionChat; import com.mineaurion.aurionchat.common.config.ConfigurationAdapter; import com.mineaurion.aurionchat.common.logger.JavaPluginLogger; @@ -40,7 +40,7 @@ public void onDisable() { @Override protected void registerPlatformListeners() { PluginManager pluginManager = plugin.getServer().getPluginManager(); - pluginManager.registerEvents(new LoginListener(this), plugin); + pluginManager.registerEvents(new PlayerListener(this), plugin); pluginManager.registerEvents(new CommandListener(this), plugin); pluginManager.registerEvents(new ChatListener(this), plugin); } diff --git a/bukkit/src/main/java/com/mineaurion/aurionchat/bukkit/listeners/LoginListener.java b/bukkit/src/main/java/com/mineaurion/aurionchat/bukkit/listeners/PlayerListener.java similarity index 79% rename from bukkit/src/main/java/com/mineaurion/aurionchat/bukkit/listeners/LoginListener.java rename to bukkit/src/main/java/com/mineaurion/aurionchat/bukkit/listeners/PlayerListener.java index 17d43f3..896f36e 100644 --- a/bukkit/src/main/java/com/mineaurion/aurionchat/bukkit/listeners/LoginListener.java +++ b/bukkit/src/main/java/com/mineaurion/aurionchat/bukkit/listeners/PlayerListener.java @@ -1,32 +1,32 @@ -package com.mineaurion.aurionchat.bukkit.listeners; - -import com.mineaurion.aurionchat.bukkit.AurionChat; -import com.mineaurion.aurionchat.common.listeners.LoginListenerCommon; -import org.bukkit.event.EventHandler; -import org.bukkit.event.EventPriority; -import org.bukkit.event.Listener; -import org.bukkit.event.player.PlayerJoinEvent; -import org.bukkit.event.player.PlayerKickEvent; -import org.bukkit.event.player.PlayerQuitEvent; - -public class LoginListener extends LoginListenerCommon implements Listener { - - public LoginListener(AurionChat plugin){ - super(plugin); - } - - @EventHandler(priority = EventPriority.LOW) - public void onPlayerKick(PlayerKickEvent event){ - playerLeaving(plugin.getPlayerFactory().wrap(event.getPlayer())); - } - - @EventHandler(priority = EventPriority.LOW) - public void onPlayerQuit(PlayerQuitEvent event){ - playerLeaving(plugin.getPlayerFactory().wrap(event.getPlayer())); - } - - @EventHandler(priority = EventPriority.LOW) - public void onPlayerJoin(PlayerJoinEvent event){ - playerJoin(plugin.getPlayerFactory().wrap(event.getPlayer())); - } -} +package com.mineaurion.aurionchat.bukkit.listeners; + +import com.mineaurion.aurionchat.bukkit.AurionChat; +import com.mineaurion.aurionchat.common.listeners.PlayerListenerCommon; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; +import org.bukkit.event.player.PlayerJoinEvent; +import org.bukkit.event.player.PlayerKickEvent; +import org.bukkit.event.player.PlayerQuitEvent; + +public class PlayerListener extends PlayerListenerCommon implements Listener { + + public PlayerListener(AurionChat plugin){ + super(plugin); + } + + @EventHandler(priority = EventPriority.LOW) + public void onPlayerKick(PlayerKickEvent event){ + playerLeaving(plugin.getPlayerFactory().wrap(event.getPlayer())); + } + + @EventHandler(priority = EventPriority.LOW) + public void onPlayerQuit(PlayerQuitEvent event){ + playerLeaving(plugin.getPlayerFactory().wrap(event.getPlayer())); + } + + @EventHandler(priority = EventPriority.LOW) + public void onPlayerJoin(PlayerJoinEvent event){ + playerJoin(plugin.getPlayerFactory().wrap(event.getPlayer())); + } +} diff --git a/common/src/main/java/com/mineaurion/aurionchat/common/listeners/LoginListenerCommon.java b/common/src/main/java/com/mineaurion/aurionchat/common/listeners/LoginListenerCommon.java deleted file mode 100644 index 4202275..0000000 --- a/common/src/main/java/com/mineaurion/aurionchat/common/listeners/LoginListenerCommon.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.mineaurion.aurionchat.common.listeners; - -import com.mineaurion.aurionchat.common.AbstractAurionChat; -import com.mineaurion.aurionchat.common.AurionChatPlayer; -import com.mineaurion.aurionchat.common.player.Player; - -public abstract class LoginListenerCommon { - public T plugin; - - public LoginListenerCommon(T plugin){ - this.plugin = plugin; - } - - protected void playerLeaving(Player player){ - AurionChatPlayer plr = this.plugin.getAurionChatPlayers().remove(player.getUUID()); - try { - this.plugin.getChatService().send(new PlayerEvent(plr, PlayerEvent.Type.Leave)); - } catch (Throwable e) { - plugin.getlogger().severe("Failed to send PlayerLeave event", e); - } - }; - - protected void playerJoin(Player player){ - AurionChatPlayer plr = new AurionChatPlayer(player, plugin); - this.plugin.getAurionChatPlayers().putIfAbsent(player.getUUID(), plr); - try { - this.plugin.getChatService().send(new PlayerEvent(plr, PlayerEvent.Type.Join)); - } catch (Throwable e) { - plugin.getlogger().severe("Failed to send PlayerLeave event", e); - } - } - - public T getPlugin(){ - return this.plugin; - } -} \ No newline at end of file diff --git a/common/src/main/java/com/mineaurion/aurionchat/common/listeners/PlayerListenerCommon.java b/common/src/main/java/com/mineaurion/aurionchat/common/listeners/PlayerListenerCommon.java new file mode 100644 index 0000000..fb6d8f2 --- /dev/null +++ b/common/src/main/java/com/mineaurion/aurionchat/common/listeners/PlayerListenerCommon.java @@ -0,0 +1,74 @@ +package com.mineaurion.aurionchat.common.listeners; + +import com.mineaurion.aurionchat.api.AurionPacket; +import com.mineaurion.aurionchat.common.AbstractAurionChat; +import com.mineaurion.aurionchat.common.AurionChatPlayer; +import com.mineaurion.aurionchat.common.player.Player; +import net.kyori.adventure.text.Component; + +import static com.mineaurion.aurionchat.api.AurionPacket.Type.*; + +public abstract class PlayerListenerCommon { + public T plugin; + + public PlayerListenerCommon(T plugin){ + this.plugin = plugin; + } + + protected void playerJoin(Player player){ + AurionChatPlayer plr = new AurionChatPlayer(player, plugin); + this.plugin.getAurionChatPlayers().putIfAbsent(player.getUUID(), plr); + //todo: needs join/leave message pattern + String txt = plr.getBestName() + " joined the game"; + Component component = Component.text(txt); + AurionPacket.Builder packet = AurionPacket.event(plr, JOIN, component) + .detail(txt); + try { + this.plugin.getChatService().send(packet); + } catch (Throwable e) { + plugin.getlogger().severe("Failed to send PlayerJoin event", e); + } + } + + protected void playerLeaving(Player player){ + AurionChatPlayer plr = this.plugin.getAurionChatPlayers().remove(player.getUUID()); + //todo: needs join/leave message pattern + String txt = plr.getBestName() + " left the game"; + Component component = Component.text(txt); + AurionPacket.Builder packet = AurionPacket.event(plr, LEAVE, component) + .detail(txt); + try { + this.plugin.getChatService().send(packet); + } catch (Throwable e) { + plugin.getlogger().severe("Failed to send PlayerLeave event", e); + } + } + + protected void playerAdvancement(Player player, String sanitizedAdvancementMessage){ + AurionChatPlayer plr = this.plugin.getAurionChatPlayers().remove(player.getUUID()); + Component component = Component.text(sanitizedAdvancementMessage); + AurionPacket.Builder packet = AurionPacket.event(plr, ADVANCEMENT, component) + .detail(sanitizedAdvancementMessage); + try { + this.plugin.getChatService().send(packet); + } catch (Throwable e) { + plugin.getlogger().severe("Failed to send PlayerAdvancement event", e); + } + } + + protected void playerDeath(Player player, String sanitizedDeathMessage){ + AurionChatPlayer plr = this.plugin.getAurionChatPlayers().remove(player.getUUID()); + Component component = Component.text(sanitizedDeathMessage); + AurionPacket.Builder packet = AurionPacket.event(plr, DEATH, component) + .detail(sanitizedDeathMessage); + try { + this.plugin.getChatService().send(packet); + } catch (Throwable e) { + plugin.getlogger().severe("Failed to send PlayerDeath event", e); + } + } + + public T getPlugin(){ + return this.plugin; + } +} \ No newline at end of file diff --git a/fabric/src/main/java/com/mineaurion/aurionchat/fabric/AurionChat.java b/fabric/src/main/java/com/mineaurion/aurionchat/fabric/AurionChat.java index 1128f89..8245a5a 100644 --- a/fabric/src/main/java/com/mineaurion/aurionchat/fabric/AurionChat.java +++ b/fabric/src/main/java/com/mineaurion/aurionchat/fabric/AurionChat.java @@ -6,7 +6,7 @@ import com.mineaurion.aurionchat.common.logger.Slf4jPluginLogger; import com.mineaurion.aurionchat.fabric.command.ChatCommand; import com.mineaurion.aurionchat.fabric.listeners.ChatListener; -import com.mineaurion.aurionchat.fabric.listeners.LoginListener; +import com.mineaurion.aurionchat.fabric.listeners.PlayerListener; import net.fabricmc.api.DedicatedServerModInitializer; import net.fabricmc.fabric.api.command.v2.CommandRegistrationCallback; import net.fabricmc.fabric.api.event.lifecycle.v1.ServerLifecycleEvents; @@ -35,7 +35,7 @@ public void onInitializeServer() { @Override protected void registerPlatformListeners() { - LoginListener loginListener = new LoginListener(this); + PlayerListener loginListener = new PlayerListener(this); ChatListener chatListener = new ChatListener(this); ServerPlayConnectionEvents.JOIN.register((handler, sender, server) -> loginListener.onPlayerJoin(handler.getPlayer())); diff --git a/fabric/src/main/java/com/mineaurion/aurionchat/fabric/listeners/LoginListener.java b/fabric/src/main/java/com/mineaurion/aurionchat/fabric/listeners/PlayerListener.java similarity index 68% rename from fabric/src/main/java/com/mineaurion/aurionchat/fabric/listeners/LoginListener.java rename to fabric/src/main/java/com/mineaurion/aurionchat/fabric/listeners/PlayerListener.java index 12530fb..1ba653f 100644 --- a/fabric/src/main/java/com/mineaurion/aurionchat/fabric/listeners/LoginListener.java +++ b/fabric/src/main/java/com/mineaurion/aurionchat/fabric/listeners/PlayerListener.java @@ -1,19 +1,19 @@ -package com.mineaurion.aurionchat.fabric.listeners; - -import com.mineaurion.aurionchat.common.listeners.LoginListenerCommon; -import com.mineaurion.aurionchat.fabric.AurionChat; -import net.minecraft.server.network.ServerPlayerEntity; - -public class LoginListener extends LoginListenerCommon { - public LoginListener(AurionChat plugin){ - super(plugin); - } - - public void onPlayerJoin(ServerPlayerEntity player){ - playerJoin(plugin.getPlayerFactory().wrap(player)); - } - - public void onPlayerQuit(ServerPlayerEntity player){ - this.playerLeaving(plugin.getPlayerFactory().wrap(player)); - } -} +package com.mineaurion.aurionchat.fabric.listeners; + +import com.mineaurion.aurionchat.common.listeners.PlayerListenerCommon; +import com.mineaurion.aurionchat.fabric.AurionChat; +import net.minecraft.server.network.ServerPlayerEntity; + +public class PlayerListener extends PlayerListenerCommon { + public PlayerListener(AurionChat plugin){ + super(plugin); + } + + public void onPlayerJoin(ServerPlayerEntity player){ + playerJoin(plugin.getPlayerFactory().wrap(player)); + } + + public void onPlayerQuit(ServerPlayerEntity player){ + this.playerLeaving(plugin.getPlayerFactory().wrap(player)); + } +} diff --git a/forge/src/main/java/com/mineaurion/aurionchat/forge/AurionChat.java b/forge/src/main/java/com/mineaurion/aurionchat/forge/AurionChat.java index a7066e9..912b7eb 100644 --- a/forge/src/main/java/com/mineaurion/aurionchat/forge/AurionChat.java +++ b/forge/src/main/java/com/mineaurion/aurionchat/forge/AurionChat.java @@ -7,7 +7,7 @@ import com.mineaurion.aurionchat.common.logger.PluginLogger; import com.mineaurion.aurionchat.forge.command.ChatCommand; import com.mineaurion.aurionchat.forge.listeners.ChatListener; -import com.mineaurion.aurionchat.forge.listeners.LoginListener; +import com.mineaurion.aurionchat.forge.listeners.PlayerListener; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer; import net.minecraftforge.common.MinecraftForge; @@ -68,7 +68,7 @@ public void serverStopped(ServerStoppedEvent event) { @Override protected void registerPlatformListeners() { - MinecraftForge.EVENT_BUS.register(new LoginListener(this)); + MinecraftForge.EVENT_BUS.register(new PlayerListener(this)); MinecraftForge.EVENT_BUS.register(new ChatListener(this)); } diff --git a/forge/src/main/java/com/mineaurion/aurionchat/forge/listeners/LoginListener.java b/forge/src/main/java/com/mineaurion/aurionchat/forge/listeners/PlayerListener.java similarity index 76% rename from forge/src/main/java/com/mineaurion/aurionchat/forge/listeners/LoginListener.java rename to forge/src/main/java/com/mineaurion/aurionchat/forge/listeners/PlayerListener.java index 5c5e06f..e010be0 100644 --- a/forge/src/main/java/com/mineaurion/aurionchat/forge/listeners/LoginListener.java +++ b/forge/src/main/java/com/mineaurion/aurionchat/forge/listeners/PlayerListener.java @@ -1,25 +1,25 @@ -package com.mineaurion.aurionchat.forge.listeners; - -import com.mineaurion.aurionchat.common.listeners.LoginListenerCommon; -import com.mineaurion.aurionchat.forge.AurionChat; -import net.minecraft.server.level.ServerPlayer; -import net.minecraftforge.event.entity.player.PlayerEvent; -import net.minecraftforge.eventbus.api.SubscribeEvent; - - -public class LoginListener extends LoginListenerCommon { - - public LoginListener(AurionChat plugin){ - super(plugin); - } - - @SubscribeEvent - public void onPlayerJoin(PlayerEvent.PlayerLoggedInEvent event) { - playerJoin(plugin.getPlayerFactory().wrap((ServerPlayer) event.getEntity())); - } - - @SubscribeEvent - public void onPlayerQuit(PlayerEvent.PlayerLoggedOutEvent event){ - playerLeaving(plugin.getPlayerFactory().wrap((ServerPlayer) event.getEntity())); - } -} +package com.mineaurion.aurionchat.forge.listeners; + +import com.mineaurion.aurionchat.common.listeners.PlayerListenerCommon; +import com.mineaurion.aurionchat.forge.AurionChat; +import net.minecraft.server.level.ServerPlayer; +import net.minecraftforge.event.entity.player.PlayerEvent; +import net.minecraftforge.eventbus.api.SubscribeEvent; + + +public class PlayerListener extends PlayerListenerCommon { + + public PlayerListener(AurionChat plugin){ + super(plugin); + } + + @SubscribeEvent + public void onPlayerJoin(PlayerEvent.PlayerLoggedInEvent event) { + playerJoin(plugin.getPlayerFactory().wrap((ServerPlayer) event.getEntity())); + } + + @SubscribeEvent + public void onPlayerQuit(PlayerEvent.PlayerLoggedOutEvent event){ + playerLeaving(plugin.getPlayerFactory().wrap((ServerPlayer) event.getEntity())); + } +} diff --git a/sponge/src/main/java/com/mineaurion/aurionchat/sponge/AurionChat.java b/sponge/src/main/java/com/mineaurion/aurionchat/sponge/AurionChat.java index 5ad8ecb..4ff095f 100644 --- a/sponge/src/main/java/com/mineaurion/aurionchat/sponge/AurionChat.java +++ b/sponge/src/main/java/com/mineaurion/aurionchat/sponge/AurionChat.java @@ -7,7 +7,7 @@ import com.mineaurion.aurionchat.common.logger.PluginLogger; import com.mineaurion.aurionchat.sponge.command.ChatCommand; import com.mineaurion.aurionchat.sponge.listeners.ChatListener; -import com.mineaurion.aurionchat.sponge.listeners.LoginListener; +import com.mineaurion.aurionchat.sponge.listeners.PlayerListener; import org.apache.logging.log4j.LogManager; import org.spongepowered.api.Server; import org.spongepowered.api.Sponge; @@ -53,7 +53,7 @@ public void onServerStop(StoppingEngineEvent event){ @Override protected void registerPlatformListeners() { EventManager eventManager = Sponge.eventManager(); - eventManager.registerListeners(this.container, new LoginListener(this)); + eventManager.registerListeners(this.container, new PlayerListener(this)); eventManager.registerListeners(this.container, new ChatListener(this)); } diff --git a/sponge/src/main/java/com/mineaurion/aurionchat/sponge/listeners/LoginListener.java b/sponge/src/main/java/com/mineaurion/aurionchat/sponge/listeners/PlayerListener.java similarity index 80% rename from sponge/src/main/java/com/mineaurion/aurionchat/sponge/listeners/LoginListener.java rename to sponge/src/main/java/com/mineaurion/aurionchat/sponge/listeners/PlayerListener.java index 2828d6f..ef5cedb 100644 --- a/sponge/src/main/java/com/mineaurion/aurionchat/sponge/listeners/LoginListener.java +++ b/sponge/src/main/java/com/mineaurion/aurionchat/sponge/listeners/PlayerListener.java @@ -1,30 +1,30 @@ -package com.mineaurion.aurionchat.sponge.listeners; - -import com.mineaurion.aurionchat.common.listeners.LoginListenerCommon; -import com.mineaurion.aurionchat.sponge.AurionChat; -import org.spongepowered.api.Sponge; -import org.spongepowered.api.event.Listener; -import org.spongepowered.api.event.entity.living.player.KickPlayerEvent; -import org.spongepowered.api.event.network.ServerSideConnectionEvent; - -public class LoginListener extends LoginListenerCommon { - - public LoginListener(AurionChat plugin){ - super(plugin); - } - - @Listener - public void onPlayerKick(KickPlayerEvent event) { - playerLeaving(plugin.getPlayerFactory().wrap(event.player())); - } - - @Listener - public void onPlayerQuit(ServerSideConnectionEvent.Login event) { - Sponge.server().player(event.profile().uniqueId()).ifPresent(serverPlayer -> playerLeaving(plugin.getPlayerFactory().wrap(serverPlayer))); - } - - @Listener - public void onPlayerJoin(ServerSideConnectionEvent.Disconnect event) { - playerJoin(plugin.getPlayerFactory().wrap(event.player())); - } -} +package com.mineaurion.aurionchat.sponge.listeners; + +import com.mineaurion.aurionchat.common.listeners.PlayerListenerCommon; +import com.mineaurion.aurionchat.sponge.AurionChat; +import org.spongepowered.api.Sponge; +import org.spongepowered.api.event.Listener; +import org.spongepowered.api.event.entity.living.player.KickPlayerEvent; +import org.spongepowered.api.event.network.ServerSideConnectionEvent; + +public class PlayerListener extends PlayerListenerCommon { + + public PlayerListener(AurionChat plugin){ + super(plugin); + } + + @Listener + public void onPlayerKick(KickPlayerEvent event) { + playerLeaving(plugin.getPlayerFactory().wrap(event.player())); + } + + @Listener + public void onPlayerQuit(ServerSideConnectionEvent.Login event) { + Sponge.server().player(event.profile().uniqueId()).ifPresent(serverPlayer -> playerLeaving(plugin.getPlayerFactory().wrap(serverPlayer))); + } + + @Listener + public void onPlayerJoin(ServerSideConnectionEvent.Disconnect event) { + playerJoin(plugin.getPlayerFactory().wrap(event.player())); + } +}