Fix freezeafk so that moving with mouse does not teleport you about. Add check for if some takes the ground away from you

This commit is contained in:
ementalo 2011-09-29 00:24:52 +01:00
parent d2c553652f
commit 48049f3870

View file

@ -1,493 +1,486 @@
package com.earth2me.essentials; package com.earth2me.essentials;
import java.util.Arrays; import java.util.Arrays;
import java.util.Iterator; import java.util.Iterator;
import java.util.List; import java.util.List;
import java.util.logging.Level; import java.util.logging.Level;
import java.util.logging.Logger; import java.util.logging.Logger;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.Server; import org.bukkit.Server;
import org.bukkit.World; import org.bukkit.World;
import org.bukkit.block.Block; import org.bukkit.block.Block;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.block.Action; import org.bukkit.event.block.Action;
import org.bukkit.event.player.PlayerAnimationEvent; import org.bukkit.event.player.PlayerAnimationEvent;
import org.bukkit.event.player.PlayerAnimationType; import org.bukkit.event.player.PlayerAnimationType;
import org.bukkit.event.player.PlayerBucketEmptyEvent; import org.bukkit.event.player.PlayerBucketEmptyEvent;
import org.bukkit.event.player.PlayerChatEvent; import org.bukkit.event.player.PlayerChatEvent;
import org.bukkit.event.player.PlayerCommandPreprocessEvent; import org.bukkit.event.player.PlayerCommandPreprocessEvent;
import org.bukkit.event.player.PlayerEggThrowEvent; import org.bukkit.event.player.PlayerEggThrowEvent;
import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerListener; import org.bukkit.event.player.PlayerListener;
import org.bukkit.event.player.PlayerLoginEvent; import org.bukkit.event.player.PlayerLoginEvent;
import org.bukkit.event.player.PlayerLoginEvent.Result; import org.bukkit.event.player.PlayerLoginEvent.Result;
import org.bukkit.event.player.PlayerMoveEvent; import org.bukkit.event.player.PlayerMoveEvent;
import org.bukkit.event.player.PlayerQuitEvent; import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.event.player.PlayerRespawnEvent; import org.bukkit.event.player.PlayerRespawnEvent;
import org.bukkit.event.player.PlayerTeleportEvent; import org.bukkit.event.player.PlayerTeleportEvent;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
public class EssentialsPlayerListener extends PlayerListener public class EssentialsPlayerListener extends PlayerListener
{ {
private static final Logger LOGGER = Logger.getLogger("Minecraft"); private static final Logger LOGGER = Logger.getLogger("Minecraft");
private final transient Server server; private final transient Server server;
private final transient IEssentials ess; private final transient IEssentials ess;
public EssentialsPlayerListener(final IEssentials parent) public EssentialsPlayerListener(final IEssentials parent)
{ {
this.ess = parent; this.ess = parent;
this.server = parent.getServer(); this.server = parent.getServer();
} }
@Override @Override
public void onPlayerRespawn(final PlayerRespawnEvent event) public void onPlayerRespawn(final PlayerRespawnEvent event)
{ {
final User user = ess.getUser(event.getPlayer()); final User user = ess.getUser(event.getPlayer());
user.setDisplayName(user.getNick()); user.setDisplayName(user.getNick());
updateCompass(user); updateCompass(user);
if (ess.getSettings().changeDisplayName()) if (ess.getSettings().changeDisplayName())
{ {
user.setDisplayName(user.getNick()); user.setDisplayName(user.getNick());
} }
} }
@Override @Override
public void onPlayerChat(final PlayerChatEvent event) public void onPlayerChat(final PlayerChatEvent event)
{ {
final User user = ess.getUser(event.getPlayer()); final User user = ess.getUser(event.getPlayer());
if (user.isMuted()) if (user.isMuted())
{ {
event.setCancelled(true); event.setCancelled(true);
user.sendMessage(Util.i18n("playerMuted")); user.sendMessage(Util.i18n("playerMuted"));
LOGGER.info(Util.format("mutedUserSpeaks", user.getName())); LOGGER.info(Util.format("mutedUserSpeaks", user.getName()));
} }
final Iterator<Player> it = event.getRecipients().iterator(); final Iterator<Player> it = event.getRecipients().iterator();
while (it.hasNext()) while (it.hasNext())
{ {
final User u = ess.getUser(it.next()); final User u = ess.getUser(it.next());
if (u.isIgnoredPlayer(user.getName())) if (u.isIgnoredPlayer(user.getName()))
{ {
it.remove(); it.remove();
} }
} }
user.updateActivity(true); user.updateActivity(true);
if (ess.getSettings().changeDisplayName()) if (ess.getSettings().changeDisplayName())
{ {
user.setDisplayName(user.getNick()); user.setDisplayName(user.getNick());
} }
} }
@Override @Override
public void onPlayerMove(final PlayerMoveEvent event) public void onPlayerMove(final PlayerMoveEvent event)
{ {
if (event.isCancelled()) if (event.isCancelled())
{ {
return; return;
} }
final User user = ess.getUser(event.getPlayer()); final User user = ess.getUser(event.getPlayer());
if (user.isAfk() && ess.getSettings().getFreezeAfkPlayers()) if (user.isAfk() && ess.getSettings().getFreezeAfkPlayers())
{ {
final Location from = event.getFrom(); final Location from = event.getFrom();
final Location to = event.getTo().clone(); final Location to = event.getTo().clone();
to.setX(from.getX()); to.setX(from.getX());
to.setY(from.getY()); to.setY(from.getBlock().getTypeId() == 0 ? from.getY() - 1 : from.getY());
to.setZ(from.getZ()); to.setZ(from.getZ());
try event.setTo(to);
{ return;
event.setTo(Util.getSafeDestination(to)); }
}
catch (Exception ex) Location afk = user.getAfkPosition();
{ if (afk == null || !event.getTo().getWorld().equals(afk.getWorld()) || afk.distanceSquared(event.getTo()) > 9)
event.setTo(to); {
} user.updateActivity(true);
return; }
}
if (!ess.getSettings().getNetherPortalsEnabled())
Location afk = user.getAfkPosition(); {
if (afk == null || !event.getTo().getWorld().equals(afk.getWorld()) || afk.distanceSquared(event.getTo()) > 9) return;
{ }
user.updateActivity(true);
} final Block block = event.getPlayer().getWorld().getBlockAt(event.getTo().getBlockX(), event.getTo().getBlockY(), event.getTo().getBlockZ());
final List<World> worlds = server.getWorlds();
if (!ess.getSettings().getNetherPortalsEnabled())
{ if (block.getType() == Material.PORTAL && worlds.size() > 1 && user.isAuthorized("essentials.portal"))
return; {
} if (user.getJustPortaled())
{
final Block block = event.getPlayer().getWorld().getBlockAt(event.getTo().getBlockX(), event.getTo().getBlockY(), event.getTo().getBlockZ()); return;
final List<World> worlds = server.getWorlds(); }
if (block.getType() == Material.PORTAL && worlds.size() > 1 && user.isAuthorized("essentials.portal")) World nether = server.getWorld(ess.getSettings().getNetherName());
{ if (nether == null)
if (user.getJustPortaled()) {
{ for (World world : worlds)
return; {
} if (world.getEnvironment() == World.Environment.NETHER)
{
World nether = server.getWorld(ess.getSettings().getNetherName()); nether = world;
if (nether == null) break;
{ }
for (World world : worlds) }
{ if (nether == null)
if (world.getEnvironment() == World.Environment.NETHER) {
{ return;
nether = world; }
break; }
} final World world = user.getWorld() == nether ? worlds.get(0) : nether;
}
if (nether == null) double factor;
{ if (user.getWorld().getEnvironment() == World.Environment.NETHER && world.getEnvironment() == World.Environment.NORMAL)
return; {
} factor = ess.getSettings().getNetherRatio();
} }
final World world = user.getWorld() == nether ? worlds.get(0) : nether; else if (user.getWorld().getEnvironment() == World.Environment.NORMAL && world.getEnvironment() == World.Environment.NETHER)
{
double factor; factor = 1.0 / ess.getSettings().getNetherRatio();
if (user.getWorld().getEnvironment() == World.Environment.NETHER && world.getEnvironment() == World.Environment.NORMAL) }
{ else
factor = ess.getSettings().getNetherRatio(); {
} factor = 1.0;
else if (user.getWorld().getEnvironment() == World.Environment.NORMAL && world.getEnvironment() == World.Environment.NETHER) }
{
factor = 1.0 / ess.getSettings().getNetherRatio(); Location loc = event.getTo();
} int x = loc.getBlockX();
else int y = loc.getBlockY();
{ int z = loc.getBlockZ();
factor = 1.0;
} if (user.getWorld().getBlockAt(x, y, z - 1).getType() == Material.PORTAL)
{
Location loc = event.getTo(); z--;
int x = loc.getBlockX(); }
int y = loc.getBlockY(); if (user.getWorld().getBlockAt(x - 1, y, z).getType() == Material.PORTAL)
int z = loc.getBlockZ(); {
x--;
if (user.getWorld().getBlockAt(x, y, z - 1).getType() == Material.PORTAL) }
{
z--; x = (int)(x * factor);
} z = (int)(z * factor);
if (user.getWorld().getBlockAt(x - 1, y, z).getType() == Material.PORTAL) loc = new Location(world, x + .5, y, z + .5);
{
x--; Block dest = world.getBlockAt(x, y, z);
} NetherPortal portal = NetherPortal.findPortal(dest);
if (portal == null)
x = (int)(x * factor); {
z = (int)(z * factor); if (world.getEnvironment() == World.Environment.NETHER || ess.getSettings().getGenerateExitPortals())
loc = new Location(world, x + .5, y, z + .5); {
portal = NetherPortal.createPortal(dest);
Block dest = world.getBlockAt(x, y, z); LOGGER.info(Util.format("userCreatedPortal", event.getPlayer().getName()));
NetherPortal portal = NetherPortal.findPortal(dest); user.sendMessage(Util.i18n("generatingPortal"));
if (portal == null) loc = portal.getSpawn();
{ }
if (world.getEnvironment() == World.Environment.NETHER || ess.getSettings().getGenerateExitPortals()) }
{ else
portal = NetherPortal.createPortal(dest); {
LOGGER.info(Util.format("userCreatedPortal", event.getPlayer().getName())); LOGGER.info(Util.format("userUsedPortal", event.getPlayer().getName()));
user.sendMessage(Util.i18n("generatingPortal")); user.sendMessage(Util.i18n("usingPortal"));
loc = portal.getSpawn(); loc = portal.getSpawn();
} }
}
else event.setFrom(loc);
{ event.setTo(loc);
LOGGER.info(Util.format("userUsedPortal", event.getPlayer().getName())); try
user.sendMessage(Util.i18n("usingPortal")); {
loc = portal.getSpawn(); user.getTeleport().now(loc, new Trade("portal", ess));
} }
catch (Exception ex)
event.setFrom(loc); {
event.setTo(loc); user.sendMessage(ex.getMessage());
try }
{ user.setJustPortaled(true);
user.getTeleport().now(loc, new Trade("portal", ess)); user.sendMessage(Util.i18n("teleportingPortal"));
}
catch (Exception ex) event.setCancelled(true);
{ return;
user.sendMessage(ex.getMessage()); }
}
user.setJustPortaled(true); user.setJustPortaled(false);
user.sendMessage(Util.i18n("teleportingPortal")); }
event.setCancelled(true); @Override
return; public void onPlayerQuit(final PlayerQuitEvent event)
} {
final User user = ess.getUser(event.getPlayer());
user.setJustPortaled(false); if (ess.getSettings().removeGodOnDisconnect() && user.isGodModeEnabled())
} {
user.toggleGodModeEnabled();
@Override }
public void onPlayerQuit(final PlayerQuitEvent event) if (user.getSavedInventory() != null)
{ {
final User user = ess.getUser(event.getPlayer()); user.getInventory().setContents(user.getSavedInventory());
if (ess.getSettings().removeGodOnDisconnect() && user.isGodModeEnabled()) user.setSavedInventory(null);
{ }
user.toggleGodModeEnabled(); user.updateActivity(false);
} user.dispose();
if (user.getSavedInventory() != null) if (!ess.getSettings().getReclaimSetting())
{ {
user.getInventory().setContents(user.getSavedInventory()); return;
user.setSavedInventory(null); }
} final Thread thread = new Thread(new Runnable()
user.updateActivity(false); {
user.dispose(); public void run()
if (!ess.getSettings().getReclaimSetting()) {
{ try
return; {
} Thread.sleep(1000);
final Thread thread = new Thread(new Runnable() Runtime rt = Runtime.getRuntime();
{ double mem = rt.freeMemory();
public void run() rt.runFinalization();
{ rt.gc();
try mem = rt.freeMemory() - mem;
{ mem /= 1024 * 1024;
Thread.sleep(1000); LOGGER.log(Level.INFO, Util.format("freedMemory", mem));
Runtime rt = Runtime.getRuntime(); }
double mem = rt.freeMemory(); catch (InterruptedException ex)
rt.runFinalization(); {
rt.gc(); return;
mem = rt.freeMemory() - mem; }
mem /= 1024 * 1024; }
LOGGER.log(Level.INFO, Util.format("freedMemory", mem)); });
} thread.setPriority(Thread.MIN_PRIORITY);
catch (InterruptedException ex) thread.start();
{ }
return;
} @Override
} public void onPlayerJoin(final PlayerJoinEvent event)
}); {
thread.setPriority(Thread.MIN_PRIORITY); ess.getBackup().onPlayerJoin();
thread.start(); final User user = ess.getUser(event.getPlayer());
}
if (ess.getSettings().changeDisplayName())
@Override {
public void onPlayerJoin(final PlayerJoinEvent event) user.setDisplayName(user.getNick());
{ }
ess.getBackup().onPlayerJoin(); user.updateActivity(false);
final User user = ess.getUser(event.getPlayer()); if (user.isAuthorized("essentials.sleepingignored"))
{
if (ess.getSettings().changeDisplayName()) user.setSleepingIgnored(true);
{ }
user.setDisplayName(user.getNick());
} if (!ess.getSettings().isCommandDisabled("motd") && user.isAuthorized("essentials.motd"))
user.updateActivity(false); {
if (user.isAuthorized("essentials.sleepingignored")) for (String m : ess.getMotd(user, null))
{ {
user.setSleepingIgnored(true); if (m == null)
} {
continue;
if (!ess.getSettings().isCommandDisabled("motd") && user.isAuthorized("essentials.motd")) }
{ user.sendMessage(m);
for (String m : ess.getMotd(user, null)) }
{ }
if (m == null)
{ if (!ess.getSettings().isCommandDisabled("mail") && user.isAuthorized("essentials.mail"))
continue; {
} final List<String> mail = user.getMails();
user.sendMessage(m); if (mail.isEmpty())
} {
} user.sendMessage(Util.i18n("noNewMail"));
}
if (!ess.getSettings().isCommandDisabled("mail") && user.isAuthorized("essentials.mail")) else
{ {
final List<String> mail = user.getMails(); user.sendMessage(Util.format("youHaveNewMail", mail.size()));
if (mail.isEmpty()) }
{ }
user.sendMessage(Util.i18n("noNewMail")); }
}
else @Override
{ public void onPlayerLogin(final PlayerLoginEvent event)
user.sendMessage(Util.format("youHaveNewMail", mail.size())); {
} if (event.getResult() != Result.ALLOWED && event.getResult() != Result.KICK_FULL && event.getResult() != Result.KICK_BANNED)
} {
} LOGGER.log(Level.INFO, "Disconnecting user " + event.getPlayer().toString() + " due to " + event.getResult().toString());
return;
@Override }
public void onPlayerLogin(final PlayerLoginEvent event) User user = ess.getUser(event.getPlayer());
{ user.setNPC(false);
if (event.getResult() != Result.ALLOWED && event.getResult() != Result.KICK_FULL && event.getResult() != Result.KICK_BANNED)
{ final long currentTime = System.currentTimeMillis();
LOGGER.log(Level.INFO, "Disconnecting user " + event.getPlayer().toString() + " due to " + event.getResult().toString()); boolean banExpired = user.checkBanTimeout(currentTime);
return; user.checkMuteTimeout(currentTime);
} user.checkJailTimeout(currentTime);
User user = ess.getUser(event.getPlayer());
user.setNPC(false); if (banExpired == false && (user.isBanned() || event.getResult() == Result.KICK_BANNED))
{
final long currentTime = System.currentTimeMillis(); final String banReason = user.getBanReason();
boolean banExpired = user.checkBanTimeout(currentTime); event.disallow(Result.KICK_BANNED, banReason != null && !banReason.isEmpty() && !banReason.equalsIgnoreCase("ban") ? banReason : Util.i18n("defaultBanReason"));
user.checkMuteTimeout(currentTime); return;
user.checkJailTimeout(currentTime); }
if (banExpired == false && (user.isBanned() || event.getResult() == Result.KICK_BANNED)) if (server.getOnlinePlayers().length >= server.getMaxPlayers() && !user.isAuthorized("essentials.joinfullserver"))
{ {
final String banReason = user.getBanReason(); event.disallow(Result.KICK_FULL, Util.i18n("serverFull"));
event.disallow(Result.KICK_BANNED, banReason != null && !banReason.isEmpty() && !banReason.equalsIgnoreCase("ban") ? banReason : Util.i18n("defaultBanReason")); return;
return; }
} event.allow();
if (server.getOnlinePlayers().length >= server.getMaxPlayers() && !user.isAuthorized("essentials.joinfullserver")) user.setLastLogin(System.currentTimeMillis());
{ updateCompass(user);
event.disallow(Result.KICK_FULL, Util.i18n("serverFull")); }
return;
} private void updateCompass(final User user)
event.allow(); {
try
user.setLastLogin(System.currentTimeMillis()); {
updateCompass(user); user.setCompassTarget(user.getHome(user.getLocation()));
} }
catch (Exception ex)
private void updateCompass(final User user) {
{ }
try }
{
user.setCompassTarget(user.getHome(user.getLocation())); @Override
} public void onPlayerTeleport(PlayerTeleportEvent event)
catch (Exception ex) {
{ if (event.isCancelled())
} {
} return;
}
@Override final User user = ess.getUser(event.getPlayer());
public void onPlayerTeleport(PlayerTeleportEvent event) if (ess.getSettings().changeDisplayName())
{ {
if (event.isCancelled()) user.setDisplayName(user.getNick());
{ }
return; updateCompass(user);
} }
final User user = ess.getUser(event.getPlayer());
if (ess.getSettings().changeDisplayName()) @Override
{ public void onPlayerInteract(final PlayerInteractEvent event)
user.setDisplayName(user.getNick()); {
} if (event.isCancelled())
updateCompass(user); {
} return;
}
@Override if (event.getAction() != Action.RIGHT_CLICK_BLOCK)
public void onPlayerInteract(final PlayerInteractEvent event) {
{ return;
if (event.isCancelled()) }
{
return; if (ess.getSettings().getBedSetsHome() && event.getClickedBlock().getType() == Material.BED_BLOCK)
} {
if (event.getAction() != Action.RIGHT_CLICK_BLOCK) try
{ {
return; final User user = ess.getUser(event.getPlayer());
} user.setHome();
user.sendMessage(Util.i18n("homeSetToBed"));
if (ess.getSettings().getBedSetsHome() && event.getClickedBlock().getType() == Material.BED_BLOCK) }
{ catch (Throwable ex)
try {
{ }
final User user = ess.getUser(event.getPlayer()); }
user.setHome(); }
user.sendMessage(Util.i18n("homeSetToBed"));
} @Override
catch (Throwable ex) public void onPlayerEggThrow(final PlayerEggThrowEvent event)
{ {
} final User user = ess.getUser(event.getPlayer());
} final ItemStack is = new ItemStack(Material.EGG, 1);
} if (user.hasUnlimited(is))
{
@Override user.getInventory().addItem(is);
public void onPlayerEggThrow(final PlayerEggThrowEvent event) user.updateInventory();
{ }
final User user = ess.getUser(event.getPlayer()); }
final ItemStack is = new ItemStack(Material.EGG, 1);
if (user.hasUnlimited(is)) @Override
{ public void onPlayerBucketEmpty(final PlayerBucketEmptyEvent event)
user.getInventory().addItem(is); {
user.updateInventory(); final User user = ess.getUser(event.getPlayer());
} if (user.hasUnlimited(new ItemStack(event.getBucket())))
} {
event.getItemStack().setType(event.getBucket());
@Override ess.scheduleSyncDelayedTask(new Runnable()
public void onPlayerBucketEmpty(final PlayerBucketEmptyEvent event) {
{ public void run()
final User user = ess.getUser(event.getPlayer()); {
if (user.hasUnlimited(new ItemStack(event.getBucket()))) user.updateInventory();
{ }
event.getItemStack().setType(event.getBucket()); });
ess.scheduleSyncDelayedTask(new Runnable() }
{ }
public void run()
{ @Override
user.updateInventory(); public void onPlayerAnimation(final PlayerAnimationEvent event)
} {
}); usePowertools(event);
} }
}
private void usePowertools(final PlayerAnimationEvent event)
@Override {
public void onPlayerAnimation(final PlayerAnimationEvent event) if (event.getAnimationType() != PlayerAnimationType.ARM_SWING)
{ {
usePowertools(event); return;
} }
final User user = ess.getUser(event.getPlayer());
private void usePowertools(final PlayerAnimationEvent event) final ItemStack is = user.getItemInHand();
{ if (is == null || is.getType() == Material.AIR || !user.arePowerToolsEnabled())
if (event.getAnimationType() != PlayerAnimationType.ARM_SWING) {
{ return;
return; }
} final List<String> commandList = user.getPowertool(is);
final User user = ess.getUser(event.getPlayer()); if (commandList == null || commandList.isEmpty())
final ItemStack is = user.getItemInHand(); {
if (is == null || is.getType() == Material.AIR || !user.arePowerToolsEnabled()) return;
{ }
return;
} // We need to loop through each command and execute
final List<String> commandList = user.getPowertool(is); for (String command : commandList)
if (commandList == null || commandList.isEmpty()) {
{ if (command.matches(".*\\{player\\}.*"))
return; {
} //user.sendMessage("Click a player to use this command");
continue;
// We need to loop through each command and execute }
for (String command : commandList) else if (command.startsWith("c:"))
{ {
if (command.matches(".*\\{player\\}.*")) for (Player p : server.getOnlinePlayers())
{ {
//user.sendMessage("Click a player to use this command"); p.sendMessage(user.getDisplayName() + ":" + command.substring(2));
continue; }
} }
else if (command.startsWith("c:")) else
{ {
for (Player p : server.getOnlinePlayers()) user.getServer().dispatchCommand(event.getPlayer(), command);
{ }
p.sendMessage(user.getDisplayName() + ":" + command.substring(2)); }
} }
}
else @Override
{ public void onPlayerCommandPreprocess(final PlayerCommandPreprocessEvent event)
user.getServer().dispatchCommand(event.getPlayer(), command); {
} if (event.isCancelled())
} {
} return;
}
@Override final User user = ess.getUser(event.getPlayer());
public void onPlayerCommandPreprocess(final PlayerCommandPreprocessEvent event) final String cmd = event.getMessage().toLowerCase().split(" ")[0].replace("/", "").toLowerCase();
{ final List<String> commands = Arrays.asList("msg", "r", "mail", "m", "t", "emsg", "tell", "er", "reply", "ereply", "email");
if (event.isCancelled()) if (commands.contains(cmd))
{ {
return; for (Player player : ess.getServer().getOnlinePlayers())
} {
final User user = ess.getUser(event.getPlayer()); User spyer = ess.getUser(player);
final String cmd = event.getMessage().toLowerCase().split(" ")[0].replace("/", "").toLowerCase(); if (spyer.isSocialSpyEnabled() && !user.equals(spyer))
final List<String> commands = Arrays.asList("msg", "r", "mail", "m", "t", "emsg", "tell", "er", "reply", "ereply", "email"); {
if (commands.contains(cmd)) player.sendMessage(user.getDisplayName() + " : " + event.getMessage());
{ }
for (Player player : ess.getServer().getOnlinePlayers()) }
{ }
User spyer = ess.getUser(player); if (!cmd.equalsIgnoreCase("afk"))
if (spyer.isSocialSpyEnabled() && !user.equals(spyer)) {
{ user.updateActivity(true);
player.sendMessage(user.getDisplayName() + " : " + event.getMessage()); }
} }
} }
}
if (!cmd.equalsIgnoreCase("afk"))
{
user.updateActivity(true);
}
}
}