Updated for CB 602

git-svn-id: https://svn.java.net/svn/essentials~svn/trunk@1043 e251c2fe-e539-e718-e476-b85c1f46cddb
This commit is contained in:
Zenexer 2011-03-30 17:58:00 +00:00
parent 5125181967
commit 17b3c793d9
10 changed files with 247 additions and 55 deletions

View file

@ -1,6 +1,5 @@
package com.earth2me.essentials; package com.earth2me.essentials;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.logging.Logger; import java.util.logging.Logger;
import net.minecraft.server.InventoryPlayer; import net.minecraft.server.InventoryPlayer;
@ -128,36 +127,52 @@ public class EssentialsPlayerListener extends PlayerListener
} }
@Override @Override
public void onPlayerQuit(PlayerEvent event) public void onPlayerQuit(PlayerQuitEvent event)
{ {
if (!Essentials.getSettings().getReclaimSetting())
{
return;
}
User.get(event.getPlayer()).dispose(); User.get(event.getPlayer()).dispose();
Thread thread = new Thread(new Runnable()
{
@SuppressWarnings("LoggerStringConcat")
public void run()
{
try
{
Thread.sleep(1000);
Runtime rt = Runtime.getRuntime();
double mem = rt.freeMemory();
rt.runFinalization();
rt.gc();
mem = rt.freeMemory() - mem;
mem /= 1024 * 1024;
logger.info("Freed " + mem + " MB.");
}
catch (InterruptedException ex)
{
return;
}
}
});
thread.setPriority(Thread.MIN_PRIORITY);
thread.start();
} }
@Override @Override
public void onPlayerLogin(PlayerLoginEvent event) public void onPlayerJoin(PlayerJoinEvent event)
{ {
Essentials.getStatic().backup.onPlayerJoin();
User user = User.get(event.getPlayer()); User user = User.get(event.getPlayer());
if (event.getResult() != Result.ALLOWED)
return;
if (user.isBanned()) //we do not know the ip address on playerlogin so we need to do this here.
{
event.disallow(Result.KICK_BANNED, "The Ban Hammer has spoken!");
return;
}
if (user.isIpBanned()) if (user.isIpBanned())
{ {
user.kickPlayer("The Ban Hammer has spoken!"); user.kickPlayer("The Ban Hammer has spoken!");
return; return;
} }
if (server.getOnlinePlayers().length >= server.getMaxPlayers() && !user.isOp())
{
event.disallow(Result.KICK_FULL, "Server is full");
return;
}
user.setDisplayName(user.getNick()); user.setDisplayName(user.getNick());
if (!Essentials.getSettings().isCommandDisabled("motd") && user.isAuthorized("essentials.motd")) if (!Essentials.getSettings().isCommandDisabled("motd") && user.isAuthorized("essentials.motd"))
@ -175,6 +190,26 @@ public class EssentialsPlayerListener extends PlayerListener
if (mail.isEmpty()) user.sendMessage("§7You have no new mail."); if (mail.isEmpty()) user.sendMessage("§7You have no new mail.");
else user.sendMessage("§cYou have " + mail.size() + " messages!§f Type §7/mail read§f to view your mail."); else user.sendMessage("§cYou have " + mail.size() + " messages!§f Type §7/mail read§f to view your mail.");
} }
}
@Override
public void onPlayerLogin(PlayerLoginEvent event)
{
User user = User.get(event.getPlayer());
if (event.getResult() != Result.ALLOWED)
return;
if (user.isBanned())
{
event.disallow(Result.KICK_BANNED, "The Ban Hammer has spoken!");
return;
}
if (server.getOnlinePlayers().length >= server.getMaxPlayers() && !user.isOp())
{
event.disallow(Result.KICK_FULL, "Server is full");
return;
}
updateCompass(user); updateCompass(user);
} }
@ -192,7 +227,7 @@ public class EssentialsPlayerListener extends PlayerListener
} }
@Override @Override
public void onPlayerTeleport(PlayerMoveEvent event) public void onPlayerTeleport(PlayerTeleportEvent event)
{ {
User user = User.get(event.getPlayer()); User user = User.get(event.getPlayer());
if (user.currentJail == null || user.currentJail.isEmpty()) if (user.currentJail == null || user.currentJail.isEmpty())

View file

@ -7,24 +7,25 @@ import java.util.Map;
import java.util.logging.Logger; import java.util.logging.Logger;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.World; import org.bukkit.World;
import org.bukkit.entity.Player;
import org.bukkit.event.block.BlockBreakEvent; import org.bukkit.event.block.BlockBreakEvent;
import org.bukkit.event.block.BlockDamageEvent; import org.bukkit.event.block.BlockDamageEvent;
import org.bukkit.event.block.BlockInteractEvent;
import org.bukkit.event.block.BlockListener; import org.bukkit.event.block.BlockListener;
import org.bukkit.event.block.BlockPlaceEvent; import org.bukkit.event.block.BlockPlaceEvent;
import org.bukkit.event.player.PlayerListener;
public class Jail extends BlockListener implements IConf {
public class Jail extends BlockListener implements IConf
{
private static final Logger logger = Logger.getLogger("Minecraft"); private static final Logger logger = Logger.getLogger("Minecraft");
private EssentialsConf config; private EssentialsConf config;
public Jail(File dataFolder) { public Jail(File dataFolder)
{
config = new EssentialsConf(new File(dataFolder, "jail.yml")); config = new EssentialsConf(new File(dataFolder, "jail.yml"));
config.load(); config.load();
} }
public void setJail(Location loc, String jailName) throws Exception { public void setJail(Location loc, String jailName) throws Exception
{
Map<String, Object> map = new HashMap<String, Object>(); Map<String, Object> map = new HashMap<String, Object>();
map.put("world", loc.getWorld().getName()); map.put("world", loc.getWorld().getName());
map.put("x", loc.getX()); map.put("x", loc.getX());
@ -36,8 +37,10 @@ public class Jail extends BlockListener implements IConf {
config.save(); config.save();
} }
public Location getJail(String jailName) throws Exception { public Location getJail(String jailName) throws Exception
if (config.getProperty(jailName.toLowerCase()) == null) { {
if (config.getProperty(jailName.toLowerCase()) == null)
{
throw new Exception("That jail does not exist"); throw new Exception("That jail does not exist");
} }
@ -46,10 +49,12 @@ public class Jail extends BlockListener implements IConf {
double x = config.getDouble(jailName + ".x", 0); // wh.spawnX double x = config.getDouble(jailName + ".x", 0); // wh.spawnX
double y = config.getDouble(jailName + ".y", 0); // wh.spawnY double y = config.getDouble(jailName + ".y", 0); // wh.spawnY
double z = config.getDouble(jailName + ".z", 0); // wh.spawnZ double z = config.getDouble(jailName + ".z", 0); // wh.spawnZ
float yaw = (float) config.getDouble(jailName + ".yaw", 0); float yaw = (float)config.getDouble(jailName + ".yaw", 0);
float pitch = (float) config.getDouble(jailName + ".pitch", 0); float pitch = (float)config.getDouble(jailName + ".pitch", 0);
for (World w : Essentials.getStatic().getServer().getWorlds()) { for (World w : Essentials.getStatic().getServer().getWorlds())
if (w.getName().equalsIgnoreCase(world)) { {
if (w.getName().equalsIgnoreCase(world))
{
jWorld = w; jWorld = w;
break; break;
} }
@ -58,29 +63,34 @@ public class Jail extends BlockListener implements IConf {
return new Location(jWorld, x, y, z, yaw, pitch); return new Location(jWorld, x, y, z, yaw, pitch);
} }
public void sendToJail(User user, String jail) throws Exception { public void sendToJail(User user, String jail) throws Exception
{
user.teleportTo(getJail(jail)); user.teleportTo(getJail(jail));
user.currentJail = jail; user.currentJail = jail;
} }
public void delJail(String jail) throws Exception { public void delJail(String jail) throws Exception
{
config.removeProperty(jail.toLowerCase()); config.removeProperty(jail.toLowerCase());
config.save(); config.save();
} }
public List<String> getJails() throws Exception { public List<String> getJails() throws Exception
{
return config.getKeys(null); return config.getKeys(null);
} }
public void reloadConfig() { public void reloadConfig()
{
config.load(); config.load();
} }
@Override @Override
public void onBlockBreak(BlockBreakEvent event) public void onBlockBreak(BlockBreakEvent event)
{ {
User user = User.get(event.getPlayer()); User user = User.get(event.getPlayer());
if (user.isJailed()) { if (user.isJailed())
{
event.setCancelled(true); event.setCancelled(true);
} }
} }
@ -89,18 +99,19 @@ public class Jail extends BlockListener implements IConf {
public void onBlockPlace(BlockPlaceEvent event) public void onBlockPlace(BlockPlaceEvent event)
{ {
User user = User.get(event.getPlayer()); User user = User.get(event.getPlayer());
if (user.isJailed()) { if (user.isJailed())
{
event.setCancelled(true); event.setCancelled(true);
} }
} }
@Override @Override
public void onBlockDamage(BlockDamageEvent event) { public void onBlockDamage(BlockDamageEvent event)
{
User user = User.get(event.getPlayer()); User user = User.get(event.getPlayer());
if (user.isJailed()) { if (user.isJailed())
{
event.setCancelled(true); event.setCancelled(true);
} }
} }
} }

View file

@ -283,4 +283,69 @@ public class OfflinePlayer implements Player
public void sendRawMessage(String string) { public void sendRawMessage(String string) {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
public Location getCompassTarget()
{
throw new UnsupportedOperationException("Not supported yet.");
}
public int getMaximumNoDamageTicks()
{
throw new UnsupportedOperationException("Not supported yet.");
}
public void setMaximumNoDamageTicks(int i)
{
throw new UnsupportedOperationException("Not supported yet.");
}
public int getLastDamage()
{
throw new UnsupportedOperationException("Not supported yet.");
}
public void setLastDamage(int i)
{
throw new UnsupportedOperationException("Not supported yet.");
}
public int getNoDamageTicks()
{
throw new UnsupportedOperationException("Not supported yet.");
}
public void setNoDamageTicks(int i)
{
throw new UnsupportedOperationException("Not supported yet.");
}
public boolean teleport(Location lctn)
{
throw new UnsupportedOperationException("Not supported yet.");
}
public boolean teleport(Entity entity)
{
throw new UnsupportedOperationException("Not supported yet.");
}
public Entity getPassenger()
{
throw new UnsupportedOperationException("Not supported yet.");
}
public boolean setPassenger(Entity entity)
{
throw new UnsupportedOperationException("Not supported yet.");
}
public boolean isEmpty()
{
throw new UnsupportedOperationException("Not supported yet.");
}
public boolean eject()
{
throw new UnsupportedOperationException("Not supported yet.");
}
} }

View file

@ -154,15 +154,15 @@ public class PlayerWrapper implements Player
} }
@Override @Override
public void teleportTo(Location lctn) public boolean teleport(Location lctn)
{ {
base.teleportTo(lctn); return base.teleport(lctn);
} }
@Override @Override
public void teleportTo(Entity entity) public boolean teleport(Entity entity)
{ {
base.teleportTo(entity); return base.teleport(entity);
} }
@Override @Override
@ -329,7 +329,88 @@ public class PlayerWrapper implements Player
return base.getEyeLocation(); return base.getEyeLocation();
} }
@Override
public void sendRawMessage(String string) { public void sendRawMessage(String string) {
base.sendRawMessage(string); base.sendRawMessage(string);
} }
@Override
public Location getCompassTarget()
{
return base.getCompassTarget();
}
@Override
public int getMaximumNoDamageTicks()
{
return base.getMaximumNoDamageTicks();
}
@Override
public void setMaximumNoDamageTicks(int i)
{
base.setMaximumNoDamageTicks(i);
}
@Override
public int getLastDamage()
{
return base.getLastDamage();
}
@Override
public void setLastDamage(int i)
{
base.setLastDamage(i);
}
@Override
public int getNoDamageTicks()
{
return base.getNoDamageTicks();
}
@Override
public void setNoDamageTicks(int i)
{
base.setNoDamageTicks(i);
}
@Override
public Entity getPassenger()
{
return base.getPassenger();
}
@Override
public boolean setPassenger(Entity entity)
{
return base.setPassenger(entity);
}
@Override
public boolean isEmpty()
{
return base.isEmpty();
}
@Override
public boolean eject()
{
return base.eject();
}
@Override
@Deprecated
public void teleportTo(Location lctn)
{
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
@Deprecated
public void teleportTo(Entity entity)
{
throw new UnsupportedOperationException("Not supported yet.");
}
} }

View file

@ -151,6 +151,11 @@ public class Settings implements IConf
return ChatColor.getByCode(Integer.parseInt(colorName, 16)); return ChatColor.getByCode(Integer.parseInt(colorName, 16));
} }
public boolean getReclaimSetting()
{
return config.getBoolean("reclaim-onlogout", true);
}
public String getNetherName() public String getNetherName()
{ {
return config.getString("nether.folder", "nether"); return config.getString("nether.folder", "nether");

View file

@ -3,7 +3,7 @@ package com.earth2me.essentials.chat;
import com.earth2me.essentials.Essentials; import com.earth2me.essentials.Essentials;
import org.bukkit.Server; import org.bukkit.Server;
import org.bukkit.event.player.PlayerChatEvent; import org.bukkit.event.player.PlayerChatEvent;
import org.bukkit.event.player.PlayerEvent; import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerListener; import org.bukkit.event.player.PlayerListener;
import org.bukkit.event.player.PlayerRespawnEvent; import org.bukkit.event.player.PlayerRespawnEvent;
@ -19,7 +19,7 @@ public class EssentialsChatPlayerListener extends PlayerListener
@Override @Override
@SuppressWarnings("CallToThreadDumpStack") @SuppressWarnings("CallToThreadDumpStack")
public void onPlayerJoin(PlayerEvent event) public void onPlayerJoin(PlayerJoinEvent event)
{ {
try try
{ {

View file

@ -2,18 +2,14 @@ package com.earth2me.essentials.protect;
import com.earth2me.essentials.Essentials; import com.earth2me.essentials.Essentials;
import com.earth2me.essentials.User; import com.earth2me.essentials.User;
import org.bukkit.ChatColor;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.block.Block; import org.bukkit.block.Block;
import org.bukkit.entity.Player;
import org.bukkit.event.block.BlockBreakEvent; import org.bukkit.event.block.BlockBreakEvent;
import org.bukkit.event.block.BlockBurnEvent; import org.bukkit.event.block.BlockBurnEvent;
import org.bukkit.event.block.BlockFromToEvent; import org.bukkit.event.block.BlockFromToEvent;
import org.bukkit.event.block.BlockIgniteEvent; import org.bukkit.event.block.BlockIgniteEvent;
import org.bukkit.event.block.BlockInteractEvent;
import org.bukkit.event.block.BlockListener; import org.bukkit.event.block.BlockListener;
import org.bukkit.event.block.BlockPlaceEvent; import org.bukkit.event.block.BlockPlaceEvent;
import org.bukkit.event.block.BlockRightClickEvent;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
@ -128,7 +124,7 @@ public class EssentialsProtectBlockListener extends BlockListener
} }
@Override @Override
public void onBlockFlow(BlockFromToEvent event) public void onBlockFromTo(BlockFromToEvent event)
{ {
if (event.isCancelled()) return; if (event.isCancelled()) return;
Block block = event.getBlock(); Block block = event.getBlock();

View file

@ -5,7 +5,6 @@ import com.earth2me.essentials.User;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.block.Block; import org.bukkit.block.Block;
import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.event.player.PlayerItemEvent;
import org.bukkit.event.player.PlayerListener; import org.bukkit.event.player.PlayerListener;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;

View file

@ -4,7 +4,7 @@ import com.earth2me.essentials.Essentials;
import com.earth2me.essentials.User; import com.earth2me.essentials.User;
import java.util.logging.Level; import java.util.logging.Level;
import java.util.logging.Logger; import java.util.logging.Logger;
import org.bukkit.event.player.PlayerEvent; import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerListener; import org.bukkit.event.player.PlayerListener;
import org.bukkit.event.player.PlayerRespawnEvent; import org.bukkit.event.player.PlayerRespawnEvent;
@ -32,7 +32,7 @@ public class EssentialsSpawnPlayerListener extends PlayerListener
} }
@Override @Override
public void onPlayerJoin(PlayerEvent event) public void onPlayerJoin(PlayerJoinEvent event)
{ {
Essentials.loadClasses(); Essentials.loadClasses();
User user = User.get(event.getPlayer()); User user = User.get(event.getPlayer());

Binary file not shown.