From 7c917b729e3302768e974dd78b65b851d5559576 Mon Sep 17 00:00:00 2001 From: Arthur Mayer Date: Fri, 18 Feb 2011 05:30:49 +0100 Subject: [PATCH] added join and quit messages to chat --- configuration.txt | 2 ++ .../java/org/dynmap/DynmapPlayerListener.java | 16 ++++++++++++++++ src/main/java/org/dynmap/DynmapPlugin.java | 5 ++++- 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/configuration.txt b/configuration.txt index aac835bf..fe9c985f 100644 --- a/configuration.txt +++ b/configuration.txt @@ -40,6 +40,8 @@ web: showplayerfacesonmap: true showplayerfacesinmenu: true focuschatballoons: false + joinmessage: %playername% joined + quitmessage: %playername% quit # The clock that is shown alongside the map. clock: timeofday diff --git a/src/main/java/org/dynmap/DynmapPlayerListener.java b/src/main/java/org/dynmap/DynmapPlayerListener.java index 7f30456a..be8b1788 100644 --- a/src/main/java/org/dynmap/DynmapPlayerListener.java +++ b/src/main/java/org/dynmap/DynmapPlayerListener.java @@ -2,6 +2,7 @@ package org.dynmap; import org.bukkit.entity.Player; import org.bukkit.event.player.PlayerChatEvent; +import org.bukkit.event.player.PlayerEvent; import org.bukkit.event.player.PlayerListener; import org.bukkit.util.config.ConfigurationNode; @@ -69,4 +70,19 @@ public class DynmapPlayerListener extends PlayerListener { public void onPlayerChat(PlayerChatEvent event) { mgr.pushUpdate(new Client.ChatMessage(event.getPlayer().getName(), event.getMessage())); } + + /** + * Called when a player joins or quits the server + */ + public void onPlayerJoin(PlayerEvent event) { + String joinMessage = configuration.getString("joinmessage", "%playername% joined"); + joinMessage = joinMessage.replaceAll("%playername%", event.getPlayer().getName()); + mgr.pushUpdate(new Client.ChatMessage("Server", joinMessage)); + } + public void onPlayerQuit(PlayerEvent event) { + String quitMessage = configuration.getString("quitmessage", "%playername% quit"); + quitMessage = quitMessage.replaceAll("%playername%", event.getPlayer().getName()); + mgr.pushUpdate(new Client.ChatMessage("Server", quitMessage)); + } + } \ No newline at end of file diff --git a/src/main/java/org/dynmap/DynmapPlugin.java b/src/main/java/org/dynmap/DynmapPlugin.java index 5ab7d8d6..992a25b7 100644 --- a/src/main/java/org/dynmap/DynmapPlugin.java +++ b/src/main/java/org/dynmap/DynmapPlugin.java @@ -64,7 +64,7 @@ public class DynmapPlugin extends JavaPlugin { tilesDirectory = getFile(configuration.getString("tilespath", "web/tiles")); tilesDirectory.mkdirs(); - + playerList = new PlayerList(getServer()); playerList.load(); @@ -127,6 +127,9 @@ public class DynmapPlugin extends JavaPlugin { PlayerListener playerListener = new DynmapPlayerListener(mapManager, playerList, configuration); getServer().getPluginManager().registerEvent(Event.Type.PLAYER_COMMAND, playerListener, Priority.Normal, this); getServer().getPluginManager().registerEvent(Event.Type.PLAYER_CHAT, playerListener, Priority.Normal, this); + getServer().getPluginManager().registerEvent(Event.Type.PLAYER_LOGIN, playerListener, Priority.Normal, this); + getServer().getPluginManager().registerEvent(Event.Type.PLAYER_JOIN, playerListener, Priority.Normal, this); + getServer().getPluginManager().registerEvent(Event.Type.PLAYER_QUIT, playerListener, Priority.Normal, this); } private static File combinePaths(File parent, String path) {