mirror of
https://github.com/essentials/Essentials.git
synced 2025-08-17 03:54:19 +02:00
2nd sweep over Essentials Chat, to implement 2.8 changes.
Formatting cache still needs reimplemented.
This commit is contained in:
@@ -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();
|
||||||
}
|
}
|
||||||
|
@@ -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;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@@ -42,7 +42,7 @@ public class EssentialsChat extends JavaPlugin
|
|||||||
pluginManager.registerEvents(playerListenerLowest, this);
|
pluginManager.registerEvents(playerListenerLowest, this);
|
||||||
pluginManager.registerEvents(playerListenerNormal, this);
|
pluginManager.registerEvents(playerListenerNormal, this);
|
||||||
pluginManager.registerEvents(playerListenerHighest, this);
|
pluginManager.registerEvents(playerListenerHighest, this);
|
||||||
|
|
||||||
final EssentialsLocalChatEventListener localChatListener = new EssentialsLocalChatEventListener(getServer(), ess);
|
final EssentialsLocalChatEventListener localChatListener = new EssentialsLocalChatEventListener(getServer(), ess);
|
||||||
pluginManager.registerEvents(localChatListener, this);
|
pluginManager.registerEvents(localChatListener, this);
|
||||||
|
|
||||||
|
@@ -83,18 +83,21 @@ public abstract class EssentialsChatPlayer implements Listener
|
|||||||
}
|
}
|
||||||
String group = user.getGroup();
|
String group = user.getGroup();
|
||||||
String world = user.getWorld().getName();
|
String world = user.getWorld().getName();
|
||||||
|
|
||||||
IGroups groupSettings = ess.getGroups();
|
IGroups groupSettings = ess.getGroups();
|
||||||
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
|
||||||
{
|
{
|
||||||
groupSettings.unlock();
|
groupSettings.unlock();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//TODO: Flesh this out - '?' trigger is too easily accidentally triggered
|
//TODO: Flesh this out - '?' trigger is too easily accidentally triggered
|
||||||
@@ -105,7 +108,7 @@ public abstract class EssentialsChatPlayer implements Listener
|
|||||||
case '!':
|
case '!':
|
||||||
return "shout";
|
return "shout";
|
||||||
//case '?':
|
//case '?':
|
||||||
//return "question";
|
//return "question";
|
||||||
//case '@':
|
//case '@':
|
||||||
// return "admin";
|
// return "admin";
|
||||||
default:
|
default:
|
||||||
@@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -3,33 +3,34 @@ 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)
|
||||||
{
|
{
|
||||||
this.ess = ess;
|
this.ess = ess;
|
||||||
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();
|
final Player sender = event.getPlayer();
|
||||||
if (event.getRadius() < 1)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
event.setCancelled(true);
|
|
||||||
final Location loc = sender.getLocation();
|
final Location loc = sender.getLocation();
|
||||||
final World world = loc.getWorld();
|
final World world = loc.getWorld();
|
||||||
|
|
||||||
@@ -64,8 +65,8 @@ 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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
Reference in New Issue
Block a user