1
0
mirror of https://github.com/essentials/Essentials.git synced 2025-08-17 20:11:21 +02:00

2nd sweep over Essentials Chat, to implement 2.8 changes.

Formatting cache still needs reimplemented.
This commit is contained in:
KHobbits
2012-01-24 23:20:00 +00:00
parent 38a9327284
commit df061749dd
6 changed files with 34 additions and 36 deletions

View File

@@ -168,7 +168,7 @@ public class GroupsHolder extends AsyncStorageObjectHolder<Groups> implements IG
{ {
for (GroupOptions groupOptions : getGroups(player)) for (GroupOptions groupOptions : getGroups(player))
{ {
if (groupOptions.getMessageFormat() != null) if (groupOptions != null && groupOptions.getMessageFormat() != null)
{ {
return groupOptions.getMessageFormat(); return groupOptions.getMessageFormat();
} }

View File

@@ -10,7 +10,6 @@ public class ChatStore
private final transient IUser user; private final transient IUser user;
private final transient String type; private final transient String type;
private final transient Trade charge; private final transient Trade charge;
private long radius;
public ChatStore(final IEssentials ess, final IUser user, final String type) public ChatStore(final IEssentials ess, final IUser user, final String type)
{ {
@@ -38,14 +37,4 @@ public class ChatStore
{ {
return type.length() > 0 ? "chat" : "chat-" + type; return type.length() > 0 ? "chat" : "chat-" + type;
} }
public long getRadius()
{
return radius;
}
public void setRadius(final long radius)
{
this.radius = radius;
}
} }

View File

@@ -88,7 +88,10 @@ public abstract class EssentialsChatPlayer implements Listener
groupSettings.acquireReadLock(); groupSettings.acquireReadLock();
try try
{ {
event.setFormat(groupSettings.getChatFormat(user).format(new Object[] {group, world, world.substring(0, 1).toUpperCase(Locale.ENGLISH)})); event.setFormat(groupSettings.getChatFormat(user).format(new Object[]
{
group, world, world.substring(0, 1).toUpperCase(Locale.ENGLISH)
}));
} }
finally finally
{ {
@@ -126,8 +129,13 @@ public abstract class EssentialsChatPlayer implements Listener
{ {
settings.unlock(); settings.unlock();
} }
if (radius < 1)
{
return;
}
radius *= radius; radius *= radius;
chatStore.setRadius(radius);
final IUser user = chatStore.getUser(); final IUser user = chatStore.getUser();
@@ -154,7 +162,7 @@ public abstract class EssentialsChatPlayer implements Listener
} }
event.setCancelled(true); event.setCancelled(true);
final EssentialsLocalChatEvent localChat = new EssentialsLocalChatEvent(event, chatStore); final EssentialsLocalChatEvent localChat = new EssentialsLocalChatEvent(event, radius);
ess.getServer().getPluginManager().callEvent(localChat); ess.getServer().getPluginManager().callEvent(localChat);
} }
} }

View File

@@ -25,9 +25,9 @@ public class EssentialsLocalChatEvent extends Event implements Cancellable
this.radius = radius; this.radius = radius;
} }
public EssentialsLocalChatEvent(final PlayerChatEvent event, final ChatStore chatStore) public EssentialsLocalChatEvent(final PlayerChatEvent event, final long radius)
{ {
this(event.getPlayer(), event.getMessage(), event.getFormat(), chatStore.getRadius()); this(event.getPlayer(), event.getMessage(), event.getFormat(), radius);
this.parentEvent = event; this.parentEvent = event;
} }

View File

@@ -3,18 +3,22 @@ package com.earth2me.essentials.chat;
import static com.earth2me.essentials.I18n._; import static com.earth2me.essentials.I18n._;
import com.earth2me.essentials.api.IEssentials; import com.earth2me.essentials.api.IEssentials;
import com.earth2me.essentials.api.IUser; import com.earth2me.essentials.api.IUser;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.Server; import org.bukkit.Server;
import org.bukkit.World; import org.bukkit.World;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
public class EssentialsLocalChatEventListener implements Listener {
public class EssentialsLocalChatEventListener implements Listener
{
protected transient IEssentials ess; protected transient IEssentials ess;
protected final transient Server server; protected final transient Server server;
private static final Logger LOGGER = Logger.getLogger("Minecraft");
public EssentialsLocalChatEventListener(final Server server, final IEssentials ess) public EssentialsLocalChatEventListener(final Server server, final IEssentials ess)
{ {
@@ -22,14 +26,11 @@ public class EssentialsLocalChatEventListener implements Listener {
this.server = server; this.server = server;
} }
@EventHandler @EventHandler(priority = EventPriority.HIGHEST)
public void onLocalChat(final EssentialsLocalChatEvent event) { public void onLocalChat(final EssentialsLocalChatEvent event)
final Player sender = event.getPlayer();
if (event.getRadius() < 1)
{ {
return;
} final Player sender = event.getPlayer();
event.setCancelled(true);
final Location loc = sender.getLocation(); final Location loc = sender.getLocation();
final World world = loc.getWorld(); final World world = loc.getWorld();
@@ -64,7 +65,7 @@ public class EssentialsLocalChatEventListener implements Listener {
} }
} }
final String message = String.format(event.getFormat(), type.concat(sender.getDisplayName()), event.getMessage()); final String message = type.concat(String.format(event.getFormat(), sender.getDisplayName(), event.getMessage()));
user.sendMessage(message); user.sendMessage(message);
} }
} }