1
0
mirror of https://github.com/essentials/Essentials.git synced 2025-08-11 09:05:01 +02:00

Adding join / quit messages in the config test #1697

PlayerChatEvent -> AsyncPlayerChatEvent
This commit is contained in:
ementalo
2012-10-08 22:21:03 +01:00
parent b1103726cb
commit 4d1cdaa7f0
9 changed files with 51 additions and 27 deletions

View File

@@ -13,9 +13,12 @@ import net.ess3.api.ISettings;
import net.ess3.api.IUser; import net.ess3.api.IUser;
import net.ess3.permissions.Permissions; import net.ess3.permissions.Permissions;
import net.ess3.user.UserData.TimestampType; import net.ess3.user.UserData.TimestampType;
import net.ess3.utils.FormatUtil;
import net.ess3.utils.LocationUtil; import net.ess3.utils.LocationUtil;
import net.ess3.utils.textreader.IText; import net.ess3.utils.textreader.IText;
import net.ess3.utils.textreader.KeywordReplacer; 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.TextInput;
import net.ess3.utils.textreader.TextPager; import net.ess3.utils.textreader.TextPager;
import org.bukkit.Location; import org.bukkit.Location;
@@ -114,6 +117,10 @@ public class EssentialsPlayerListener implements Listener
@EventHandler(priority = EventPriority.MONITOR) @EventHandler(priority = EventPriority.MONITOR)
public void onPlayerQuit(final PlayerQuitEvent event) 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 IUser user = ess.getUserMap().getUser(event.getPlayer());
final ISettings settings = ess.getSettings(); final ISettings settings = ess.getSettings();
@@ -141,8 +148,13 @@ public class EssentialsPlayerListener implements Listener
{ {
return; return;
} }
ess.getBackup().startTask(); 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()); final IUser user = ess.getUserMap().getUser(event.getPlayer());
user.updateDisplayName(); user.updateDisplayName();

View File

@@ -78,4 +78,10 @@ public class General implements StorageObject
return loginAttackDelay * 1000; return loginAttackDelay * 1000;
} }
public Boolean metricsEnabled = null; 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";
} }

View File

@@ -1,6 +1,6 @@
package net.ess3.settings; package net.ess3.settings;
import java.util.HashMap; import java.util.EnumMap;
import java.util.Map; import java.util.Map;
import lombok.AccessLevel; import lombok.AccessLevel;
import lombok.Data; import lombok.Data;
@@ -34,7 +34,7 @@ public class WorldOptions implements StorageObject
@Comment("Prevent creatures spawning") @Comment("Prevent creatures spawning")
@Getter(AccessLevel.NONE) @Getter(AccessLevel.NONE)
@Setter(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) public boolean getPreventSpawn(String creatureName)
{ {

View File

@@ -1,5 +1,6 @@
package net.ess3.chat; package net.ess3.chat;
import java.util.Collections;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import java.util.logging.Level; 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.EssentialsChatPlayerListenerHighest;
import net.ess3.chat.listenerlevel.EssentialsChatPlayerListenerLowest; import net.ess3.chat.listenerlevel.EssentialsChatPlayerListenerLowest;
import net.ess3.chat.listenerlevel.EssentialsChatPlayerListenerNormal; 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.PluginManager;
import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.plugin.java.JavaPlugin;
@@ -35,7 +36,7 @@ public class EssentialsChat extends JavaPlugin
return; 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 EssentialsChatPlayerListenerLowest playerListenerLowest = new EssentialsChatPlayerListenerLowest(getServer(), ess, chatStore);
final EssentialsChatPlayerListenerNormal playerListenerNormal = new EssentialsChatPlayerListenerNormal(getServer(), ess, chatStore); final EssentialsChatPlayerListenerNormal playerListenerNormal = new EssentialsChatPlayerListenerNormal(getServer(), ess, chatStore);

View File

@@ -16,7 +16,7 @@ import org.bukkit.Server;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerChatEvent; import org.bukkit.event.player.AsyncPlayerChatEvent;
//TODO: Translate the local/spy tags //TODO: Translate the local/spy tags
public abstract class EssentialsChatPlayer implements Listener public abstract class EssentialsChatPlayer implements Listener
@@ -24,37 +24,37 @@ public abstract class EssentialsChatPlayer implements Listener
protected transient IEssentials ess; protected transient IEssentials ess;
protected final static Logger LOGGER = Logger.getLogger("Minecraft"); protected final static Logger LOGGER = Logger.getLogger("Minecraft");
protected final transient Server server; protected final transient Server server;
protected final transient Map<PlayerChatEvent, ChatStore> chatStorage; protected final transient Map<AsyncPlayerChatEvent, ChatStore> chatStorage;
public EssentialsChatPlayer(final Server server, public EssentialsChatPlayer(final Server server,
final IEssentials ess, final IEssentials ess,
final Map<PlayerChatEvent, ChatStore> chatStorage) final Map<AsyncPlayerChatEvent, ChatStore> chatStorage)
{ {
this.ess = ess; this.ess = ess;
this.server = server; this.server = server;
this.chatStorage = chatStorage; 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); 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); chatStorage.put(event, chatStore);
} }
public ChatStore delChatStore(final PlayerChatEvent event) public ChatStore delChatStore(final AsyncPlayerChatEvent event)
{ {
return chatStorage.remove(event); return chatStorage.remove(event);
} }
protected void chargeChat(final PlayerChatEvent event, final ChatStore chatStore) protected void chargeChat(final AsyncPlayerChatEvent event, final ChatStore chatStore)
{ {
try 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(); final IUser user = chatStore.getUser();
if (Permissions.CHAT_COLOR.isAuthorized(user)) 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(); ISettings settings = ess.getSettings();
long radius = settings.getData().getChat().getLocalRadius(); long radius = settings.getData().getChat().getLocalRadius();

View File

@@ -4,7 +4,7 @@ import org.bukkit.entity.Player;
import org.bukkit.event.Cancellable; import org.bukkit.event.Cancellable;
import org.bukkit.event.Event; import org.bukkit.event.Event;
import org.bukkit.event.HandlerList; import org.bukkit.event.HandlerList;
import org.bukkit.event.player.PlayerChatEvent; import org.bukkit.event.player.AsyncPlayerChatEvent;
public class EssentialsLocalChatEvent extends Event implements Cancellable 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 String format = "<%1$s> %2$s";
private long radius; private long radius;
private boolean cancelled = false; private boolean cancelled = false;
private PlayerChatEvent parentEvent = null; private AsyncPlayerChatEvent parentEvent = null;
private static final HandlerList handlers = new HandlerList(); private static final HandlerList handlers = new HandlerList();
public EssentialsLocalChatEvent(final Player player, final String message, final String format, final long radius) 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; 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(event.getPlayer(), event.getMessage(), event.getFormat(), radius);
this.parentEvent = event; this.parentEvent = event;
@@ -93,7 +93,7 @@ public class EssentialsLocalChatEvent extends Event implements Cancellable
this.radius = radius; this.radius = radius;
} }
public PlayerChatEvent getParentEvent() public AsyncPlayerChatEvent getParentEvent()
{ {
return parentEvent; return parentEvent;
} }

