summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Essentials/src/net/ess3/listener/EssentialsPlayerListener.java12
-rw-r--r--Essentials/src/net/ess3/settings/General.java6
-rw-r--r--Essentials/src/net/ess3/settings/WorldOptions.java4
-rw-r--r--EssentialsChat/src/net/ess3/chat/EssentialsChat.java5
-rw-r--r--EssentialsChat/src/net/ess3/chat/EssentialsChatPlayer.java20
-rw-r--r--EssentialsChat/src/net/ess3/chat/EssentialsLocalChatEvent.java8
-rw-r--r--EssentialsChat/src/net/ess3/chat/listenerlevel/EssentialsChatPlayerListenerHighest.java6
-rw-r--r--EssentialsChat/src/net/ess3/chat/listenerlevel/EssentialsChatPlayerListenerLowest.java11
-rw-r--r--EssentialsChat/src/net/ess3/chat/listenerlevel/EssentialsChatPlayerListenerNormal.java6
9 files changed, 51 insertions, 27 deletions
diff --git a/Essentials/src/net/ess3/listener/EssentialsPlayerListener.java b/Essentials/src/net/ess3/listener/EssentialsPlayerListener.java
index b14ce9f10..6a0fa57cf 100644
--- a/Essentials/src/net/ess3/listener/EssentialsPlayerListener.java
+++ b/Essentials/src/net/ess3/listener/EssentialsPlayerListener.java
@@ -13,9 +13,12 @@ import net.ess3.api.ISettings;
import net.ess3.api.IUser;
import net.ess3.permissions.Permissions;
import net.ess3.user.UserData.TimestampType;
+import net.ess3.utils.FormatUtil;
import net.ess3.utils.LocationUtil;
import net.ess3.utils.textreader.IText;
import net.ess3.utils.textreader.KeywordReplacer;
+import net.ess3.utils.textreader.SimpleTextInput;
+import net.ess3.utils.textreader.SimpleTextPager;
import net.ess3.utils.textreader.TextInput;
import net.ess3.utils.textreader.TextPager;
import org.bukkit.Location;
@@ -114,6 +117,10 @@ public class EssentialsPlayerListener implements Listener
@EventHandler(priority = EventPriority.MONITOR)
public void onPlayerQuit(final PlayerQuitEvent event)
{
+ final IText itOutput = new KeywordReplacer(new SimpleTextInput(ess.getSettings().getData().getGeneral().getLeaveMessage()), event.getPlayer(), ess);
+ final SimpleTextPager stPager = new SimpleTextPager(itOutput);
+ event.setQuitMessage(FormatUtil.replaceFormat(stPager.getString(0)));
+
final IUser user = ess.getUserMap().getUser(event.getPlayer());
final ISettings settings = ess.getSettings();
@@ -141,8 +148,13 @@ public class EssentialsPlayerListener implements Listener
{
return;
}
+
ess.getBackup().startTask();
+ final IText itOutput = new KeywordReplacer(new SimpleTextInput(ess.getSettings().getData().getGeneral().getJoinMessage()), event.getPlayer(), ess);
+ final SimpleTextPager stPager = new SimpleTextPager(itOutput);
+ event.setJoinMessage(FormatUtil.replaceFormat(stPager.getString(0)));
+
final IUser user = ess.getUserMap().getUser(event.getPlayer());
user.updateDisplayName();
diff --git a/Essentials/src/net/ess3/settings/General.java b/Essentials/src/net/ess3/settings/General.java
index 91812631f..ff3b46a85 100644
--- a/Essentials/src/net/ess3/settings/General.java
+++ b/Essentials/src/net/ess3/settings/General.java
@@ -78,4 +78,10 @@ public class General implements StorageObject
return loginAttackDelay * 1000;
}
public Boolean metricsEnabled = null;
+
+ @Comment("The join message when players join the server")
+ private String joinMessage = "&e{PLAYER} has joined the game";
+
+ @Comment("The quit message when players leave the server")
+ private String leaveMessage ="&e{PLAYER} has left the game";
}
diff --git a/Essentials/src/net/ess3/settings/WorldOptions.java b/Essentials/src/net/ess3/settings/WorldOptions.java
index fb0da4e07..661f77c30 100644
--- a/Essentials/src/net/ess3/settings/WorldOptions.java
+++ b/Essentials/src/net/ess3/settings/WorldOptions.java
@@ -1,6 +1,6 @@
package net.ess3.settings;
-import java.util.HashMap;
+import java.util.EnumMap;
import java.util.Map;
import lombok.AccessLevel;
import lombok.Data;
@@ -34,7 +34,7 @@ public class WorldOptions implements StorageObject
@Comment("Prevent creatures spawning")
@Getter(AccessLevel.NONE)
@Setter(AccessLevel.NONE)
- private Map<EntityType, Boolean> creatureSpawn = new HashMap<EntityType, Boolean>();
+ private Map<EntityType, Boolean> creatureSpawn = new EnumMap<EntityType, Boolean>(EntityType.class);
public boolean getPreventSpawn(String creatureName)
{
diff --git a/EssentialsChat/src/net/ess3/chat/EssentialsChat.java b/EssentialsChat/src/net/ess3/chat/EssentialsChat.java
index f191e345e..b80d38f6d 100644
--- a/EssentialsChat/src/net/ess3/chat/EssentialsChat.java
+++ b/EssentialsChat/src/net/ess3/chat/EssentialsChat.java
@@ -1,5 +1,6 @@
package net.ess3.chat;
+import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import java.util.logging.Level;
@@ -10,7 +11,7 @@ import net.ess3.api.IPlugin;
import net.ess3.chat.listenerlevel.EssentialsChatPlayerListenerHighest;
import net.ess3.chat.listenerlevel.EssentialsChatPlayerListenerLowest;
import net.ess3.chat.listenerlevel.EssentialsChatPlayerListenerNormal;
-import org.bukkit.event.player.PlayerChatEvent;
+import org.bukkit.event.player.AsyncPlayerChatEvent;
import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.java.JavaPlugin;
@@ -35,7 +36,7 @@ public class EssentialsChat extends JavaPlugin
return;
}
- final Map<PlayerChatEvent, ChatStore> chatStore = new HashMap<PlayerChatEvent, ChatStore>();
+ final Map<AsyncPlayerChatEvent, ChatStore> chatStore = Collections.synchronizedMap(new HashMap<AsyncPlayerChatEvent, ChatStore>());
final EssentialsChatPlayerListenerLowest playerListenerLowest = new EssentialsChatPlayerListenerLowest(getServer(), ess, chatStore);
final EssentialsChatPlayerListenerNormal playerListenerNormal = new EssentialsChatPlayerListenerNormal(getServer(), ess, chatStore);
diff --git a/EssentialsChat/src/net/ess3/chat/EssentialsChatPlayer.java b/EssentialsChat/src/net/ess3/chat/EssentialsChatPlayer.java
index 20019b179..3d1be4521 100644
--- a/EssentialsChat/src/net/ess3/chat/EssentialsChatPlayer.java
+++ b/EssentialsChat/src/net/ess3/chat/EssentialsChatPlayer.java
@@ -16,7 +16,7 @@ import org.bukkit.Server;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.event.Listener;
-import org.bukkit.event.player.PlayerChatEvent;
+import org.bukkit.event.player.AsyncPlayerChatEvent;
//TODO: Translate the local/spy tags
public abstract class EssentialsChatPlayer implements Listener
@@ -24,37 +24,37 @@ public abstract class EssentialsChatPlayer implements Listener
protected transient IEssentials ess;
protected final static Logger LOGGER = Logger.getLogger("Minecraft");
protected final transient Server server;
- protected final transient Map<PlayerChatEvent, ChatStore> chatStorage;
+ protected final transient Map<AsyncPlayerChatEvent, ChatStore> chatStorage;
public EssentialsChatPlayer(final Server server,
final IEssentials ess,
- final Map<PlayerChatEvent, ChatStore> chatStorage)
+ final Map<AsyncPlayerChatEvent, ChatStore> chatStorage)
{
this.ess = ess;
this.server = server;
this.chatStorage = chatStorage;
}
- public void onPlayerChat(final PlayerChatEvent event)
+ public void onPlayerChat(final AsyncPlayerChatEvent event)
{
}
- public ChatStore getChatStore(final PlayerChatEvent event)
+ public ChatStore getChatStore(final AsyncPlayerChatEvent event)
{
return chatStorage.get(event);
}
- public void setChatStore(final PlayerChatEvent event, final ChatStore chatStore)
+ public void setChatStore(final AsyncPlayerChatEvent event, final ChatStore chatStore)
{
chatStorage.put(event, chatStore);
}
- public ChatStore delChatStore(final PlayerChatEvent event)
+ public ChatStore delChatStore(final AsyncPlayerChatEvent event)
{
return chatStorage.remove(event);
}
- protected void chargeChat(final PlayerChatEvent event, final ChatStore chatStore)
+ protected void chargeChat(final AsyncPlayerChatEvent event, final ChatStore chatStore)
{
try
{
@@ -75,7 +75,7 @@ public abstract class EssentialsChatPlayer implements Listener
}
}
- protected void formatChat(final PlayerChatEvent event, final ChatStore chatStore)
+ protected void formatChat(final AsyncPlayerChatEvent event, final ChatStore chatStore)
{
final IUser user = chatStore.getUser();
if (Permissions.CHAT_COLOR.isAuthorized(user))
@@ -109,7 +109,7 @@ public abstract class EssentialsChatPlayer implements Listener
}
}
- protected void handleLocalChat(final PlayerChatEvent event, final ChatStore chatStore)
+ protected void handleLocalChat(final AsyncPlayerChatEvent event, final ChatStore chatStore)
{
ISettings settings = ess.getSettings();
long radius = settings.getData().getChat().getLocalRadius();
diff --git a/EssentialsChat/src/net/ess3/chat/EssentialsLocalChatEvent.java b/EssentialsChat/src/net/ess3/chat/EssentialsLocalChatEvent.java
index e0ce6602d..d3bafa984 100644
--- a/EssentialsChat/src/net/ess3/chat/EssentialsLocalChatEvent.java
+++ b/EssentialsChat/src/net/ess3/chat/EssentialsLocalChatEvent.java
@@ -4,7 +4,7 @@ import org.bukkit.entity.Player;
import org.bukkit.event.Cancellable;
import org.bukkit.event.Event;
import org.bukkit.event.HandlerList;
-import org.bukkit.event.player.PlayerChatEvent;
+import org.bukkit.event.player.AsyncPlayerChatEvent;
public class EssentialsLocalChatEvent extends Event implements Cancellable
@@ -14,7 +14,7 @@ public class EssentialsLocalChatEvent extends Event implements Cancellable
private String format = "<%1$s> %2$s";
private long radius;
private boolean cancelled = false;
- private PlayerChatEvent parentEvent = null;
+ private AsyncPlayerChatEvent parentEvent = null;
private static final HandlerList handlers = new HandlerList();
public EssentialsLocalChatEvent(final Player player, final String message, final String format, final long radius)
@@ -25,7 +25,7 @@ public class EssentialsLocalChatEvent extends Event implements Cancellable
this.radius = radius;
}
- public EssentialsLocalChatEvent(final PlayerChatEvent event, final long radius)
+ public EssentialsLocalChatEvent(final AsyncPlayerChatEvent event, final long radius)
{
this(event.getPlayer(), event.getMessage(), event.getFormat(), radius);
this.parentEvent = event;
@@ -93,7 +93,7 @@ public class EssentialsLocalChatEvent extends Event implements Cancellable
this.radius = radius;
}
- public PlayerChatEvent getParentEvent()
+ public AsyncPlayerChatEvent getParentEvent()
{
return parentEvent;
}
diff --git a/EssentialsChat/src/net/ess3/chat/listenerlevel/EssentialsChatPlayerListenerHighest.java b/EssentialsChat/src/net/ess3/chat/listenerlevel/EssentialsChatPlayerListenerHighest.java
index dca0c3b79..3ecb1f733 100644
--- a/EssentialsChat/src/net/ess3/chat/listenerlevel/EssentialsChatPlayerListenerHighest.java
+++ b/EssentialsChat/src/net/ess3/chat/listenerlevel/EssentialsChatPlayerListenerHighest.java
@@ -7,21 +7,21 @@ import net.ess3.chat.EssentialsChatPlayer;
import org.bukkit.Server;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
-import org.bukkit.event.player.PlayerChatEvent;
+import org.bukkit.event.player.AsyncPlayerChatEvent;
public class EssentialsChatPlayerListenerHighest extends EssentialsChatPlayer
{
public EssentialsChatPlayerListenerHighest(final Server server,
final IEssentials ess,
- final Map<PlayerChatEvent, ChatStore> chatStorage)
+ final Map<AsyncPlayerChatEvent, ChatStore> chatStorage)
{
super(server, ess, chatStorage);
}
@EventHandler(priority = EventPriority.HIGHEST)
@Override
- public void onPlayerChat(final PlayerChatEvent event)
+ public void onPlayerChat(final AsyncPlayerChatEvent event)
{
final ChatStore chatStore = delChatStore(event);
if (event.isCancelled())
diff --git a/EssentialsChat/src/net/ess3/chat/listenerlevel/EssentialsChatPlayerListenerLowest.java b/EssentialsChat/src/net/ess3/chat/listenerlevel/EssentialsChatPlayerListenerLowest.java
index f5a8c26ab..836d6af86 100644
--- a/EssentialsChat/src/net/ess3/chat/listenerlevel/EssentialsChatPlayerListenerLowest.java
+++ b/EssentialsChat/src/net/ess3/chat/listenerlevel/EssentialsChatPlayerListenerLowest.java
@@ -8,27 +8,32 @@ import net.ess3.chat.EssentialsChatPlayer;
import org.bukkit.Server;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
-import org.bukkit.event.player.PlayerChatEvent;
+import org.bukkit.event.player.AsyncPlayerChatEvent;
public class EssentialsChatPlayerListenerLowest extends EssentialsChatPlayer
{
public EssentialsChatPlayerListenerLowest(final Server server,
final IEssentials ess,
- final Map<PlayerChatEvent, ChatStore> chatStorage)
+ final Map<AsyncPlayerChatEvent, ChatStore> chatStorage)
{
super(server, ess, chatStorage);
}
@EventHandler(priority = EventPriority.LOWEST)
@Override
- public void onPlayerChat(final PlayerChatEvent event)
+ public void onPlayerChat(final AsyncPlayerChatEvent event)
{
if (event.isCancelled())
{
return;
}
final IUser user = ess.getUserMap().getUser(event.getPlayer());
+ if(user == null)
+ {
+ event.setCancelled(true);
+ return;
+ }
final ChatStore chatStore = new ChatStore(ess, user, getChatType(event.getMessage()));
setChatStore(event, chatStore);
formatChat(event, chatStore);
diff --git a/EssentialsChat/src/net/ess3/chat/listenerlevel/EssentialsChatPlayerListenerNormal.java b/EssentialsChat/src/net/ess3/chat/listenerlevel/EssentialsChatPlayerListenerNormal.java
index 201d946c5..bef4322d6 100644
--- a/EssentialsChat/src/net/ess3/chat/listenerlevel/EssentialsChatPlayerListenerNormal.java
+++ b/EssentialsChat/src/net/ess3/chat/listenerlevel/EssentialsChatPlayerListenerNormal.java
@@ -7,21 +7,21 @@ import net.ess3.chat.EssentialsChatPlayer;
import org.bukkit.Server;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
-import org.bukkit.event.player.PlayerChatEvent;
+import org.bukkit.event.player.AsyncPlayerChatEvent;
public class EssentialsChatPlayerListenerNormal extends EssentialsChatPlayer
{
public EssentialsChatPlayerListenerNormal(final Server server,
final IEssentials ess,
- final Map<PlayerChatEvent, ChatStore> chatStorage)
+ final Map<AsyncPlayerChatEvent, ChatStore> chatStorage)
{
super(server, ess, chatStorage);
}
@EventHandler(priority = EventPriority.NORMAL)
@Override
- public void onPlayerChat(final PlayerChatEvent event)
+ public void onPlayerChat(final AsyncPlayerChatEvent event)
{
if (event.isCancelled())
{