View File

@@ -7,21 +7,21 @@ import net.ess3.chat.EssentialsChatPlayer;
import org.bukkit.Server; import org.bukkit.Server;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority; import org.bukkit.event.EventPriority;
import org.bukkit.event.player.PlayerChatEvent; import org.bukkit.event.player.AsyncPlayerChatEvent;
public class EssentialsChatPlayerListenerHighest extends EssentialsChatPlayer public class EssentialsChatPlayerListenerHighest extends EssentialsChatPlayer
{ {
public EssentialsChatPlayerListenerHighest(final Server server, public EssentialsChatPlayerListenerHighest(final Server server,
final IEssentials ess, final IEssentials ess,
final Map<PlayerChatEvent, ChatStore> chatStorage) final Map<AsyncPlayerChatEvent, ChatStore> chatStorage)
{ {
super(server, ess, chatStorage); super(server, ess, chatStorage);
} }
@EventHandler(priority = EventPriority.HIGHEST) @EventHandler(priority = EventPriority.HIGHEST)
@Override @Override
public void onPlayerChat(final PlayerChatEvent event) public void onPlayerChat(final AsyncPlayerChatEvent event)
{ {
final ChatStore chatStore = delChatStore(event); final ChatStore chatStore = delChatStore(event);
if (event.isCancelled()) if (event.isCancelled())

View File

@@ -8,27 +8,32 @@ import net.ess3.chat.EssentialsChatPlayer;
import org.bukkit.Server; import org.bukkit.Server;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority; import org.bukkit.event.EventPriority;
import org.bukkit.event.player.PlayerChatEvent; import org.bukkit.event.player.AsyncPlayerChatEvent;
public class EssentialsChatPlayerListenerLowest extends EssentialsChatPlayer public class EssentialsChatPlayerListenerLowest extends EssentialsChatPlayer
{ {
public EssentialsChatPlayerListenerLowest(final Server server, public EssentialsChatPlayerListenerLowest(final Server server,
final IEssentials ess, final IEssentials ess,
final Map<PlayerChatEvent, ChatStore> chatStorage) final Map<AsyncPlayerChatEvent, ChatStore> chatStorage)
{ {
super(server, ess, chatStorage); super(server, ess, chatStorage);
} }
@EventHandler(priority = EventPriority.LOWEST) @EventHandler(priority = EventPriority.LOWEST)
@Override @Override
public void onPlayerChat(final PlayerChatEvent event) public void onPlayerChat(final AsyncPlayerChatEvent event)
{ {
if (event.isCancelled()) if (event.isCancelled())
{ {
return; return;
} }
final IUser user = ess.getUserMap().getUser(event.getPlayer()); 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())); final ChatStore chatStore = new ChatStore(ess, user, getChatType(event.getMessage()));
setChatStore(event, chatStore); setChatStore(event, chatStore);
formatChat(event, chatStore); formatChat(event, chatStore);

View File

@@ -7,21 +7,21 @@ import net.ess3.chat.EssentialsChatPlayer;
import org.bukkit.Server; import org.bukkit.Server;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority; import org.bukkit.event.EventPriority;
import org.bukkit.event.player.PlayerChatEvent; import org.bukkit.event.player.AsyncPlayerChatEvent;
public class EssentialsChatPlayerListenerNormal extends EssentialsChatPlayer public class EssentialsChatPlayerListenerNormal extends EssentialsChatPlayer
{ {
public EssentialsChatPlayerListenerNormal(final Server server, public EssentialsChatPlayerListenerNormal(final Server server,
final IEssentials ess, final IEssentials ess,
final Map<PlayerChatEvent, ChatStore> chatStorage) final Map<AsyncPlayerChatEvent, ChatStore> chatStorage)
{ {
super(server, ess, chatStorage); super(server, ess, chatStorage);
} }
@EventHandler(priority = EventPriority.NORMAL) @EventHandler(priority = EventPriority.NORMAL)
@Override @Override
public void onPlayerChat(final PlayerChatEvent event) public void onPlayerChat(final AsyncPlayerChatEvent event)
{ {
if (event.isCancelled()) if (event.isCancelled())
{ {