From fd2ed8cc431d49124878c5478d2b3dbcd5a42890 Mon Sep 17 00:00:00 2001 From: snowleo Date: Sun, 12 Jun 2011 02:47:50 +0200 Subject: [PATCH 01/59] Fix for Craftbukkit Bug 912 --- .../spawn/EssentialsSpawnPlayerListener.java | 31 +++++++++++++------ 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/EssentialsSpawn/src/com/earth2me/essentials/spawn/EssentialsSpawnPlayerListener.java b/EssentialsSpawn/src/com/earth2me/essentials/spawn/EssentialsSpawnPlayerListener.java index e1e804e58..96915bd89 100644 --- a/EssentialsSpawn/src/com/earth2me/essentials/spawn/EssentialsSpawnPlayerListener.java +++ b/EssentialsSpawn/src/com/earth2me/essentials/spawn/EssentialsSpawnPlayerListener.java @@ -15,7 +15,7 @@ import org.bukkit.event.player.PlayerRespawnEvent; public class EssentialsSpawnPlayerListener extends PlayerListener { @Override - public void onPlayerRespawn(PlayerRespawnEvent event) + public void onPlayerRespawn(final PlayerRespawnEvent event) { final IEssentials ess = Essentials.getStatic(); final User user = ess.getUser(event.getPlayer()); @@ -25,7 +25,8 @@ public class EssentialsSpawnPlayerListener extends PlayerListener if (ess.getSettings().getRespawnAtHome()) { Location home = user.getHome(user.getLocation()); - if (home == null) { + if (home == null) + { throw new Exception(); } event.setRespawnLocation(home); @@ -36,28 +37,38 @@ public class EssentialsSpawnPlayerListener extends PlayerListener { } Location spawn = ess.getSpawn().getSpawn(user.getGroup()); - if (spawn == null) { + if (spawn == null) + { return; } event.setRespawnLocation(spawn); } @Override - public void onPlayerJoin(PlayerJoinEvent event) + public void onPlayerJoin(final PlayerJoinEvent event) { final IEssentials ess = Essentials.getStatic(); final User user = ess.getUser(event.getPlayer()); - + if (!user.isNew()) { return; } user.setNew(false); - try { - user.getTeleport().now(ess.getSpawn().getSpawn(ess.getSettings().getNewbieSpawn())); - } catch (Exception ex) { - Logger.getLogger("Minecraft").log(Level.WARNING, Util.i18n("teleportNewPlayerError"), ex); - } + ess.scheduleSyncDelayedTask(new Runnable() + { + public void run() + { + try + { + user.getTeleport().now(ess.getSpawn().getSpawn(ess.getSettings().getNewbieSpawn())); + } + catch (Exception ex) + { + Logger.getLogger("Minecraft").log(Level.WARNING, Util.i18n("teleportNewPlayerError"), ex); + } + } + }); if (ess.getSettings().getAnnounceNewPlayers()) { From 5fefce5972947d303c79d57306d261b25b2db7a2 Mon Sep 17 00:00:00 2001 From: snowleo Date: Sat, 25 Jun 2011 15:34:33 +0200 Subject: [PATCH 02/59] Remove the restriction of EssEcoApi to not use iConomy or BOSE --- Essentials/src/com/earth2me/essentials/api/Economy.java | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/api/Economy.java b/Essentials/src/com/earth2me/essentials/api/Economy.java index 768168a24..bf071b733 100644 --- a/Essentials/src/com/earth2me/essentials/api/Economy.java +++ b/Essentials/src/com/earth2me/essentials/api/Economy.java @@ -3,7 +3,6 @@ package com.earth2me.essentials.api; import com.earth2me.essentials.Essentials; import com.earth2me.essentials.EssentialsConf; import com.earth2me.essentials.User; -import com.earth2me.essentials.UserData; import com.earth2me.essentials.Util; import java.io.File; import java.util.logging.Level; @@ -79,8 +78,7 @@ public final class Economy if (user == null) { throw new UserDoesNotExistException(name); } - // Use UserData to avoid calls to iConomy and Register - return ((UserData)user).getMoney(); + return user.getMoney(); } /** @@ -100,8 +98,7 @@ public final class Economy { throw new NoLoanPermittedException(); } - // Use UserData to avoid calls to iConomy and Register - ((UserData)user).setMoney(balance); + user.setMoney(balance); } /** From 1161c4e64705102ff885554351967c1059f194d3 Mon Sep 17 00:00:00 2001 From: snowleo Date: Sun, 26 Jun 2011 01:43:19 +0200 Subject: [PATCH 03/59] SEVERE error messages for other plugins, that try to manually enable Essentials, FakePermissions or GroupManager --- Essentials/src/com/earth2me/essentials/Essentials.java | 4 ++++ .../src/com/nijikokun/bukkit/Permissions/Permissions.java | 5 +++++ .../src/org/anjocaido/groupmanager/GroupManager.java | 4 ++++ 3 files changed, 13 insertions(+) diff --git a/Essentials/src/com/earth2me/essentials/Essentials.java b/Essentials/src/com/earth2me/essentials/Essentials.java index ae886aab7..99063111a 100644 --- a/Essentials/src/com/earth2me/essentials/Essentials.java +++ b/Essentials/src/com/earth2me/essentials/Essentials.java @@ -96,6 +96,10 @@ public class Essentials extends JavaPlugin implements IEssentials public void onEnable() { + if (!Thread.currentThread().getStackTrace()[5].getMethodName().equals("loadPlugin")) { + logger.log(Level.SEVERE, "Another plugin is trying to enable Essentials manually. Don't do this! It's probably " + + Thread.currentThread().getStackTrace()[5].getClassName()); + } if (enableErrorLogging) { logger.addHandler(errorHandler); diff --git a/EssentialsGroupBridge/src/com/nijikokun/bukkit/Permissions/Permissions.java b/EssentialsGroupBridge/src/com/nijikokun/bukkit/Permissions/Permissions.java index cf0d09a35..153747ad1 100644 --- a/EssentialsGroupBridge/src/com/nijikokun/bukkit/Permissions/Permissions.java +++ b/EssentialsGroupBridge/src/com/nijikokun/bukkit/Permissions/Permissions.java @@ -3,6 +3,7 @@ package com.nijikokun.bukkit.Permissions; import com.nijiko.Misc; import com.nijiko.configuration.DefaultConfiguration; import com.nijiko.permissions.PermissionHandler; +import java.util.logging.Level; import java.util.logging.Logger; import org.anjocaido.groupmanager.GroupManager; import org.anjocaido.groupmanager.permissions.NijikoPermissionsProxy; @@ -55,6 +56,10 @@ public class Permissions extends JavaPlugin { @Override public void onEnable() { + if (!Thread.currentThread().getStackTrace()[5].getMethodName().equals("loadPlugin")) { + Logger.getLogger("Minecraft").log(Level.SEVERE, "Another plugin is trying to enable Essentials manually. Don't do this! It's probably " + + Thread.currentThread().getStackTrace()[5].getClassName()); + } Server = this.getServer(); PluginDescriptionFile pdfFile = this.getDescription(); diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java index 1594755de..64db276d2 100644 --- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java +++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java @@ -63,6 +63,10 @@ public class GroupManager extends JavaPlugin { @Override public void onEnable() { + if (!Thread.currentThread().getStackTrace()[5].getMethodName().equals("loadPlugin")) { + logger.log(Level.SEVERE, "Another plugin is trying to enable Essentials manually. Don't do this! It's probably " + + Thread.currentThread().getStackTrace()[5].getClassName()); + } GroupManager.logger.setUseParentHandlers(false); GMLoggerHandler ch = new GMLoggerHandler(); GroupManager.logger.addHandler(ch); From 3f698c79558257eb8cd961230bd39144c8f2155d Mon Sep 17 00:00:00 2001 From: snowleo Date: Sun, 26 Jun 2011 01:43:59 +0200 Subject: [PATCH 04/59] Fix for Register inside Essentials --- .../essentials/register/payment/Methods.java | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/register/payment/Methods.java b/Essentials/src/com/earth2me/essentials/register/payment/Methods.java index 927d4de4c..e5ba9a991 100644 --- a/Essentials/src/com/earth2me/essentials/register/payment/Methods.java +++ b/Essentials/src/com/earth2me/essentials/register/payment/Methods.java @@ -68,14 +68,6 @@ public class Methods { if(method.getDescription().getName().equals(name)) plugin = method; else plugin = manager.getPlugin(name); if(plugin == null) continue; - if(!plugin.isEnabled()) { - this.self = true; - Logger.getLogger("Minecraft").log(Level.SEVERE, name + " Plugin was found, but not enabled before Essentials. Read the Essentials thread for help."); - //manager.enablePlugin(plugin); - } - - if(plugin == null) continue; - Method current = this.createMethod(plugin); if(current == null) continue; @@ -99,9 +91,7 @@ public class Methods { break; } - if(this.preferred.isEmpty()) this.Method = attached; - - if(count == 0) { + if(count != 0) { if(this.preferred.equalsIgnoreCase(attached.getName())) this.Method = attached; } else { From 019fad82e44964f6583ea4781b8c49e90390e60b Mon Sep 17 00:00:00 2001 From: snowleo Date: Sun, 26 Jun 2011 02:00:57 +0200 Subject: [PATCH 05/59] Copy&Paste is bad. --- .../src/com/nijikokun/bukkit/Permissions/Permissions.java | 2 +- .../src/org/anjocaido/groupmanager/GroupManager.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/EssentialsGroupBridge/src/com/nijikokun/bukkit/Permissions/Permissions.java b/EssentialsGroupBridge/src/com/nijikokun/bukkit/Permissions/Permissions.java index 153747ad1..c689c8749 100644 --- a/EssentialsGroupBridge/src/com/nijikokun/bukkit/Permissions/Permissions.java +++ b/EssentialsGroupBridge/src/com/nijikokun/bukkit/Permissions/Permissions.java @@ -57,7 +57,7 @@ public class Permissions extends JavaPlugin { @Override public void onEnable() { if (!Thread.currentThread().getStackTrace()[5].getMethodName().equals("loadPlugin")) { - Logger.getLogger("Minecraft").log(Level.SEVERE, "Another plugin is trying to enable Essentials manually. Don't do this! It's probably " + Logger.getLogger("Minecraft").log(Level.SEVERE, "Another plugin is trying to enable Permissions manually. Don't do this! It's probably " + Thread.currentThread().getStackTrace()[5].getClassName()); } Server = this.getServer(); diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java index 64db276d2..e99e76ba7 100644 --- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java +++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java @@ -64,7 +64,7 @@ public class GroupManager extends JavaPlugin { @Override public void onEnable() { if (!Thread.currentThread().getStackTrace()[5].getMethodName().equals("loadPlugin")) { - logger.log(Level.SEVERE, "Another plugin is trying to enable Essentials manually. Don't do this! It's probably " + logger.log(Level.SEVERE, "Another plugin is trying to enable GroupManager manually. Don't do this! It's probably " + Thread.currentThread().getStackTrace()[5].getClassName()); } GroupManager.logger.setUseParentHandlers(false); From a30ce5cbd37a0ffa024de35d9ebbe107a5ff21b0 Mon Sep 17 00:00:00 2001 From: snowleo Date: Mon, 27 Jun 2011 11:53:57 +0200 Subject: [PATCH 06/59] Another fix to /spawnmob Merged for release --- .../src/com/earth2me/essentials/Mob.java | 105 ++++++------------ .../essentials/commands/Commandspawnmob.java | 49 ++++---- 2 files changed, 56 insertions(+), 98 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/Mob.java b/Essentials/src/com/earth2me/essentials/Mob.java index 771d54abe..f5e1aea3d 100644 --- a/Essentials/src/com/earth2me/essentials/Mob.java +++ b/Essentials/src/com/earth2me/essentials/Mob.java @@ -1,75 +1,55 @@ package com.earth2me.essentials; -import java.lang.reflect.Constructor; import java.util.HashMap; import java.util.Map; import java.util.logging.Level; import java.util.logging.Logger; -import net.minecraft.server.Entity; -import net.minecraft.server.WorldServer; +import org.bukkit.Location; import org.bukkit.Server; -import org.bukkit.craftbukkit.entity.CraftEntity; -import org.bukkit.craftbukkit.CraftServer; +import org.bukkit.entity.CreatureType; +import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; public enum Mob { - CHICKEN("Chicken", Enemies.FRIENDLY), - COW("Cow", Enemies.FRIENDLY), - CREEPER("Creeper", Enemies.ENEMY), - GHAST("Ghast", Enemies.ENEMY), - GIANT("Giant", "GiantZombie", Enemies.ENEMY), - PIG("Pig", Enemies.FRIENDLY), - PIGZOMB("PigZombie", Enemies.NEUTRAL), - SHEEP("Sheep", Enemies.FRIENDLY, ""), - SKELETON("Skeleton", Enemies.ENEMY), - SLIME("Slime", Enemies.ENEMY), - SPIDER("Spider", Enemies.ENEMY), - SQUID("Squid", Enemies.FRIENDLY), - ZOMBIE("Zombie", Enemies.ENEMY), - MONSTER("Monster", Enemies.ENEMY), - WOLF("Wolf", Enemies.NEUTRAL); + CHICKEN("Chicken", Enemies.FRIENDLY, CreatureType.CHICKEN), + COW("Cow", Enemies.FRIENDLY, CreatureType.COW), + CREEPER("Creeper", Enemies.ENEMY, CreatureType.CREEPER), + GHAST("Ghast", Enemies.ENEMY, CreatureType.GHAST), + GIANT("Giant", Enemies.ENEMY, CreatureType.GIANT), + PIG("Pig", Enemies.FRIENDLY, CreatureType.PIG), + PIGZOMB("PigZombie", Enemies.NEUTRAL, CreatureType.PIG_ZOMBIE), + SHEEP("Sheep", Enemies.FRIENDLY, "", CreatureType.SHEEP), + SKELETON("Skeleton", Enemies.ENEMY, CreatureType.SKELETON), + SLIME("Slime", Enemies.ENEMY, CreatureType.SLIME), + SPIDER("Spider", Enemies.ENEMY, CreatureType.SPIDER), + SQUID("Squid", Enemies.FRIENDLY, CreatureType.SQUID), + ZOMBIE("Zombie", Enemies.ENEMY, CreatureType.ZOMBIE), + MONSTER("Monster", Enemies.ENEMY, CreatureType.MONSTER), + WOLF("Wolf", Enemies.NEUTRAL, CreatureType.WOLF); public static final Logger logger = Logger.getLogger("Minecraft"); - private Mob(String n, Enemies en, String s) + private Mob(String n, Enemies en, String s, CreatureType type) { - this.s = s; + this.suffix = s; this.name = n; - this.craftClass = n; - this.entityClass = n; this.type = en; + this.bukkitType = type; } - private Mob(String n, Enemies en) + private Mob(String n, Enemies en, CreatureType type) { this.name = n; - this.craftClass = n; - this.entityClass = n; this.type = en; + this.bukkitType = type; } - private Mob(String n, String ec, Enemies en) - { - this.name = n; - this.craftClass = n; - this.entityClass = ec; - this.type = en; - } - - private Mob(String n, String ec, String cc, Enemies en) - { - this.name = n; - this.entityClass = ec; - this.craftClass = cc; - this.type = en; - } - public String s = "s"; - public String name; - public Enemies type; - private String entityClass; - private String craftClass; + public String suffix = "s"; + final public String name; + final public Enemies type; + final private CreatureType bukkitType; private static final Map hashMap = new HashMap(); static @@ -80,24 +60,16 @@ public enum Mob } } - @SuppressWarnings( + public LivingEntity spawn(final Player player, final Server server, final Location loc) throws MobException { - "unchecked", "CallToThreadDumpStack" - }) - public CraftEntity spawn(Player player, Server server) throws MobException - { - try + + final LivingEntity entity = player.getWorld().spawnCreature(loc, this.bukkitType); + if (entity == null) { - WorldServer world = ((org.bukkit.craftbukkit.CraftWorld)player.getWorld()).getHandle(); - Constructor craft = (Constructor)ClassLoader.getSystemClassLoader().loadClass("org.bukkit.craftbukkit.entity.Craft" + craftClass).getConstructors()[0]; - Constructor entity = (Constructor)ClassLoader.getSystemClassLoader().loadClass("net.minecraft.server.Entity" + entityClass).getConstructors()[0]; - return craft.newInstance((CraftServer)server, entity.newInstance(world)); - } - catch (Exception ex) - { - logger.log(Level.WARNING, Util.i18n("unableToSpawnMob"), ex); - throw new MobException(ex); + logger.log(Level.WARNING, Util.i18n("unableToSpawnMob")); + throw new MobException(); } + return entity; } @@ -107,22 +79,17 @@ public enum Mob NEUTRAL("neutral"), ENEMY("enemy"); - private Enemies(String t) + private Enemies(final String t) { this.type = t; } - protected String type; + final protected String type; } public static class MobException extends Exception { private static final long serialVersionUID = 1L; - - private MobException(Exception ex) - { - super(ex); - } } public static Mob fromName(String n) diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandspawnmob.java b/Essentials/src/com/earth2me/essentials/commands/Commandspawnmob.java index 480e23aea..0f0b838b4 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandspawnmob.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandspawnmob.java @@ -3,8 +3,6 @@ package com.earth2me.essentials.commands; import net.minecraft.server.WorldServer; import org.bukkit.Location; import org.bukkit.Server; -import org.bukkit.craftbukkit.entity.CraftEntity; -import com.earth2me.essentials.Essentials; import com.earth2me.essentials.User; import com.earth2me.essentials.Mob; import com.earth2me.essentials.Mob.MobException; @@ -20,6 +18,7 @@ import org.bukkit.craftbukkit.entity.CraftCreeper; import org.bukkit.craftbukkit.entity.CraftSheep; import org.bukkit.craftbukkit.entity.CraftSlime; import org.bukkit.craftbukkit.entity.CraftWolf; +import org.bukkit.entity.Entity; public class Commandspawnmob extends EssentialsCommand @@ -62,9 +61,9 @@ public class Commandspawnmob extends EssentialsCommand } - CraftEntity spawnedMob = null; + Entity spawnedMob = null; Mob mob = null; - CraftEntity spawnedMount = null; + Entity spawnedMount = null; Mob mobMount = null; mob = Mob.fromName(mobType); @@ -74,16 +73,6 @@ public class Commandspawnmob extends EssentialsCommand return; } charge(user); - WorldServer world = ((CraftWorld)user.getWorld()).getHandle(); - try - { - spawnedMob = mob.spawn(user, server); - } - catch (MobException e) - { - user.sendMessage(Util.i18n("unableToSpawnMob")); - return; - } int[] ignore = { 8, 9 @@ -96,8 +85,16 @@ public class Commandspawnmob extends EssentialsCommand loc.setY(loc.getY() + 1); block = user.getWorld().getBlockAt(loc); } - spawnedMob.teleportTo(loc); - world.addEntity(spawnedMob.getHandle()); + + try + { + spawnedMob = mob.spawn(user, server, loc); + } + catch (MobException e) + { + user.sendMessage(Util.i18n("unableToSpawnMob")); + return; + } if (mountType != null) { @@ -109,16 +106,14 @@ public class Commandspawnmob extends EssentialsCommand } try { - spawnedMount = mobMount.spawn(user, server); + spawnedMount = mobMount.spawn(user, server, loc); } catch (MobException e) { user.sendMessage(Util.i18n("unableToSpawnMob")); return; } - spawnedMount.teleportTo(spawnedMob); - spawnedMount.getHandle().setPassengerOf(spawnedMob.getHandle()); - world.addEntity(spawnedMount.getHandle()); + spawnedMob.setPassenger(spawnedMount); } if (mobData != null) { @@ -142,23 +137,19 @@ public class Commandspawnmob extends EssentialsCommand { for (int i = 1; i < mobCount; i++) { - spawnedMob = mob.spawn(user, server); - spawnedMob.teleportTo(loc); - world.addEntity(spawnedMob.getHandle()); + spawnedMob = mob.spawn(user, server, loc); if (mobMount != null) { try { - spawnedMount = mobMount.spawn(user, server); + spawnedMount = mobMount.spawn(user, server, loc); } catch (MobException e) { user.sendMessage(Util.i18n("unableToSpawnMob")); return; } - spawnedMount.teleportTo(spawnedMob); - spawnedMount.getHandle().setPassengerOf(spawnedMob.getHandle()); - world.addEntity(spawnedMount.getHandle()); + spawnedMob.setPassenger(spawnedMount); } if (mobData != null) { @@ -169,7 +160,7 @@ public class Commandspawnmob extends EssentialsCommand changeMobData(mobMount.name, spawnedMount, mountData, user); } } - user.sendMessage(args[1] + " " + mob.name.toLowerCase() + mob.s + Util.i18n("spawned")); + user.sendMessage(args[1] + " " + mob.name.toLowerCase() + mob.suffix + Util.i18n("spawned")); } catch (MobException e1) { @@ -195,7 +186,7 @@ public class Commandspawnmob extends EssentialsCommand return s.toUpperCase().charAt(0) + s.toLowerCase().substring(1); } - private void changeMobData(String type, CraftEntity spawned, String data, User user) throws Exception + private void changeMobData(String type, Entity spawned, String data, User user) throws Exception { if ("Slime".equalsIgnoreCase(type)) { From 0e0b95afc6a1c3f7aa6c3e40558f31715cbcc9bf Mon Sep 17 00:00:00 2001 From: snowleo Date: Mon, 27 Jun 2011 11:57:03 +0200 Subject: [PATCH 07/59] Fix /spawner command The name had to be first letter uppercase, the rest lowercase --- .../com/earth2me/essentials/commands/Commandspawner.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandspawner.java b/Essentials/src/com/earth2me/essentials/commands/Commandspawner.java index f351019bc..df2f7f954 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandspawner.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandspawner.java @@ -6,6 +6,7 @@ import org.bukkit.Material; import org.bukkit.Server; import org.bukkit.block.Block; import org.bukkit.block.CreatureSpawner; +import org.bukkit.craftbukkit.block.CraftCreatureSpawner; import org.bukkit.entity.CreatureType; @@ -19,12 +20,12 @@ public class Commandspawner extends EssentialsCommand @Override protected void run(Server server, User user, String commandLabel, String[] args) throws Exception { - if (args.length < 1) + if (args.length < 1 || args[0].length() < 2) { throw new NotEnoughArgumentsException(); } - Block target = user.getTarget().getTargetBlock(); + final Block target = user.getTarget().getTargetBlock(); if (target.getType() != Material.MOB_SPAWNER) { throw new Exception(Util.i18n("mobSpawnTarget")); @@ -33,7 +34,8 @@ public class Commandspawner extends EssentialsCommand charge(user); try { - ((CreatureSpawner)target).setCreatureType(CreatureType.fromName(args[0])); + final String name = args[0].substring(0, 1).toUpperCase() + args[0].substring(1).toLowerCase(); + new CraftCreatureSpawner(target).setCreatureType(CreatureType.fromName(name)); } catch (Throwable ex) { From c75baa20641f343f0feb38dab717b456b9cf8f83 Mon Sep 17 00:00:00 2001 From: snowleo Date: Thu, 30 Jun 2011 18:43:23 +0200 Subject: [PATCH 08/59] CB #946 B #750 From 902a0c2c5654bd0259b568ba002b7a041e13ac86 Mon Sep 17 00:00:00 2001 From: snowleo Date: Thu, 30 Jun 2011 18:54:05 +0200 Subject: [PATCH 09/59] Renamed functions --- .../com/earth2me/essentials/commands/Commandspawnmob.java | 6 +++--- .../essentials/protect/EssentialsProtectEntityListener.java | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandspawnmob.java b/Essentials/src/com/earth2me/essentials/commands/Commandspawnmob.java index 0f0b838b4..36beaad5d 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandspawnmob.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandspawnmob.java @@ -213,11 +213,11 @@ public class Commandspawnmob extends EssentialsCommand if ("Wolf".equalsIgnoreCase(type) && data.equalsIgnoreCase("tamed")) { EntityWolf wolf = ((CraftWolf)spawned).getHandle(); - wolf.d(true); - wolf.a((PathEntity)null); + wolf.setTamed(true); + wolf.setPathEntity((PathEntity)null); wolf.setSitting(true); wolf.health = 20; - wolf.a(user.getName()); + wolf.setOwnerName(user.getName()); wolf.world.a(wolf, (byte)7); } if ("Wolf".equalsIgnoreCase(type) && data.equalsIgnoreCase("angry")) diff --git a/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectEntityListener.java b/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectEntityListener.java index 89afc7cff..9c421fe4b 100644 --- a/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectEntityListener.java +++ b/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectEntityListener.java @@ -217,7 +217,7 @@ public class EssentialsProtectEntityListener extends EntityListener } } - ((CraftServer)parent.getServer()).getHandle().a(loc.getX(), loc.getY(), loc.getZ(), 64.0D, ((CraftWorld)loc.getWorld()).getHandle().worldProvider.dimension, + ((CraftServer)parent.getServer()).getHandle().sendPacketNearby(loc.getX(), loc.getY(), loc.getZ(), 64.0D, ((CraftWorld)loc.getWorld()).getHandle().worldProvider.dimension, new Packet60Explosion(loc.getX(), loc.getY(), loc.getZ(), 3.0f, set)); event.setCancelled(true); return; From c13215baf0b822f4a409d8d344e5ad5aa9e41976 Mon Sep 17 00:00:00 2001 From: snowleo Date: Thu, 30 Jun 2011 19:16:50 +0200 Subject: [PATCH 10/59] Updated items.csv --- Essentials/src/items.csv | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/Essentials/src/items.csv b/Essentials/src/items.csv index 43a554f8b..6cb4946d3 100644 --- a/Essentials/src/items.csv +++ b/Essentials/src/items.csv @@ -447,6 +447,10 @@ detecttrack,28,0 detectrail,28,0 dtrack,28,0 drail,28,0 +pistonstickybase,29,0 +stickypiston,29,0 +stickyp,29,0 +psticky,29,0 spiderweb,30,0 sweb,30,0 web,30,0 @@ -462,6 +466,10 @@ deadshrub,32,0 shrubdead,32,0 dshrub,32,0 shrubd,32,0 +pistonbase,33,0 +piston,33,0 +pistonextension,34,0 +pistonext,34,0 whitecloth,35,0 whitewool,35,0 whitecotton,35,0 @@ -591,6 +599,9 @@ blackcotton,35,15 blacloth,35,15 blawool,35,15 blacotton,35,15 +pistonmovingpiece,36,0 +pistonmp,36,0 +ppusher,36,0 yellowflower,37,0 yflower,37,0 flower,37,0 @@ -1951,6 +1962,7 @@ diode,356,0 cookie,357,0 map,358,0 chart,358,0 +shears,359,0 goldmusicrecord,2256,0 goldmusicdisk,2256,0 goldmusiccd,2256,0 From 9b315a0fa7fa84c00c7c34337af2e0eadb512475 Mon Sep 17 00:00:00 2001 From: snowleo Date: Fri, 1 Jul 2011 10:52:59 +0200 Subject: [PATCH 11/59] More names for pistons (items.csv) Fix for /unlimited and pistons --- .../src/com/earth2me/essentials/EssentialsBlockListener.java | 2 ++ Essentials/src/items.csv | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/Essentials/src/com/earth2me/essentials/EssentialsBlockListener.java b/Essentials/src/com/earth2me/essentials/EssentialsBlockListener.java index 8069d8f83..7abe500f8 100644 --- a/Essentials/src/com/earth2me/essentials/EssentialsBlockListener.java +++ b/Essentials/src/com/earth2me/essentials/EssentialsBlockListener.java @@ -241,6 +241,8 @@ public class EssentialsBlockListener extends BlockListener case JACK_O_LANTERN: case WOOD_PLATE: case STONE_PLATE: + case PISTON_STICKY_BASE: + case PISTON_BASE: is.setDurability((short)0); break; } diff --git a/Essentials/src/items.csv b/Essentials/src/items.csv index 6cb4946d3..2a30bd806 100644 --- a/Essentials/src/items.csv +++ b/Essentials/src/items.csv @@ -451,6 +451,8 @@ pistonstickybase,29,0 stickypiston,29,0 stickyp,29,0 psticky,29,0 +spiston,29,0 +pistons,29,0 spiderweb,30,0 sweb,30,0 web,30,0 @@ -468,6 +470,7 @@ dshrub,32,0 shrubd,32,0 pistonbase,33,0 piston,33,0 +pistonblock,33,0 pistonextension,34,0 pistonext,34,0 whitecloth,35,0 @@ -601,7 +604,6 @@ blawool,35,15 blacotton,35,15 pistonmovingpiece,36,0 pistonmp,36,0 -ppusher,36,0 yellowflower,37,0 yflower,37,0 flower,37,0 From 8fc74bf13c5f20e70953b38f3040cbcbfc9bed67 Mon Sep 17 00:00:00 2001 From: snowleo Date: Sat, 2 Jul 2011 01:09:19 +0200 Subject: [PATCH 12/59] CB# 953 B# 754 From 4439c9d2ffa29ed331dd80781f36b06663b86529 Mon Sep 17 00:00:00 2001 From: snowleo Date: Sat, 2 Jul 2011 01:10:48 +0200 Subject: [PATCH 13/59] Update of bukkit version number in essentials class --- Essentials/src/com/earth2me/essentials/Essentials.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Essentials/src/com/earth2me/essentials/Essentials.java b/Essentials/src/com/earth2me/essentials/Essentials.java index 99063111a..40325ba97 100644 --- a/Essentials/src/com/earth2me/essentials/Essentials.java +++ b/Essentials/src/com/earth2me/essentials/Essentials.java @@ -43,7 +43,7 @@ import org.bukkit.plugin.java.*; public class Essentials extends JavaPlugin implements IEssentials { public static final String AUTHORS = "Zenexer, ementalo, Aelux, Brettflan, KimKandor, snowleo, ceulemans and Xeology"; - public static final int minBukkitBuildVersion = 860; + public static final int minBukkitBuildVersion = 953; private static final Logger logger = Logger.getLogger("Minecraft"); private Settings settings; private EssentialsPlayerListener playerListener; From 9e040af32b05ce3c6126796d175dfcaf223e76de Mon Sep 17 00:00:00 2001 From: snowleo Date: Sun, 5 Jun 2011 00:00:41 +0000 Subject: [PATCH 14/59] NPE fix for offline users in UserData git-svn-id: https://svn.java.net/svn/essentials~svn/trunk@1583 e251c2fe-e539-e718-e476-b85c1f46cddb --- Essentials/src/com/earth2me/essentials/UserData.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Essentials/src/com/earth2me/essentials/UserData.java b/Essentials/src/com/earth2me/essentials/UserData.java index e9f05b8bd..8261ba7a9 100644 --- a/Essentials/src/com/earth2me/essentials/UserData.java +++ b/Essentials/src/com/earth2me/essentials/UserData.java @@ -324,7 +324,7 @@ public abstract class UserData extends PlayerExtension implements IConf private ItemStack[] _getSavedInventory() { int size = config.getInt("inventory.size", 0); - if (size < 1 || size > getInventory().getSize()) + if (getInventory() != null && (size < 1 || size > getInventory().getSize())) { return null; } From 1a715bd40b7634aac606dcc6af3acb2e9933cb36 Mon Sep 17 00:00:00 2001 From: snowleo Date: Tue, 7 Jun 2011 22:18:57 +0200 Subject: [PATCH 15/59] Fix save inventory after logout for new players. --- Essentials/src/com/earth2me/essentials/UserData.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Essentials/src/com/earth2me/essentials/UserData.java b/Essentials/src/com/earth2me/essentials/UserData.java index 8261ba7a9..5aa98eeb4 100644 --- a/Essentials/src/com/earth2me/essentials/UserData.java +++ b/Essentials/src/com/earth2me/essentials/UserData.java @@ -324,7 +324,7 @@ public abstract class UserData extends PlayerExtension implements IConf private ItemStack[] _getSavedInventory() { int size = config.getInt("inventory.size", 0); - if (getInventory() != null && (size < 1 || size > getInventory().getSize())) + if (size < 1 || (getInventory() != null && size > getInventory().getSize())) { return null; } From e4df8c83142f2df24224a6d024553d36c43ed2ce Mon Sep 17 00:00:00 2001 From: snowleo Date: Sat, 16 Jul 2011 13:32:10 +0200 Subject: [PATCH 16/59] Fixing merge error --- .../src/com/earth2me/essentials/commands/Commandspawner.java | 4 ---- 1 file changed, 4 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandspawner.java b/Essentials/src/com/earth2me/essentials/commands/Commandspawner.java index 1acbf13b8..5e95bad65 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandspawner.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandspawner.java @@ -5,10 +5,6 @@ import com.earth2me.essentials.Util; import org.bukkit.Material; import org.bukkit.Server; import org.bukkit.block.Block; -<<<<<<< HEAD -import org.bukkit.block.CreatureSpawner; -======= ->>>>>>> master import org.bukkit.craftbukkit.block.CraftCreatureSpawner; import org.bukkit.entity.CreatureType; From 6feeaa75632f2218fb4ec94ec3bb2aaed3453dfe Mon Sep 17 00:00:00 2001 From: snowleo Date: Sat, 23 Jul 2011 20:05:44 +0200 Subject: [PATCH 17/59] Master and Release branch are now identical again. Removed warning for an older bukkit version. --- .../src/com/nijikokun/bukkit/Permissions/Permissions.java | 5 ----- .../src/org/anjocaido/groupmanager/GroupManager.java | 4 ---- 2 files changed, 9 deletions(-) diff --git a/EssentialsGroupBridge/src/com/nijikokun/bukkit/Permissions/Permissions.java b/EssentialsGroupBridge/src/com/nijikokun/bukkit/Permissions/Permissions.java index c689c8749..cf0d09a35 100644 --- a/EssentialsGroupBridge/src/com/nijikokun/bukkit/Permissions/Permissions.java +++ b/EssentialsGroupBridge/src/com/nijikokun/bukkit/Permissions/Permissions.java @@ -3,7 +3,6 @@ package com.nijikokun.bukkit.Permissions; import com.nijiko.Misc; import com.nijiko.configuration.DefaultConfiguration; import com.nijiko.permissions.PermissionHandler; -import java.util.logging.Level; import java.util.logging.Logger; import org.anjocaido.groupmanager.GroupManager; import org.anjocaido.groupmanager.permissions.NijikoPermissionsProxy; @@ -56,10 +55,6 @@ public class Permissions extends JavaPlugin { @Override public void onEnable() { - if (!Thread.currentThread().getStackTrace()[5].getMethodName().equals("loadPlugin")) { - Logger.getLogger("Minecraft").log(Level.SEVERE, "Another plugin is trying to enable Permissions manually. Don't do this! It's probably " - + Thread.currentThread().getStackTrace()[5].getClassName()); - } Server = this.getServer(); PluginDescriptionFile pdfFile = this.getDescription(); diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java index 95781f40b..890af718b 100644 --- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java +++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java @@ -65,10 +65,6 @@ public class GroupManager extends JavaPlugin { @Override public void onEnable() { - if (!Thread.currentThread().getStackTrace()[5].getMethodName().equals("loadPlugin")) { - logger.log(Level.SEVERE, "Another plugin is trying to enable GroupManager manually. Don't do this! It's probably " - + Thread.currentThread().getStackTrace()[5].getClassName()); - } GroupManager.logger.setUseParentHandlers(false); ch = new GMLoggerHandler(); GroupManager.logger.addHandler(ch); From eee2edacdce226de05d018c327fb6e87b6d73a61 Mon Sep 17 00:00:00 2001 From: KHobbits Date: Tue, 11 Oct 2011 22:51:30 +0100 Subject: [PATCH 18/59] Fixing typo in release build. --- .../src/org/anjocaido/groupmanager/GroupManager.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java index ac822908f..43a57c419 100644 --- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java +++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java @@ -1773,7 +1773,7 @@ public class GroupManager extends JavaPlugin { test.sendMessage(ChatColor.YELLOW + name +" was " + msg); } else if ((player != null) && ((player.hasPermission("groupmanager.notify.self")) || (player.hasPermission("groupmanager.notify.other")))) - player.sendMessage(ChatColor.YELLOW + "You we're " + msg); + player.sendMessage(ChatColor.YELLOW + "You were " + msg); } } From 9e1d263555451031ce9c00682808a80ef3d6b1d7 Mon Sep 17 00:00:00 2001 From: snowleo Date: Tue, 20 Dec 2011 11:57:22 +0100 Subject: [PATCH 19/59] Fix sending our player object to other plugins. --- .../src/com/earth2me/essentials/commands/Commandbreak.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandbreak.java b/Essentials/src/com/earth2me/essentials/commands/Commandbreak.java index a1db8e0b2..2691ad4f2 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandbreak.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandbreak.java @@ -31,7 +31,7 @@ public class Commandbreak extends EssentialsCommand { throw new Exception("You are not allowed to destroy bedrock."); //TODO: Translation } - final BlockBreakEvent event = new BlockBreakEvent(block, user); + final BlockBreakEvent event = new BlockBreakEvent(block, user.getBase()); server.getPluginManager().callEvent(event); if (event.isCancelled()) { From 3b25ae006ecf6f0af09b6812bdac3a819f222cd9 Mon Sep 17 00:00:00 2001 From: snowleo Date: Tue, 20 Dec 2011 12:20:12 +0100 Subject: [PATCH 20/59] Correctly match release and non release versions of bukkit. --- Essentials/src/com/earth2me/essentials/Essentials.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Essentials/src/com/earth2me/essentials/Essentials.java b/Essentials/src/com/earth2me/essentials/Essentials.java index 648a99ce3..29c46622e 100644 --- a/Essentials/src/com/earth2me/essentials/Essentials.java +++ b/Essentials/src/com/earth2me/essentials/Essentials.java @@ -124,7 +124,7 @@ public class Essentials extends JavaPlugin implements IEssentials LOGGER.log(Level.WARNING, _("versionMismatch", plugin.getDescription().getName())); } } - final Matcher versionMatch = Pattern.compile("git-Bukkit-([0-9]+).([0-9]+).([0-9]+)-R[0-9]+-b([0-9]+)jnks.*").matcher(getServer().getVersion()); + final Matcher versionMatch = Pattern.compile("git-Bukkit-([0-9]+).([0-9]+).([0-9]+)-R[0-9]+-(?:[0-9]+-g[0-9a-f]+-)?b([0-9]+)jnks.*").matcher(getServer().getVersion()); if (versionMatch.matches()) { final int versionNumber = Integer.parseInt(versionMatch.group(4)); From 4cb7ac8f03d592a6e6e55120fa9b36448ef86e2b Mon Sep 17 00:00:00 2001 From: snowleo Date: Tue, 20 Dec 2011 12:24:59 +0100 Subject: [PATCH 21/59] Only info not a warning if a file is missing --- .../essentials/storage/AbstractDelayedYamlFileReader.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/storage/AbstractDelayedYamlFileReader.java b/Essentials/src/com/earth2me/essentials/storage/AbstractDelayedYamlFileReader.java index 43bfc358d..d48b4a060 100644 --- a/Essentials/src/com/earth2me/essentials/storage/AbstractDelayedYamlFileReader.java +++ b/Essentials/src/com/earth2me/essentials/storage/AbstractDelayedYamlFileReader.java @@ -6,10 +6,8 @@ import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import java.util.logging.Level; -import java.util.logging.Logger; import org.bukkit.Bukkit; import org.bukkit.plugin.Plugin; -import org.yaml.snakeyaml.error.YAMLException; public abstract class AbstractDelayedYamlFileReader implements Runnable @@ -56,7 +54,7 @@ public abstract class AbstractDelayedYamlFileReader imp catch (FileNotFoundException ex) { onException(); - Bukkit.getLogger().log(Level.WARNING, "File not found: " + file.toString()); + Bukkit.getLogger().log(Level.INFO, "File not found: " + file.toString()); } catch (ObjectLoadException ex) { From 660bb8912e58494701bd80c8b19edba50c10b899 Mon Sep 17 00:00:00 2001 From: ElgarL Date: Tue, 14 Feb 2012 13:01:39 +0000 Subject: [PATCH 22/59] Depreciate PlayerTeleportEvent as it's all handled in PlayerChangedWorldEvent. --- EssentialsGroupManager/src/Changelog.txt | 3 ++- .../groupmanager/permissions/BukkitPermissions.java | 10 +--------- 2 files changed, 3 insertions(+), 10 deletions(-) diff --git a/EssentialsGroupManager/src/Changelog.txt b/EssentialsGroupManager/src/Changelog.txt index b79d56d07..fc64363d1 100644 --- a/EssentialsGroupManager/src/Changelog.txt +++ b/EssentialsGroupManager/src/Changelog.txt @@ -138,4 +138,5 @@ v 1.9: - Prevent getAllPlayersPermissions() processing a group more than once. Improves performance when using complex inheritance structures. - Fix world mirroring so it correctly creates data files and data sources for partially mirrored worlds. - Fixed world mirroring so it returns the correct data for the requested world. - - Change Service registration to register WorldsHolder instead of AnjoPermissionsHandler. This is the correct entry point for all data. \ No newline at end of file + - Change Service registration to register WorldsHolder instead of AnjoPermissionsHandler. This is the correct entry point for all data. + - Depreciate PlayerTeleportEvent as it's all handled in PlayerChangedWorldEvent. \ No newline at end of file diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/BukkitPermissions.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/BukkitPermissions.java index 1409f774d..053adc9ed 100644 --- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/BukkitPermissions.java +++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/BukkitPermissions.java @@ -40,7 +40,6 @@ import org.bukkit.event.player.PlayerKickEvent; import org.bukkit.event.player.PlayerPortalEvent; import org.bukkit.event.player.PlayerQuitEvent; import org.bukkit.event.player.PlayerRespawnEvent; -import org.bukkit.event.player.PlayerTeleportEvent; import org.bukkit.event.server.PluginDisableEvent; import org.bukkit.event.server.PluginEnableEvent; import org.bukkit.permissions.Permission; @@ -361,7 +360,7 @@ public class BukkitPermissions { } @EventHandler(priority = EventPriority.LOWEST) - public void onPlayerChangeWorld(PlayerChangedWorldEvent event) { // will portal into another world + public void onPlayerChangeWorld(PlayerChangedWorldEvent event) { // has changed worlds updatePermissions(event.getPlayer(), event.getPlayer().getWorld().getName()); } @@ -377,13 +376,6 @@ public class BukkitPermissions { updatePermissions(event.getPlayer(), event.getRespawnLocation().getWorld().getName()); } - @EventHandler(priority = EventPriority.LOWEST) - public void onPlayerTeleport(PlayerTeleportEvent event) { // can be teleported into another world - if ((event.getTo() != null) && (event.getPlayer() != null) && (!event.getFrom().getWorld().equals(event.getTo().getWorld()))) { // only if world actually changed - updatePermissions(event.getPlayer(), event.getTo().getWorld().getName()); - } - } - @EventHandler(priority = EventPriority.LOWEST) public void onPlayerQuit(PlayerQuitEvent event) { if (!GroupManager.isLoaded()) From 341e5b0599bde1bf7b5f5f761d82c54f6329d7e9 Mon Sep 17 00:00:00 2001 From: ElgarL Date: Wed, 15 Feb 2012 06:15:31 +0000 Subject: [PATCH 23/59] Depreciate PlayerTeleportEvent, PlayerRespawnEvent and PlayerPortalEvent as it's all handled in PlayerChangedWorldEvent. This also means we no longer update permissions before we change worlds. --- EssentialsGroupManager/src/Changelog.txt | 3 ++- .../permissions/BukkitPermissions.java | 20 ++++++------------- 2 files changed, 8 insertions(+), 15 deletions(-) diff --git a/EssentialsGroupManager/src/Changelog.txt b/EssentialsGroupManager/src/Changelog.txt index fc64363d1..4cfc241c4 100644 --- a/EssentialsGroupManager/src/Changelog.txt +++ b/EssentialsGroupManager/src/Changelog.txt @@ -139,4 +139,5 @@ v 1.9: - Fix world mirroring so it correctly creates data files and data sources for partially mirrored worlds. - Fixed world mirroring so it returns the correct data for the requested world. - Change Service registration to register WorldsHolder instead of AnjoPermissionsHandler. This is the correct entry point for all data. - - Depreciate PlayerTeleportEvent as it's all handled in PlayerChangedWorldEvent. \ No newline at end of file + - Depreciate PlayerTeleportEvent, PlayerRespawnEvent and PlayerPortalEvent as it's all handled in PlayerChangedWorldEvent. + This also means we no longer update permissions before we change worlds. \ No newline at end of file diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/BukkitPermissions.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/BukkitPermissions.java index 053adc9ed..ba4a22f12 100644 --- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/BukkitPermissions.java +++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/BukkitPermissions.java @@ -37,9 +37,7 @@ import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerChangedWorldEvent; import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerKickEvent; -import org.bukkit.event.player.PlayerPortalEvent; import org.bukkit.event.player.PlayerQuitEvent; -import org.bukkit.event.player.PlayerRespawnEvent; import org.bukkit.event.server.PluginDisableEvent; import org.bukkit.event.server.PluginEnableEvent; import org.bukkit.permissions.Permission; @@ -345,6 +343,12 @@ public class BukkitPermissions { this.updatePermissions(player, null); } + /** + * Player events tracked to cause Superperms updates + * + * @author Steve + * + */ protected class PlayerEvents implements Listener { @EventHandler(priority = EventPriority.LOWEST) @@ -364,18 +368,6 @@ public class BukkitPermissions { updatePermissions(event.getPlayer(), event.getPlayer().getWorld().getName()); } - @EventHandler(priority = EventPriority.LOWEST) - public void onPlayerPortal(PlayerPortalEvent event) { // will portal into another world - if ((event.getTo() != null) && (!event.getFrom().getWorld().equals(event.getTo().getWorld()))) { // only if world actually changed - updatePermissions(event.getPlayer(), event.getTo().getWorld().getName()); - } - } - - @EventHandler(priority = EventPriority.LOWEST) - public void onPlayerRespawn(PlayerRespawnEvent event) { // can be respawned in another world - updatePermissions(event.getPlayer(), event.getRespawnLocation().getWorld().getName()); - } - @EventHandler(priority = EventPriority.LOWEST) public void onPlayerQuit(PlayerQuitEvent event) { if (!GroupManager.isLoaded()) From c8079169f149895621f72e28916fbcd1bfefde46 Mon Sep 17 00:00:00 2001 From: ElgarL Date: Wed, 15 Feb 2012 06:16:33 +0000 Subject: [PATCH 24/59] comment name change --- .../anjocaido/groupmanager/permissions/BukkitPermissions.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/BukkitPermissions.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/BukkitPermissions.java index ba4a22f12..0b6148900 100644 --- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/BukkitPermissions.java +++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/BukkitPermissions.java @@ -346,7 +346,7 @@ public class BukkitPermissions { /** * Player events tracked to cause Superperms updates * - * @author Steve + * @author ElgarL * */ protected class PlayerEvents implements Listener { From d336b79cf293d7a3253b7ef273cbcf47774e25e5 Mon Sep 17 00:00:00 2001 From: KHobbits Date: Thu, 16 Feb 2012 16:57:50 +0000 Subject: [PATCH 25/59] Fixing being charged twice for /back. --- Essentials/src/com/earth2me/essentials/commands/Commandback.java | 1 + 1 file changed, 1 insertion(+) diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandback.java b/Essentials/src/com/earth2me/essentials/commands/Commandback.java index 67698598a..2ad39ceea 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandback.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandback.java @@ -20,5 +20,6 @@ public class Commandback extends EssentialsCommand charge.isAffordableFor(user); user.sendMessage(_("backUsageMsg")); user.getTeleport().back(charge); + throw new NoChargeException(); } } From bccd39a62385561d74a5de3613e42a8a8ed4c56f Mon Sep 17 00:00:00 2001 From: KHobbits Date: Thu, 16 Feb 2012 23:44:13 +0000 Subject: [PATCH 26/59] Don't try to use old bPerms API if it is not available. --- .../essentials/perm/PermissionsHandler.java | 32 ++++++++++++------- .../essentials/perm/SuperpermsHandler.java | 2 +- 2 files changed, 22 insertions(+), 12 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/perm/PermissionsHandler.java b/Essentials/src/com/earth2me/essentials/perm/PermissionsHandler.java index aa786934e..70a9e582c 100644 --- a/Essentials/src/com/earth2me/essentials/perm/PermissionsHandler.java +++ b/Essentials/src/com/earth2me/essentials/perm/PermissionsHandler.java @@ -1,5 +1,6 @@ package com.earth2me.essentials.perm; +import com.earth2me.essentials.Util; import java.util.Collections; import java.util.List; import java.util.logging.Level; @@ -111,17 +112,6 @@ public class PermissionsHandler implements IPermissionsHandler return; } - final Plugin bPermPlugin = pluginManager.getPlugin("bPermissions"); - if (bPermPlugin != null && bPermPlugin.isEnabled()) - { - if (!(handler instanceof BPermissionsHandler)) - { - LOGGER.log(Level.INFO, "Essentials: Using bPermissions based permissions."); - handler = new BPermissionsHandler(); - } - return; - } - final Plugin GMplugin = pluginManager.getPlugin("GroupManager"); if (GMplugin != null && GMplugin.isEnabled()) { @@ -155,6 +145,26 @@ public class PermissionsHandler implements IPermissionsHandler return; } + final Plugin bPermPlugin = pluginManager.getPlugin("bPermissions"); + if (bPermPlugin != null && bPermPlugin.isEnabled()) + { + final String bVer = bPermPlugin.getDescription().getVersion().replace(".", ""); + if (Util.isInt(bVer) && Integer.parseInt(bVer) < 284) + { + if (!(handler instanceof BPermissionsHandler)) + { + LOGGER.log(Level.INFO, "Essentials: Using bPermissions based permissions."); + handler = new BPermissionsHandler(); + } + return; + } + if (!(handler instanceof SuperpermsHandler)) + { + LOGGER.log(Level.INFO, "Essentials: bPermissions api broken, switching to superperms based permissions."); + handler = new SuperpermsHandler(); + } + return; + } final Plugin permPlugin = pluginManager.getPlugin("Permissions"); if (permPlugin != null && permPlugin.isEnabled()) { diff --git a/Essentials/src/com/earth2me/essentials/perm/SuperpermsHandler.java b/Essentials/src/com/earth2me/essentials/perm/SuperpermsHandler.java index 70a118bcf..2e767cb72 100644 --- a/Essentials/src/com/earth2me/essentials/perm/SuperpermsHandler.java +++ b/Essentials/src/com/earth2me/essentials/perm/SuperpermsHandler.java @@ -27,7 +27,7 @@ public class SuperpermsHandler implements IPermissionsHandler @Override public boolean inGroup(final Player base, final String group) { - return false; + return hasPermission(base, "group." + group); } @Override From b70ac290332cdf94798c1ec02e29accfbbe41f25 Mon Sep 17 00:00:00 2001 From: ElgarL Date: Sat, 18 Feb 2012 09:05:28 +0000 Subject: [PATCH 27/59] A command of '/manload' with no world arguments now performs a full reload of GM. --- EssentialsGroupManager/src/Changelog.txt | 3 +- .../anjocaido/groupmanager/GroupManager.java | 54 ++++++++----------- 2 files changed, 23 insertions(+), 34 deletions(-) diff --git a/EssentialsGroupManager/src/Changelog.txt b/EssentialsGroupManager/src/Changelog.txt index 4cfc241c4..31d40413f 100644 --- a/EssentialsGroupManager/src/Changelog.txt +++ b/EssentialsGroupManager/src/Changelog.txt @@ -140,4 +140,5 @@ v 1.9: - Fixed world mirroring so it returns the correct data for the requested world. - Change Service registration to register WorldsHolder instead of AnjoPermissionsHandler. This is the correct entry point for all data. - Depreciate PlayerTeleportEvent, PlayerRespawnEvent and PlayerPortalEvent as it's all handled in PlayerChangedWorldEvent. - This also means we no longer update permissions before we change worlds. \ No newline at end of file + This also means we no longer update permissions before we change worlds. + - A command of '/manload' with no world arguments now performs a full reload of GM. \ No newline at end of file diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java index b87d1de8c..d8d151200 100644 --- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java +++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java @@ -25,7 +25,10 @@ import java.util.concurrent.TimeUnit; import java.util.logging.Level; import java.util.logging.Logger; import org.anjocaido.groupmanager.dataholder.worlds.WorldsHolder; +import org.anjocaido.groupmanager.events.GMSystemEvent; import org.anjocaido.groupmanager.events.GMWorldListener; +import org.anjocaido.groupmanager.events.GroupManagerEventHandler; +import org.anjocaido.groupmanager.events.GMGroupEvent.Action; import org.anjocaido.groupmanager.utils.GMLoggerHandler; import org.anjocaido.groupmanager.utils.PermissionCheckResult; import org.anjocaido.groupmanager.utils.Tasks; @@ -1492,7 +1495,9 @@ public class GroupManager extends JavaPlugin { return true; case manload: - // THIS CASE DONT NEED SENDER + /** + * Attempt to reload a specific world + */ if (args.length > 0) { auxString = ""; for (int i = 0; i < args.length; i++) { @@ -1502,51 +1507,34 @@ public class GroupManager extends JavaPlugin { } } - isLoaded = false; // Disable Bukkit Perms update + isLoaded = false; // Disable Bukkit Perms update and event triggers globalGroups.load(); worldsHolder.loadWorld(auxString); - sender.sendMessage("The request to world '" + auxString + "' was sent."); + sender.sendMessage("The request to reload world '" + auxString + "' was attempted."); isLoaded = true; BukkitPermissions.updateAllPlayers(); - return true; - } - // VALIDANDO ESTADO DO SENDER - if (dataHolder == null || permissionHandler == null) { - if (!setDefaultWorldHandler(sender)) - return true; - } - // WORKING - config.load(); - globalGroups.load(); - worldsHolder.mirrorSetUp(); - - isLoaded = false; - - if (args.length > 0) { - auxString = ""; - for (int i = 0; i < args.length; i++) { - auxString += args[i]; - if ((i + 1) < args.length) { - auxString += " "; - } - } - worldsHolder.loadWorld(auxString); - sender.sendMessage("The request to world '" + auxString + "' was sent."); } else { - worldsHolder.reloadAll(); - sender.sendMessage(ChatColor.YELLOW + " All worlds were reloaded."); + + /** + * Reload all settings and data as no world was specified. + */ + onDisable(); + onEnable(); } - - isLoaded = true; - - BukkitPermissions.updateAllPlayers(); + + /** + * Fire an event as none will have been triggered in the reload. + */ + if (GroupManager.isLoaded()) + GroupManagerEventHandler.callEvent(GMSystemEvent.Action.RELOADED); return true; + case listgroups: // VALIDANDO ESTADO DO SENDER if (dataHolder == null || permissionHandler == null) { From d0c89f4e9f4df6756707031ba397c7e8185f9c42 Mon Sep 17 00:00:00 2001 From: KHobbits Date: Sat, 18 Feb 2012 21:09:18 +0000 Subject: [PATCH 28/59] Adding full keyword support for newb join message. Also adding {ADDRESS} and {USERNAME} as new keywords. --- .../com/earth2me/essentials/ISettings.java | 19 +++++----- .../src/com/earth2me/essentials/Settings.java | 32 ++++++++--------- .../textreader/KeywordReplacer.java | 8 ++++- .../textreader/SimpleTextInput.java | 35 +++++++++++++++++++ .../textreader/SimpleTextPager.java | 31 ++++++++++++++++ Essentials/src/info.txt | 3 ++ .../spawn/EssentialsSpawnPlayerListener.java | 7 +++- 7 files changed, 105 insertions(+), 30 deletions(-) create mode 100644 Essentials/src/com/earth2me/essentials/textreader/SimpleTextInput.java create mode 100644 Essentials/src/com/earth2me/essentials/textreader/SimpleTextPager.java diff --git a/Essentials/src/com/earth2me/essentials/ISettings.java b/Essentials/src/com/earth2me/essentials/ISettings.java index 560eb6f79..c29cc5b1a 100644 --- a/Essentials/src/com/earth2me/essentials/ISettings.java +++ b/Essentials/src/com/earth2me/essentials/ISettings.java @@ -2,6 +2,7 @@ package com.earth2me.essentials; import com.earth2me.essentials.commands.IEssentialsCommand; import com.earth2me.essentials.signs.EssentialsSign; +import com.earth2me.essentials.textreader.IText; import java.text.MessageFormat; import java.util.List; import java.util.Map; @@ -14,9 +15,7 @@ public interface ISettings extends IConf { boolean areSignsDisabled(); - String format(String format, IUser user); - - String getAnnounceNewPlayerFormat(IUser user); + IText getAnnounceNewPlayerFormat(); boolean getAnnounceNewPlayers(); @@ -35,7 +34,7 @@ public interface ISettings extends IConf String getCurrencySymbol(); int getOversizedStackSize(); - + int getDefaultStackSize(); double getHealCooldown(); @@ -101,7 +100,7 @@ public interface ISettings extends IConf boolean isTradeInStacks(int id); List itemSpawnBlacklist(); - + List enabledSigns(); boolean permissionBasedItemSpawn(); @@ -143,18 +142,18 @@ public interface ISettings extends IConf public void setDebug(boolean debug); Set getNoGodWorlds(); - + boolean getUpdateBedAtDaytime(); - + boolean getRepairEnchanted(); - + boolean getIsWorldTeleportPermissions(); - + boolean registerBackInListener(); boolean getDisableItemPickupWhileAfk(); EventPriority getRespawnPriority(); - + long getTpaAcceptCancellation(); } diff --git a/Essentials/src/com/earth2me/essentials/Settings.java b/Essentials/src/com/earth2me/essentials/Settings.java index 6b81753b6..3307945f2 100644 --- a/Essentials/src/com/earth2me/essentials/Settings.java +++ b/Essentials/src/com/earth2me/essentials/Settings.java @@ -4,6 +4,10 @@ import static com.earth2me.essentials.I18n._; import com.earth2me.essentials.commands.IEssentialsCommand; import com.earth2me.essentials.signs.EssentialsSign; import com.earth2me.essentials.signs.Signs; +import com.earth2me.essentials.textreader.IText; +import com.earth2me.essentials.textreader.KeywordReplacer; +import com.earth2me.essentials.textreader.SimpleTextInput; +import com.earth2me.essentials.textreader.SimpleTextPager; import java.io.File; import java.text.MessageFormat; import java.util.*; @@ -324,15 +328,9 @@ public class Settings implements ISettings } @Override - public String getAnnounceNewPlayerFormat(IUser user) + public IText getAnnounceNewPlayerFormat() { - return format(config.getString("newbies.announce-format", "&dWelcome {DISPLAYNAME} to the server!"), user); - } - - @Override - public String format(String format, IUser user) - { - return format.replace('&', '§').replace("§§", "&").replace("{PLAYER}", user.getDisplayName()).replace("{DISPLAYNAME}", user.getDisplayName()).replace("{GROUP}", user.getGroup()).replace("{USERNAME}", user.getName()).replace("{ADDRESS}", user.getAddress().toString()); + return new SimpleTextInput(config.getString("newbies.announce-format", "&dWelcome {DISPLAYNAME} to the server!")); } @Override @@ -362,19 +360,19 @@ public class Settings implements ISettings itemSpawnBl = getItemSpawnBlacklist(); chatFormats.clear(); } - private List itemSpawnBl = new ArrayList(); - + @Override public List itemSpawnBlacklist() { return itemSpawnBl; } - + private List getItemSpawnBlacklist() { final List epItemSpwn = new ArrayList(); - if (ess.getItemDb() == null) { + if (ess.getItemDb() == null) + { logger.log(Level.FINE, "Aborting ItemSpawnBL read, itemDB not yet loaded."); return epItemSpwn; } @@ -384,7 +382,7 @@ public class Settings implements ISettings if (itemName.isEmpty()) { continue; - } + } try { final ItemStack iStack = ess.getItemDb().get(itemName); @@ -397,19 +395,18 @@ public class Settings implements ISettings } return epItemSpwn; } - private List enabledSigns = new ArrayList(); - + @Override public List enabledSigns() { return enabledSigns; } - + private List getEnabledSigns() { List newSigns = new ArrayList(); - + for (String signName : config.getStringList("enabledSigns", null)) { signName = signName.trim().toUpperCase(Locale.ENGLISH); @@ -604,7 +601,6 @@ public class Settings implements ISettings { return config.getBoolean("death-messages", true); } - private Set noGodWorlds = new HashSet(); @Override diff --git a/Essentials/src/com/earth2me/essentials/textreader/KeywordReplacer.java b/Essentials/src/com/earth2me/essentials/textreader/KeywordReplacer.java index a7aab67ba..4c4e3364b 100644 --- a/Essentials/src/com/earth2me/essentials/textreader/KeywordReplacer.java +++ b/Essentials/src/com/earth2me/essentials/textreader/KeywordReplacer.java @@ -33,12 +33,14 @@ public class KeywordReplacer implements IText String displayName, ipAddress, balance, mails, world; String worlds, online, unique, playerlist, date, time; String worldTime12, worldTime24, worldDate, plugins; - String version; + String userName, address, version; if (sender instanceof Player) { final User user = ess.getUser(sender); displayName = user.getDisplayName(); + userName = user.getName(); ipAddress = user.getAddress().getAddress().toString(); + address = user.getAddress().toString(); balance = Double.toString(user.getMoney()); mails = Integer.toString(user.getMails().size()); world = user.getLocation().getWorld().getName(); @@ -107,8 +109,12 @@ public class KeywordReplacer implements IText for (int i = 0; i < input.getLines().size(); i++) { String line = input.getLines().get(i); + line = line.replace("{PLAYER}", displayName); + line = line.replace("{DISPLAYNAME}", displayName); + line = line.replace("{USERNAME}", displayName); line = line.replace("{IP}", ipAddress); + line = line.replace("{ADDRESS}", ipAddress); line = line.replace("{BALANCE}", balance); line = line.replace("{MAILS}", mails); line = line.replace("{WORLD}", world); diff --git a/Essentials/src/com/earth2me/essentials/textreader/SimpleTextInput.java b/Essentials/src/com/earth2me/essentials/textreader/SimpleTextInput.java new file mode 100644 index 000000000..a9f9e1480 --- /dev/null +++ b/Essentials/src/com/earth2me/essentials/textreader/SimpleTextInput.java @@ -0,0 +1,35 @@ +package com.earth2me.essentials.textreader; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Map; + + +public class SimpleTextInput implements IText +{ + private final transient List lines = new ArrayList(); + + public SimpleTextInput (final String input) { + lines.add(input); + } + + @Override + public List getLines() + { + return lines; + } + + @Override + public List getChapters() + { + return Collections.emptyList(); + } + + @Override + public Map getBookmarks() + { + return Collections.emptyMap(); + } + +} diff --git a/Essentials/src/com/earth2me/essentials/textreader/SimpleTextPager.java b/Essentials/src/com/earth2me/essentials/textreader/SimpleTextPager.java new file mode 100644 index 000000000..ea1b787d5 --- /dev/null +++ b/Essentials/src/com/earth2me/essentials/textreader/SimpleTextPager.java @@ -0,0 +1,31 @@ +package com.earth2me.essentials.textreader; + +import org.bukkit.command.CommandSender; + + +public class SimpleTextPager +{ + private final transient IText text; + + public SimpleTextPager(final IText text) + { + this.text = text; + } + + public void showPage(final CommandSender sender) + { + for (String line : text.getLines()) + { + sender.sendMessage(line); + } + } + + public String getString(int line) + { + if (text.getLines().size() < line) + { + return null; + } + return text.getLines().get(line); + } +} diff --git a/Essentials/src/info.txt b/Essentials/src/info.txt index e05843dcb..694093bbf 100644 --- a/Essentials/src/info.txt +++ b/Essentials/src/info.txt @@ -25,7 +25,9 @@ Minecraft colors: #Tags PLAYER: {PLAYER} +USERNAME: {PLAYER} IP: {IP} +ADDRESS: {ADDRESS} BALANCE: {BALANCE} MAILS: {MAILS} WORLD: {WORLD} @@ -39,3 +41,4 @@ WORLDTIME12: {WORLDTIME12} WORLDTIME24: {WORLDTIME24} WORLDDATE: {WORLDDATE} PLUGINS: {PLUGINS} +VERSION: {VERSION} \ No newline at end of file diff --git a/EssentialsSpawn/src/com/earth2me/essentials/spawn/EssentialsSpawnPlayerListener.java b/EssentialsSpawn/src/com/earth2me/essentials/spawn/EssentialsSpawnPlayerListener.java index b68b4e350..083fd66a5 100644 --- a/EssentialsSpawn/src/com/earth2me/essentials/spawn/EssentialsSpawnPlayerListener.java +++ b/EssentialsSpawn/src/com/earth2me/essentials/spawn/EssentialsSpawnPlayerListener.java @@ -4,6 +4,9 @@ import static com.earth2me.essentials.I18n._; import com.earth2me.essentials.IEssentials; import com.earth2me.essentials.OfflinePlayer; import com.earth2me.essentials.User; +import com.earth2me.essentials.textreader.IText; +import com.earth2me.essentials.textreader.KeywordReplacer; +import com.earth2me.essentials.textreader.SimpleTextPager; import java.util.logging.Level; import java.util.logging.Logger; import org.bukkit.Bukkit; @@ -73,7 +76,9 @@ public class EssentialsSpawnPlayerListener implements Listener if (ess.getSettings().getAnnounceNewPlayers()) { - ess.broadcastMessage(user, ess.getSettings().getAnnounceNewPlayerFormat(user)); + final IText output = new KeywordReplacer(ess.getSettings().getAnnounceNewPlayerFormat(), user, ess); + final SimpleTextPager pager = new SimpleTextPager(output); + ess.broadcastMessage(user, pager.getString(0)); } LOGGER.log(Level.FINE, "New player join"); From 8de2b1520fa4778051339978941762c17a9d6dc9 Mon Sep 17 00:00:00 2001 From: KHobbits Date: Sat, 18 Feb 2012 21:34:05 +0000 Subject: [PATCH 29/59] Re-allow colours in newb welcome messages. --- Essentials/src/com/earth2me/essentials/Settings.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Essentials/src/com/earth2me/essentials/Settings.java b/Essentials/src/com/earth2me/essentials/Settings.java index 3307945f2..592b80694 100644 --- a/Essentials/src/com/earth2me/essentials/Settings.java +++ b/Essentials/src/com/earth2me/essentials/Settings.java @@ -330,7 +330,7 @@ public class Settings implements ISettings @Override public IText getAnnounceNewPlayerFormat() { - return new SimpleTextInput(config.getString("newbies.announce-format", "&dWelcome {DISPLAYNAME} to the server!")); + return new SimpleTextInput(Util.replaceColor(config.getString("newbies.announce-format", "&dWelcome {DISPLAYNAME} to the server!"))); } @Override From 984bd949fd98d18bd0af3943964f0de83f61c8d6 Mon Sep 17 00:00:00 2001 From: KHobbits Date: Sat, 18 Feb 2012 22:08:18 +0000 Subject: [PATCH 30/59] Little bit of extra info in the default /einfo file --- Essentials/src/info.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Essentials/src/info.txt b/Essentials/src/info.txt index 694093bbf..efc629923 100644 --- a/Essentials/src/info.txt +++ b/Essentials/src/info.txt @@ -7,6 +7,10 @@ Name it info_username.txt or info_groupname.txt This also works with motd and rules. +Extra pages: +Type /info Colours +Type /info Tags + It can contain chapters like the Chapter1 below: #Chapter1 From 2b4b2034ae39c6c4cc0eca09552394fc3627e49a Mon Sep 17 00:00:00 2001 From: KHobbits Date: Sat, 18 Feb 2012 22:47:38 +0000 Subject: [PATCH 31/59] Add bPerm2 support for chat prefixes. --- Essentials/nbproject/project.properties | 4 +- .../essentials/perm/BPermissions2Handler.java | 62 +++++++++++++++++++ .../essentials/perm/PermissionsHandler.java | 7 ++- 3 files changed, 69 insertions(+), 4 deletions(-) create mode 100644 Essentials/src/com/earth2me/essentials/perm/BPermissions2Handler.java diff --git a/Essentials/nbproject/project.properties b/Essentials/nbproject/project.properties index 71fea5cf9..7a5ffe7bb 100644 --- a/Essentials/nbproject/project.properties +++ b/Essentials/nbproject/project.properties @@ -66,6 +66,7 @@ endorsed.classpath= excludes= file.reference.BOSEconomy7.jar=../lib/BOSEconomy7.jar file.reference.bPermissions.jar=../lib/bPermissions.jar +file.reference.bpermissions2.jar=../lib/bpermissions2.jar file.reference.bukkit.jar=../lib/bukkit.jar file.reference.craftbukkit.jar=../lib/craftbukkit.jar file.reference.iCo4.jar=../lib/iCo4.jar @@ -97,7 +98,8 @@ javac.classpath=\ ${file.reference.bukkit.jar}:\ ${file.reference.craftbukkit.jar}:\ ${file.reference.Vault.jar}:\ - ${file.reference.Privileges.jar} + ${file.reference.Privileges.jar}:\ + ${file.reference.bpermissions2.jar} # Space-separated list of extra javac options javac.compilerargs= javac.deprecation=false diff --git a/Essentials/src/com/earth2me/essentials/perm/BPermissions2Handler.java b/Essentials/src/com/earth2me/essentials/perm/BPermissions2Handler.java new file mode 100644 index 000000000..f4122bf53 --- /dev/null +++ b/Essentials/src/com/earth2me/essentials/perm/BPermissions2Handler.java @@ -0,0 +1,62 @@ +package com.earth2me.essentials.perm; + +import de.bananaco.bpermissions.api.ApiLayer; +import de.bananaco.bpermissions.api.World; +import de.bananaco.bpermissions.api.WorldManager; +import de.bananaco.bpermissions.api.util.Calculable; +import de.bananaco.bpermissions.api.util.CalculableType; +import java.util.Arrays; +import java.util.List; +import org.bukkit.entity.Player; + + +public class BPermissions2Handler extends SuperpermsHandler +{ + public BPermissions2Handler() + { + + } + + @Override + public String getGroup(final Player base) + { + final List groups = getGroups(base); + if (groups == null || groups.isEmpty()) + { + return null; + } + return groups.get(0); + } + + @Override + public List getGroups(final Player base) + { + final String[] groups = ApiLayer.getGroups(base.getWorld().getName(), CalculableType.USER, base.getName()); + return Arrays.asList(groups); + } + + @Override + public boolean inGroup(final Player base, final String group) + { + return ApiLayer.hasGroup(base.getWorld().getName(), CalculableType.USER, base.getName(), group); + } + + @Override + public boolean canBuild(final Player base, final String group) + { + return hasPermission(base, "essentials.build") || hasPermission(base, "bPermissions.build"); + } + + @Override + public String getPrefix(final Player base) + { + return ApiLayer.getValue(base.getWorld().getName(), CalculableType.USER, base.getName(), "prefix"); + } + + @Override + public String getSuffix(final Player base) + { + return ApiLayer.getValue(base.getWorld().getName(), CalculableType.USER, base.getName(), "suffix"); + } + +} diff --git a/Essentials/src/com/earth2me/essentials/perm/PermissionsHandler.java b/Essentials/src/com/earth2me/essentials/perm/PermissionsHandler.java index 70a9e582c..a344968c2 100644 --- a/Essentials/src/com/earth2me/essentials/perm/PermissionsHandler.java +++ b/Essentials/src/com/earth2me/essentials/perm/PermissionsHandler.java @@ -158,12 +158,13 @@ public class PermissionsHandler implements IPermissionsHandler } return; } - if (!(handler instanceof SuperpermsHandler)) + if (!(handler instanceof BPermissions2Handler)) { - LOGGER.log(Level.INFO, "Essentials: bPermissions api broken, switching to superperms based permissions."); - handler = new SuperpermsHandler(); + LOGGER.log(Level.INFO, "Essentials: Using bPermissions2 based permissions."); + handler = new BPermissions2Handler(); } return; + } final Plugin permPlugin = pluginManager.getPlugin("Permissions"); if (permPlugin != null && permPlugin.isEnabled()) From 306203523682a4c324a8a89f522c06391d5d226c Mon Sep 17 00:00:00 2001 From: snowleo Date: Tue, 21 Feb 2012 16:47:25 +0100 Subject: [PATCH 32/59] CB#1952 B#1330 From 406295a5488f8b105325b7c8c918f257f484d911 Mon Sep 17 00:00:00 2001 From: snowleo Date: Tue, 21 Feb 2012 17:33:46 +0100 Subject: [PATCH 33/59] Updated Essentials to work with R5 --- .../com/earth2me/essentials/Essentials.java | 2 +- .../earth2me/essentials/EssentialsConf.java | 84 ++++++++++++------- .../essentials/EssentialsUpgrade.java | 12 +-- .../com/earth2me/essentials/ISettings.java | 2 +- .../earth2me/essentials/OfflinePlayer.java | 12 --- .../src/com/earth2me/essentials/Settings.java | 26 +++--- .../src/com/earth2me/essentials/UserData.java | 6 +- .../essentials/craftbukkit/FakeWorld.java | 18 ++-- .../essentials/signs/SignEntityListener.java | 4 +- .../com/earth2me/essentials/FakeServer.java | 39 +++++---- .../dataholder/WorldDataHolder.java | 2 +- .../groupmanager/events/GMGroupEvent.java | 4 +- .../groupmanager/events/GMSystemEvent.java | 2 +- .../groupmanager/events/GMUserEvent.java | 4 +- .../protect/EmergencyBlockListener.java | 36 -------- .../protect/EmergencyEntityListener.java | 22 ----- .../protect/EmergencyPlayerListener.java | 16 ---- .../essentials/protect/EssentialsProtect.java | 19 +---- .../EssentialsProtectEntityListener.java | 2 +- .../states/InstallationFinishedEvent.java | 2 +- .../earth2me/essentials/xmpp/UserManager.java | 4 +- .../earth2me/essentials/xmpp/XMPPManager.java | 4 +- 22 files changed, 130 insertions(+), 192 deletions(-) delete mode 100644 EssentialsProtect/src/com/earth2me/essentials/protect/EmergencyBlockListener.java delete mode 100644 EssentialsProtect/src/com/earth2me/essentials/protect/EmergencyEntityListener.java delete mode 100644 EssentialsProtect/src/com/earth2me/essentials/protect/EmergencyPlayerListener.java diff --git a/Essentials/src/com/earth2me/essentials/Essentials.java b/Essentials/src/com/earth2me/essentials/Essentials.java index 3ee7c1777..d8d1f5554 100644 --- a/Essentials/src/com/earth2me/essentials/Essentials.java +++ b/Essentials/src/com/earth2me/essentials/Essentials.java @@ -66,7 +66,7 @@ import org.yaml.snakeyaml.error.YAMLException; public class Essentials extends JavaPlugin implements IEssentials { - public static final int BUKKIT_VERSION = 1846; + public static final int BUKKIT_VERSION = 1952; private static final Logger LOGGER = Logger.getLogger("Minecraft"); private transient ISettings settings; private final transient TNTExplodeListener tntListener = new TNTExplodeListener(this); diff --git a/Essentials/src/com/earth2me/essentials/EssentialsConf.java b/Essentials/src/com/earth2me/essentials/EssentialsConf.java index ec6e27b53..9ffe7e5b6 100644 --- a/Essentials/src/com/earth2me/essentials/EssentialsConf.java +++ b/Essentials/src/com/earth2me/essentials/EssentialsConf.java @@ -3,7 +3,6 @@ package com.earth2me.essentials; import static com.earth2me.essentials.I18n._; import java.io.*; import java.util.HashMap; -import java.util.List; import java.util.Locale; import java.util.Map; import java.util.logging.Level; @@ -12,12 +11,14 @@ import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.Server; import org.bukkit.World; +import org.bukkit.configuration.ConfigurationSection; +import org.bukkit.configuration.InvalidConfigurationException; +import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.enchantments.Enchantment; import org.bukkit.inventory.ItemStack; -import org.bukkit.util.config.Configuration; -public class EssentialsConf extends Configuration +public class EssentialsConf extends YamlConfiguration { private static final Logger LOGGER = Logger.getLogger("Minecraft"); private transient File configFile; @@ -26,15 +27,10 @@ public class EssentialsConf extends Configuration public EssentialsConf(final File configFile) { - super(configFile); + super(); this.configFile = configFile; - if (this.root == null) - { - this.root = new HashMap(); - } } - @Override public void load() { configFile = configFile.getAbsoluteFile(); @@ -105,20 +101,24 @@ public class EssentialsConf extends Configuration } } + try { - super.load(); + super.load(configFile); } - catch (RuntimeException e) - { + catch (FileNotFoundException ex) + { + LOGGER.log(Level.SEVERE, null, ex); + } + catch (IOException ex) + { + LOGGER.log(Level.SEVERE, null, ex); + } + catch (InvalidConfigurationException ex) + { File broken = new File(configFile.getAbsolutePath() + ".broken." + System.currentTimeMillis()); configFile.renameTo(broken); - LOGGER.log(Level.SEVERE, "The file " + configFile.toString() + " is broken, it has been renamed to " + broken.toString(), e.getCause()); - } - - if (this.root == null) - { - this.root = new HashMap(); + LOGGER.log(Level.SEVERE, "The file " + configFile.toString() + " is broken, it has been renamed to " + broken.toString(), ex.getCause()); } } @@ -193,7 +193,7 @@ public class EssentialsConf extends Configuration public boolean hasProperty(final String path) { - return getProperty(path) != null; + return isSet(path); } public Location getLocation(final String path, final Server server) throws Exception @@ -218,24 +218,25 @@ public class EssentialsConf extends Configuration public void setProperty(final String path, final Location loc) { - setProperty((path == null ? "" : path + ".") + "world", loc.getWorld().getName()); - setProperty((path == null ? "" : path + ".") + "x", loc.getX()); - setProperty((path == null ? "" : path + ".") + "y", loc.getY()); - setProperty((path == null ? "" : path + ".") + "z", loc.getZ()); - setProperty((path == null ? "" : path + ".") + "yaw", loc.getYaw()); - setProperty((path == null ? "" : path + ".") + "pitch", loc.getPitch()); + set((path == null ? "" : path + ".") + "world", loc.getWorld().getName()); + set((path == null ? "" : path + ".") + "x", loc.getX()); + set((path == null ? "" : path + ".") + "y", loc.getY()); + set((path == null ? "" : path + ".") + "z", loc.getZ()); + set((path == null ? "" : path + ".") + "yaw", loc.getYaw()); + set((path == null ? "" : path + ".") + "pitch", loc.getPitch()); } + @Override public ItemStack getItemStack(final String path) { final ItemStack stack = new ItemStack( Material.valueOf(getString(path + ".type", "AIR")), getInt(path + ".amount", 1), (short)getInt(path + ".damage", 0)); - final List enchants = getKeys(path + ".enchant"); + final ConfigurationSection enchants = getConfigurationSection(path + ".enchant"); if (enchants != null) { - for (String enchant : enchants) + for (String enchant : enchants.getKeys(false)) { final Enchantment enchantment = Enchantment.getByName(enchant.toUpperCase(Locale.ENGLISH)); if (enchantment == null) @@ -271,14 +272,14 @@ public class EssentialsConf extends Configuration } // getData().getData() is broken //map.put("data", stack.getDurability()); - setProperty(path, map); + set(path, map); } public long getLong(final String path, final long def) { try { - final Number num = (Number)getProperty(path); + final Number num = (Number)get(path); return num == null ? def : num.longValue(); } catch (ClassCastException ex) @@ -292,7 +293,7 @@ public class EssentialsConf extends Configuration { try { - Number num = (Number)getProperty(path); + Number num = (Number)get(path); return num == null ? def : num.doubleValue(); } catch (ClassCastException ex) @@ -300,4 +301,27 @@ public class EssentialsConf extends Configuration return def; } } + + public void save() { + try + { + save(configFile); + } + catch (IOException ex) + { + LOGGER.log(Level.SEVERE, null, ex); + } + } + + public Object getProperty(String path) { + return get(path); + } + + public void setProperty(String path, Object object) { + set(path, object); + } + + public void removeProperty(String path) { + set(path, null); + } } diff --git a/Essentials/src/com/earth2me/essentials/EssentialsUpgrade.java b/Essentials/src/com/earth2me/essentials/EssentialsUpgrade.java index ae444af2e..26e6f25bc 100644 --- a/Essentials/src/com/earth2me/essentials/EssentialsUpgrade.java +++ b/Essentials/src/com/earth2me/essentials/EssentialsUpgrade.java @@ -95,7 +95,7 @@ public class EssentialsUpgrade } final EssentialsConf conf = new EssentialsConf(configFile); conf.load(); - List lines = conf.getStringList(name, null); + List lines = conf.getStringList(name); if (lines != null && !lines.isEmpty()) { if (!file.createNewFile()) @@ -332,7 +332,7 @@ public class EssentialsUpgrade config.setProperty("homes.home", defloc); } - List worlds = config.getKeys("home.worlds"); + Set worlds = config.getConfigurationSection("home.worlds").getKeys(false); Location loc; String worldName; @@ -381,7 +381,7 @@ public class EssentialsUpgrade } final EssentialsConf usersConfig = new EssentialsConf(usersFile); usersConfig.load(); - for (String username : usersConfig.getKeys(null)) + for (String username : usersConfig.getKeys(false)) { final User user = new User(new OfflinePlayer(username, ess), ess); final String nickname = usersConfig.getString(username + ".nickname"); @@ -389,7 +389,7 @@ public class EssentialsUpgrade { user.setNickname(nickname); } - final List mails = usersConfig.getStringList(username + ".mail", null); + final List mails = usersConfig.getStringList(username + ".mail"); if (mails != null && !mails.isEmpty()) { user.setMails(mails); @@ -701,7 +701,7 @@ public class EssentialsUpgrade if (!config.hasProperty("spawns")) { final Spawns spawns = new Spawns(); - List keys = config.getKeys(); + Set keys = config.getKeys(false); for (String group : keys) { Location loc = getFakeLocation(config, group); @@ -748,7 +748,7 @@ public class EssentialsUpgrade if (!config.hasProperty("jails")) { final com.earth2me.essentials.settings.Jails jails = new com.earth2me.essentials.settings.Jails(); - List keys = config.getKeys(); + Set keys = config.getKeys(false); for (String jailName : keys) { Location loc = getFakeLocation(config, jailName); diff --git a/Essentials/src/com/earth2me/essentials/ISettings.java b/Essentials/src/com/earth2me/essentials/ISettings.java index c29cc5b1a..b7a128ebc 100644 --- a/Essentials/src/com/earth2me/essentials/ISettings.java +++ b/Essentials/src/com/earth2me/essentials/ISettings.java @@ -65,7 +65,7 @@ public interface ISettings extends IConf boolean getRespawnAtHome(); - List getMultipleHomes(); + Set getMultipleHomes(); int getHomeLimit(String set); diff --git a/Essentials/src/com/earth2me/essentials/OfflinePlayer.java b/Essentials/src/com/earth2me/essentials/OfflinePlayer.java index 18fc60cbc..440d3fad3 100644 --- a/Essentials/src/com/earth2me/essentials/OfflinePlayer.java +++ b/Essentials/src/com/earth2me/essentials/OfflinePlayer.java @@ -666,18 +666,6 @@ public class OfflinePlayer implements Player throw new UnsupportedOperationException("Not supported yet."); } - @Override - public int getExperience() - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public void setExperience(int i) - { - throw new UnsupportedOperationException("Not supported yet."); - } - @Override public int getLevel() { diff --git a/Essentials/src/com/earth2me/essentials/Settings.java b/Essentials/src/com/earth2me/essentials/Settings.java index 592b80694..218a9163c 100644 --- a/Essentials/src/com/earth2me/essentials/Settings.java +++ b/Essentials/src/com/earth2me/essentials/Settings.java @@ -45,15 +45,15 @@ public class Settings implements ISettings } @Override - public List getMultipleHomes() + public Set getMultipleHomes() { - return config.getKeys("sethome-multiple"); + return config.getConfigurationSection("sethome-multiple").getKeys(false); } @Override public int getHomeLimit(final User user) { - final List homeList = getMultipleHomes(); + final Set homeList = getMultipleHomes(); if (homeList == null) { //TODO: Replace this code to remove backwards compat, after settings are automatically updated @@ -116,7 +116,7 @@ public class Settings implements ISettings @Override public boolean isCommandDisabled(String label) { - for (String c : config.getStringList("disabled-commands", new ArrayList(0))) + for (String c : config.getStringList("disabled-commands")) { if (!c.equalsIgnoreCase(label)) { @@ -136,7 +136,7 @@ public class Settings implements ISettings @Override public boolean isCommandRestricted(String label) { - for (String c : config.getStringList("restricted-commands", new ArrayList(0))) + for (String c : config.getStringList("restricted-commands")) { if (!c.equalsIgnoreCase(label)) { @@ -150,7 +150,7 @@ public class Settings implements ISettings @Override public boolean isPlayerCommand(String label) { - for (String c : config.getStringList("player-commands", new ArrayList(0))) + for (String c : config.getStringList("player-commands")) { if (!c.equalsIgnoreCase(label)) { @@ -164,9 +164,7 @@ public class Settings implements ISettings @Override public boolean isCommandOverridden(String name) { - List defaultList = new ArrayList(1); - defaultList.add("god"); - for (String c : config.getStringList("overridden-commands", defaultList)) + for (String c : config.getStringList("overridden-commands")) { if (!c.equalsIgnoreCase(name)) { @@ -215,7 +213,7 @@ public class Settings implements ISettings @Override public Object getKit(String name) { - Map kits = (Map)config.getProperty("kits"); + Map kits = (Map)config.get("kits"); for (Map.Entry entry : kits.entrySet()) { if (entry.getKey().equalsIgnoreCase(name.replace('.', '_').replace('/', '_'))) @@ -229,7 +227,7 @@ public class Settings implements ISettings @Override public Map getKits() { - return (Map)config.getProperty("kits"); + return (Map)config.get("kits"); } @Override @@ -254,7 +252,7 @@ public class Settings implements ISettings { } - return ChatColor.getByCode(Integer.parseInt(colorName, 16)); + return ChatColor.getByChar(colorName); } @Override @@ -355,7 +353,7 @@ public class Settings implements ISettings public void reloadConfig() { config.load(); - noGodWorlds = new HashSet(config.getStringList("no-god-in-worlds", Collections.emptyList())); + noGodWorlds = new HashSet(config.getStringList("no-god-in-worlds")); enabledSigns = getEnabledSigns(); itemSpawnBl = getItemSpawnBlacklist(); chatFormats.clear(); @@ -407,7 +405,7 @@ public class Settings implements ISettings { List newSigns = new ArrayList(); - for (String signName : config.getStringList("enabledSigns", null)) + for (String signName : config.getStringList("enabledSigns")) { signName = signName.trim().toUpperCase(Locale.ENGLISH); if (signName.isEmpty()) diff --git a/Essentials/src/com/earth2me/essentials/UserData.java b/Essentials/src/com/earth2me/essentials/UserData.java index e2a365ad2..44ac096b9 100644 --- a/Essentials/src/com/earth2me/essentials/UserData.java +++ b/Essentials/src/com/earth2me/essentials/UserData.java @@ -209,7 +209,7 @@ public abstract class UserData extends PlayerExtension implements IConf private List _getUnlimited() { - return config.getIntList("unlimited", new ArrayList()); + return config.getIntegerList("unlimited"); } public List getUnlimited() @@ -383,7 +383,7 @@ public abstract class UserData extends PlayerExtension implements IConf private List _getMails() { - return config.getStringList("mail", new ArrayList()); + return config.getStringList("mail"); } public List getMails() @@ -491,7 +491,7 @@ public abstract class UserData extends PlayerExtension implements IConf public List getIgnoredPlayers() { - return config.getStringList("ignore", new ArrayList()); + return config.getStringList("ignore"); } public void setIgnoredPlayers(List players) diff --git a/Essentials/src/com/earth2me/essentials/craftbukkit/FakeWorld.java b/Essentials/src/com/earth2me/essentials/craftbukkit/FakeWorld.java index 3fbb7874c..0ea06e72b 100644 --- a/Essentials/src/com/earth2me/essentials/craftbukkit/FakeWorld.java +++ b/Essentials/src/com/earth2me/essentials/craftbukkit/FakeWorld.java @@ -231,12 +231,6 @@ public class FakeWorld implements World return name; } - @Override - public long getId() - { - throw new UnsupportedOperationException("Not supported yet."); - } - @Override public Location getSpawnLocation() { @@ -578,4 +572,16 @@ public class FakeWorld implements World { throw new UnsupportedOperationException("Not supported yet."); } + + @Override + public Collection getEntitiesByClass(Class type) + { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public Collection getEntitiesByClasses(Class... types) + { + throw new UnsupportedOperationException("Not supported yet."); + } } diff --git a/Essentials/src/com/earth2me/essentials/signs/SignEntityListener.java b/Essentials/src/com/earth2me/essentials/signs/SignEntityListener.java index d9e28becc..a0446179f 100644 --- a/Essentials/src/com/earth2me/essentials/signs/SignEntityListener.java +++ b/Essentials/src/com/earth2me/essentials/signs/SignEntityListener.java @@ -6,7 +6,7 @@ import org.bukkit.block.Block; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; -import org.bukkit.event.entity.EndermanPickupEvent; +import org.bukkit.event.entity.EntityChangeBlockEvent; import org.bukkit.event.entity.EntityExplodeEvent; @@ -44,7 +44,7 @@ public class SignEntityListener implements Listener } @EventHandler(priority = EventPriority.LOW) - public void onEndermanPickup(final EndermanPickupEvent event) + public void onEntityChangeBlock(final EntityChangeBlockEvent event) { if (event.isCancelled() || ess.getSettings().areSignsDisabled()) { diff --git a/Essentials/test/com/earth2me/essentials/FakeServer.java b/Essentials/test/com/earth2me/essentials/FakeServer.java index 14f81b605..a7335a957 100644 --- a/Essentials/test/com/earth2me/essentials/FakeServer.java +++ b/Essentials/test/com/earth2me/essentials/FakeServer.java @@ -14,6 +14,7 @@ import org.bukkit.command.ConsoleCommandSender; import org.bukkit.command.PluginCommand; import org.bukkit.entity.Player; import org.bukkit.generator.ChunkGenerator; +import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.Recipe; import org.bukkit.map.MapView; import org.bukkit.plugin.Plugin; @@ -250,7 +251,6 @@ public class FakeServer implements Server return worlds; } - @Override public World createWorld(String string, Environment e) { World w = new FakeWorld(string, e); @@ -258,7 +258,6 @@ public class FakeServer implements Server return w; } - @Override public World createWorld(String string, Environment e, long l) { World w = new FakeWorld(string, e); @@ -331,18 +330,6 @@ public class FakeServer implements Server return player; } - @Override - public World createWorld(String string, Environment e, ChunkGenerator cg) - { - throw new UnsupportedOperationException("Not supported yet."); - } - - @Override - public World createWorld(String string, Environment e, long l, ChunkGenerator cg) - { - throw new UnsupportedOperationException("Not supported yet."); - } - @Override public World createWorld(WorldCreator creator) { @@ -666,4 +653,28 @@ public class FakeServer implements Server { throw new UnsupportedOperationException("Not supported yet."); } + + @Override + public List getRecipesFor(ItemStack is) + { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public Iterator recipeIterator() + { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public void clearRecipes() + { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public void resetRecipes() + { + throw new UnsupportedOperationException("Not supported yet."); + } } diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/dataholder/WorldDataHolder.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/dataholder/WorldDataHolder.java index 8115b1a75..e766b6c78 100644 --- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/dataholder/WorldDataHolder.java +++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/dataholder/WorldDataHolder.java @@ -856,7 +856,7 @@ public class WorldDataHolder { PluginManager pm = server.getPluginManager(); Plugin[] plugins = pm.getPlugins(); for (int i = 0; i < plugins.length; i++) { - plugins[i].getConfiguration().load(); + //plugins[i].getConfiguration().load(); try { plugins[i].getClass().getMethod("setupPermissions").invoke(plugins[i]); } catch (Exception ex) { diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/events/GMGroupEvent.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/events/GMGroupEvent.java index fdb740646..f109cf4f7 100644 --- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/events/GMGroupEvent.java +++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/events/GMGroupEvent.java @@ -37,7 +37,7 @@ public class GMGroupEvent extends Event { protected Action action; public GMGroupEvent(Group group, Action action) { - super(action.toString()); + super(); this.group = group; this.action = action; @@ -45,7 +45,7 @@ public class GMGroupEvent extends Event { } public GMGroupEvent(String groupName, Action action) { - super(action.toString()); + super(); this.groupName = groupName; this.action = action; diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/events/GMSystemEvent.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/events/GMSystemEvent.java index 1ff605d5c..6f4c0ea08 100644 --- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/events/GMSystemEvent.java +++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/events/GMSystemEvent.java @@ -32,7 +32,7 @@ public class GMSystemEvent extends Event { protected Action action; public GMSystemEvent(Action action) { - super(action.toString()); + super(); this.action = action; } diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/events/GMUserEvent.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/events/GMUserEvent.java index d40a7d63e..543580f41 100644 --- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/events/GMUserEvent.java +++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/events/GMUserEvent.java @@ -37,7 +37,7 @@ public class GMUserEvent extends Event { protected Action action; public GMUserEvent(User user, Action action) { - super(action.toString()); + super(); this.user = user; this.action = action; @@ -45,7 +45,7 @@ public class GMUserEvent extends Event { } public GMUserEvent(String userName, Action action) { - super(action.toString()); + super(); this.userName = userName; this.action = action; diff --git a/EssentialsProtect/src/com/earth2me/essentials/protect/EmergencyBlockListener.java b/EssentialsProtect/src/com/earth2me/essentials/protect/EmergencyBlockListener.java deleted file mode 100644 index 7ff17b381..000000000 --- a/EssentialsProtect/src/com/earth2me/essentials/protect/EmergencyBlockListener.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.earth2me.essentials.protect; - -import org.bukkit.event.block.BlockBreakEvent; -import org.bukkit.event.block.BlockBurnEvent; -import org.bukkit.event.block.BlockFromToEvent; -import org.bukkit.event.block.BlockIgniteEvent; -import org.bukkit.event.block.BlockListener; - -@Deprecated -public class EmergencyBlockListener extends BlockListener -{ - - @Override - public void onBlockBurn(final BlockBurnEvent event) - { - event.setCancelled(true); - } - - @Override - public void onBlockIgnite(final BlockIgniteEvent event) - { - event.setCancelled(true); - } - - @Override - public void onBlockFromTo(final BlockFromToEvent event) - { - event.setCancelled(true); - } - - @Override - public void onBlockBreak(final BlockBreakEvent event) - { - event.setCancelled(true); - } -} diff --git a/EssentialsProtect/src/com/earth2me/essentials/protect/EmergencyEntityListener.java b/EssentialsProtect/src/com/earth2me/essentials/protect/EmergencyEntityListener.java deleted file mode 100644 index 08b04aae1..000000000 --- a/EssentialsProtect/src/com/earth2me/essentials/protect/EmergencyEntityListener.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.earth2me.essentials.protect; - -import org.bukkit.event.entity.EntityDamageEvent; -import org.bukkit.event.entity.EntityExplodeEvent; -import org.bukkit.event.entity.EntityListener; - -@Deprecated -public class EmergencyEntityListener extends EntityListener -{ - - @Override - public void onEntityExplode(final EntityExplodeEvent event) - { - event.setCancelled(true); - } - - @Override - public void onEntityDamage(final EntityDamageEvent event) - { - event.setCancelled(true); - } -} diff --git a/EssentialsProtect/src/com/earth2me/essentials/protect/EmergencyPlayerListener.java b/EssentialsProtect/src/com/earth2me/essentials/protect/EmergencyPlayerListener.java deleted file mode 100644 index 169e9af79..000000000 --- a/EssentialsProtect/src/com/earth2me/essentials/protect/EmergencyPlayerListener.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.earth2me.essentials.protect; - -import org.bukkit.event.player.PlayerJoinEvent; -import org.bukkit.event.player.PlayerListener; - -@Deprecated -public class EmergencyPlayerListener extends PlayerListener -{ - - @Override - public void onPlayerJoin(PlayerJoinEvent event) - { - event.getPlayer().sendMessage("Essentials Protect is in emergency mode. Check your log for errors."); - } - -} diff --git a/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtect.java b/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtect.java index af80647a6..9c257662d 100644 --- a/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtect.java +++ b/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtect.java @@ -9,8 +9,6 @@ import java.util.logging.Level; import java.util.logging.LogRecord; import java.util.logging.Logger; import org.bukkit.entity.Player; -import org.bukkit.event.Event.Priority; -import org.bukkit.event.Event.Type; import org.bukkit.plugin.Plugin; import org.bukkit.plugin.PluginManager; import org.bukkit.plugin.java.JavaPlugin; @@ -65,21 +63,8 @@ public class EssentialsProtect extends JavaPlugin implements IProtect private void enableEmergencyMode(final PluginManager pm) { - //final EmergencyListener emListener = new EmergencyListener(); - //pm.registerEvents(emListener, this); - - //TODO: Remove deprecated listners in a few weeks. - - final EmergencyBlockListener emBlockListener = new EmergencyBlockListener(); - final EmergencyEntityListener emEntityListener = new EmergencyEntityListener(); - final EmergencyPlayerListener emPlayerListener = new EmergencyPlayerListener(); - pm.registerEvent(Type.PLAYER_JOIN, emPlayerListener, Priority.Low, this); - pm.registerEvent(Type.BLOCK_BURN, emBlockListener, Priority.Low, this); - pm.registerEvent(Type.BLOCK_IGNITE, emBlockListener, Priority.Low, this); - pm.registerEvent(Type.BLOCK_FROMTO, emBlockListener, Priority.Low, this); - pm.registerEvent(Type.BLOCK_BREAK, emBlockListener, Priority.Low, this); - pm.registerEvent(Type.ENTITY_DAMAGE, emEntityListener, Priority.Low, this); - pm.registerEvent(Type.ENTITY_EXPLODE, emEntityListener, Priority.Low, this); + final EmergencyListener emListener = new EmergencyListener(); + pm.registerEvents(emListener, this); for (Player player : getServer().getOnlinePlayers()) { diff --git a/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectEntityListener.java b/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectEntityListener.java index 40167ec41..57302517f 100644 --- a/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectEntityListener.java +++ b/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectEntityListener.java @@ -328,7 +328,7 @@ public class EssentialsProtectEntityListener implements Listener } @EventHandler(priority = EventPriority.HIGHEST) - public void onEndermanPickup(EndermanPickupEvent event) + public void onEntityChangeBlock(EntityChangeBlockEvent event) { if (event.isCancelled()) { diff --git a/EssentialsUpdate/src/com/earth2me/essentials/update/states/InstallationFinishedEvent.java b/EssentialsUpdate/src/com/earth2me/essentials/update/states/InstallationFinishedEvent.java index 930a31bda..02b35c3d6 100644 --- a/EssentialsUpdate/src/com/earth2me/essentials/update/states/InstallationFinishedEvent.java +++ b/EssentialsUpdate/src/com/earth2me/essentials/update/states/InstallationFinishedEvent.java @@ -7,6 +7,6 @@ public class InstallationFinishedEvent extends Event { public InstallationFinishedEvent() { - super(Type.CUSTOM_EVENT); + super(); } } diff --git a/EssentialsXMPP/src/com/earth2me/essentials/xmpp/UserManager.java b/EssentialsXMPP/src/com/earth2me/essentials/xmpp/UserManager.java index 85ef50949..a35312129 100644 --- a/EssentialsXMPP/src/com/earth2me/essentials/xmpp/UserManager.java +++ b/EssentialsXMPP/src/com/earth2me/essentials/xmpp/UserManager.java @@ -36,7 +36,7 @@ public class UserManager implements IConf public final String getUserByAddress(final String search) { - final List usernames = users.getKeys(null); + final Set usernames = users.getKeys(false); for (String username : usernames) { final String address = users.getString(username + "." + ADDRESS, null); @@ -73,7 +73,7 @@ public class UserManager implements IConf { users.load(); spyusers.clear(); - final List keys = users.getKeys(null); + final Set keys = users.getKeys(false); for (String key : keys) { if (isSpy(key)) diff --git a/EssentialsXMPP/src/com/earth2me/essentials/xmpp/XMPPManager.java b/EssentialsXMPP/src/com/earth2me/essentials/xmpp/XMPPManager.java index 72bdb113d..bb44d3127 100644 --- a/EssentialsXMPP/src/com/earth2me/essentials/xmpp/XMPPManager.java +++ b/EssentialsXMPP/src/com/earth2me/essentials/xmpp/XMPPManager.java @@ -183,7 +183,7 @@ public class XMPPManager extends Handler implements MessageListener, ChatManager if (config.getBoolean("log-enabled", false)) { LOGGER.addHandler(this); - logUsers = config.getStringList("log-users", new ArrayList()); + logUsers = config.getStringList("log-users"); final String level = config.getString("log-level", "info"); try { @@ -351,7 +351,7 @@ public class XMPPManager extends Handler implements MessageListener, ChatManager private void sendCommand(final Chat chat, final String message) { - if (config.getStringList("op-users", new ArrayList()).contains(StringUtils.parseBareAddress(chat.getParticipant()))) + if (config.getStringList("op-users").contains(StringUtils.parseBareAddress(chat.getParticipant()))) { try { From b41444d87a89650774a1ab2d800d5ee349252ca5 Mon Sep 17 00:00:00 2001 From: snowleo Date: Tue, 21 Feb 2012 18:41:27 +0100 Subject: [PATCH 34/59] Never give our user object to other plugins! --- .../src/com/earth2me/essentials/commands/Commandsuicide.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandsuicide.java b/Essentials/src/com/earth2me/essentials/commands/Commandsuicide.java index 64f7fe04a..d6afe707a 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandsuicide.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandsuicide.java @@ -16,7 +16,7 @@ public class Commandsuicide extends EssentialsCommand @Override public void run(final Server server, final User user, final String commandLabel, final String[] args) throws Exception { - EntityDamageEvent ede = new EntityDamageEvent(user, EntityDamageEvent.DamageCause.SUICIDE, 1000); + EntityDamageEvent ede = new EntityDamageEvent(user.getBase(), EntityDamageEvent.DamageCause.SUICIDE, 1000); server.getPluginManager().callEvent(ede); user.damage(1000); user.setHealth(0); From 674832c2f677d4fc1f3b84acf490a4eb02050a00 Mon Sep 17 00:00:00 2001 From: ElgarL Date: Tue, 21 Feb 2012 18:38:08 +0000 Subject: [PATCH 35/59] Update for Bukkit R5 compatability. Removed some unused variables. --- EssentialsGroupManager/src/Changelog.txt | 3 ++- .../src/org/anjocaido/groupmanager/events/GMGroupEvent.java | 1 - .../src/org/anjocaido/groupmanager/events/GMSystemEvent.java | 1 - .../src/org/anjocaido/groupmanager/events/GMUserEvent.java | 1 - 4 files changed, 2 insertions(+), 4 deletions(-) diff --git a/EssentialsGroupManager/src/Changelog.txt b/EssentialsGroupManager/src/Changelog.txt index 31d40413f..0566ef676 100644 --- a/EssentialsGroupManager/src/Changelog.txt +++ b/EssentialsGroupManager/src/Changelog.txt @@ -141,4 +141,5 @@ v 1.9: - Change Service registration to register WorldsHolder instead of AnjoPermissionsHandler. This is the correct entry point for all data. - Depreciate PlayerTeleportEvent, PlayerRespawnEvent and PlayerPortalEvent as it's all handled in PlayerChangedWorldEvent. This also means we no longer update permissions before we change worlds. - - A command of '/manload' with no world arguments now performs a full reload of GM. \ No newline at end of file + - A command of '/manload' with no world arguments now performs a full reload of GM. + - Update for Bukkit R5 compatability. \ No newline at end of file diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/events/GMGroupEvent.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/events/GMGroupEvent.java index f109cf4f7..fc9b8433b 100644 --- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/events/GMGroupEvent.java +++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/events/GMGroupEvent.java @@ -16,7 +16,6 @@ public class GMGroupEvent extends Event { /** * */ - private static final long serialVersionUID = -5294917600434510451L; private static final HandlerList handlers = new HandlerList(); @Override diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/events/GMSystemEvent.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/events/GMSystemEvent.java index 6f4c0ea08..210960876 100644 --- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/events/GMSystemEvent.java +++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/events/GMSystemEvent.java @@ -15,7 +15,6 @@ public class GMSystemEvent extends Event { /** * */ - private static final long serialVersionUID = -8786811924448821548L; private static final HandlerList handlers = new HandlerList(); @Override diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/events/GMUserEvent.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/events/GMUserEvent.java index 543580f41..206de8c86 100644 --- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/events/GMUserEvent.java +++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/events/GMUserEvent.java @@ -16,7 +16,6 @@ public class GMUserEvent extends Event { /** * */ - private static final long serialVersionUID = -5294917600434510451L; private static final HandlerList handlers = new HandlerList(); @Override From d89028841e35f52c3359689c07c81a4284884d82 Mon Sep 17 00:00:00 2001 From: ElgarL Date: Tue, 21 Feb 2012 18:40:54 +0000 Subject: [PATCH 36/59] Removed BukkitPermsOverride as this is now the default with bukkit handling child nodes. --- EssentialsGroupManager/src/Changelog.txt | 3 ++- EssentialsGroupManager/src/config.yml | 4 ---- .../src/org/anjocaido/groupmanager/GMConfiguration.java | 3 --- 3 files changed, 2 insertions(+), 8 deletions(-) diff --git a/EssentialsGroupManager/src/Changelog.txt b/EssentialsGroupManager/src/Changelog.txt index 0566ef676..cb14c4e6e 100644 --- a/EssentialsGroupManager/src/Changelog.txt +++ b/EssentialsGroupManager/src/Changelog.txt @@ -142,4 +142,5 @@ v 1.9: - Depreciate PlayerTeleportEvent, PlayerRespawnEvent and PlayerPortalEvent as it's all handled in PlayerChangedWorldEvent. This also means we no longer update permissions before we change worlds. - A command of '/manload' with no world arguments now performs a full reload of GM. - - Update for Bukkit R5 compatability. \ No newline at end of file + - Update for Bukkit R5 compatability. + - Removed BukkitPermsOverride as this is now the default with bukkit handling child nodes. \ No newline at end of file diff --git a/EssentialsGroupManager/src/config.yml b/EssentialsGroupManager/src/config.yml index 13b59d343..cc90bea6f 100644 --- a/EssentialsGroupManager/src/config.yml +++ b/EssentialsGroupManager/src/config.yml @@ -4,10 +4,6 @@ settings: # The user will be able to promote players to the same group or even above. opOverrides: true - # If enabled any bukkit permissiosn which default to true will be left enabled. - # If the player is op any permissions set to Op will follow suit. - bukkit_perms_override: true - # Default setting for 'mantoglevalidate' # true will cause GroupManager to attempt name matching by default. validate_toggle: true diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/GMConfiguration.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/GMConfiguration.java index d830696e7..98ff075dd 100644 --- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/GMConfiguration.java +++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/GMConfiguration.java @@ -57,9 +57,6 @@ public class GMConfiguration { public boolean isOpOverride() { return GMconfig.getBoolean("settings.config.opOverrides", true); } - public boolean isBukkitPermsOverride() { - return GMconfig.getBoolean("settings.config.bukkit_perms_override", false); - } public boolean isToggleValidate() { return GMconfig.getBoolean("settings.config.validate_toggle", true); } From 377bdb7c2273e7664496b278ae5e335a5a5f62f2 Mon Sep 17 00:00:00 2001 From: KHobbits Date: Tue, 21 Feb 2012 21:39:25 +0000 Subject: [PATCH 37/59] Fix /sudo message display. --- .../src/com/earth2me/essentials/commands/Commandsudo.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandsudo.java b/Essentials/src/com/earth2me/essentials/commands/Commandsudo.java index 86394e502..d43d486b9 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandsudo.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandsudo.java @@ -1,6 +1,7 @@ package com.earth2me.essentials.commands; import com.earth2me.essentials.User; +import com.earth2me.essentials.Util; import org.bukkit.Server; import org.bukkit.command.CommandSender; import org.bukkit.command.PluginCommand; @@ -36,7 +37,7 @@ public class Commandsudo extends EssentialsCommand } //TODO: Translate this. - sender.sendMessage("Forcing " + user.getDisplayName() + " to run: /" + command + " " + arguments); + sender.sendMessage("Forcing " + user.getDisplayName() + " to run: /" + command + " " + getFinalArg(arguments, 0)); final PluginCommand execCommand = ess.getServer().getPluginCommand(command); if (execCommand != null) From 1a2f844bfa8f819bcafed9af1570c271ce1a88ec Mon Sep 17 00:00:00 2001 From: KHobbits Date: Tue, 21 Feb 2012 22:12:37 +0000 Subject: [PATCH 38/59] Fixing home list. --- .../src/com/earth2me/essentials/UserData.java | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/UserData.java b/Essentials/src/com/earth2me/essentials/UserData.java index 44ac096b9..643c45868 100644 --- a/Essentials/src/com/earth2me/essentials/UserData.java +++ b/Essentials/src/com/earth2me/essentials/UserData.java @@ -2,6 +2,7 @@ package com.earth2me.essentials; import java.io.File; import java.util.*; +import java.util.logging.Level; import java.util.logging.Logger; import org.bukkit.Location; import org.bukkit.Material; @@ -94,17 +95,7 @@ public abstract class UserData extends PlayerExtension implements IConf private Map _getHomes() { - Object o = config.getProperty("homes"); - - if (o instanceof Map) - { - return (Map)o; - } - else - { - return new HashMap(); - } - + return config.getConfigurationSection("homes").getValues(false); } public Location getHome(String name) throws Exception @@ -154,6 +145,7 @@ public abstract class UserData extends PlayerExtension implements IConf public List getHomes() { + ess.getLogger().log(Level.INFO, "player " + this.getName() + " homecount: " + homes.size()); return new ArrayList(homes.keySet()); } From 8c706a453742172c0e493c3d6a3814b0d5767692 Mon Sep 17 00:00:00 2001 From: KHobbits Date: Tue, 21 Feb 2012 22:14:11 +0000 Subject: [PATCH 39/59] Check to see if home section exists. --- Essentials/src/com/earth2me/essentials/UserData.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/UserData.java b/Essentials/src/com/earth2me/essentials/UserData.java index 643c45868..e540bd998 100644 --- a/Essentials/src/com/earth2me/essentials/UserData.java +++ b/Essentials/src/com/earth2me/essentials/UserData.java @@ -2,7 +2,6 @@ package com.earth2me.essentials; import java.io.File; import java.util.*; -import java.util.logging.Level; import java.util.logging.Logger; import org.bukkit.Location; import org.bukkit.Material; @@ -95,7 +94,10 @@ public abstract class UserData extends PlayerExtension implements IConf private Map _getHomes() { - return config.getConfigurationSection("homes").getValues(false); + if (config.isConfigurationSection("homes")) { + return config.getConfigurationSection("homes").getValues(false); + } + return new HashMap(); } public Location getHome(String name) throws Exception @@ -145,7 +147,6 @@ public abstract class UserData extends PlayerExtension implements IConf public List getHomes() { - ess.getLogger().log(Level.INFO, "player " + this.getName() + " homecount: " + homes.size()); return new ArrayList(homes.keySet()); } From 97157bc1fb48c663dbf12f132419c9f922f889ba Mon Sep 17 00:00:00 2001 From: KHobbits Date: Wed, 22 Feb 2012 00:10:13 +0000 Subject: [PATCH 40/59] Fix powertools with new config format. --- .../src/com/earth2me/essentials/UserData.java | 33 ++++++++----------- 1 file changed, 13 insertions(+), 20 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/UserData.java b/Essentials/src/com/earth2me/essentials/UserData.java index e540bd998..ea3201f28 100644 --- a/Essentials/src/com/earth2me/essentials/UserData.java +++ b/Essentials/src/com/earth2me/essentials/UserData.java @@ -94,8 +94,9 @@ public abstract class UserData extends PlayerExtension implements IConf private Map _getHomes() { - if (config.isConfigurationSection("homes")) { - return config.getConfigurationSection("homes").getValues(false); + if (config.isConfigurationSection("homes")) + { + return config.getConfigurationSection("homes").getValues(false); } return new HashMap(); } @@ -228,22 +229,15 @@ public abstract class UserData extends PlayerExtension implements IConf config.setProperty("unlimited", unlimited); config.save(); } - private Map powertools; + private Map powertools; - @SuppressWarnings("unchecked") - private Map _getPowertools() + private Map _getPowertools() { - Object o = config.getProperty("powertools"); - - if (o instanceof Map) + if (config.isConfigurationSection("powertools")) { - return (Map)o; + return config.getConfigurationSection("powertools").getValues(false); } - else - { - return new HashMap(); - } - + return new HashMap(); } public void clearAllPowertools() @@ -255,23 +249,23 @@ public abstract class UserData extends PlayerExtension implements IConf public List getPowertool(ItemStack stack) { - return (List)powertools.get(stack.getTypeId()); + return (List)powertools.get("" + stack.getTypeId()); } - + public List getPowertool(int id) { - return (List)powertools.get(id); + return (List)powertools.get("" + id); } public void setPowertool(ItemStack stack, List commandList) { if (commandList == null || commandList.isEmpty()) { - powertools.remove(stack.getTypeId()); + powertools.remove("" + stack.getTypeId()); } else { - powertools.put(stack.getTypeId(), commandList); + powertools.put("" + stack.getTypeId(), commandList); } config.setProperty("powertools", powertools); config.save(); @@ -732,7 +726,6 @@ public abstract class UserData extends PlayerExtension implements IConf return ret; } private boolean newplayer; - private String geolocation; private String _getGeoLocation() From c6b1a8af23f481f46a29b2bdbb5de0f7f94e8507 Mon Sep 17 00:00:00 2001 From: KHobbits Date: Wed, 22 Feb 2012 00:11:21 +0000 Subject: [PATCH 41/59] Switch powertools to use different event. Reduce multiple triggering of powertool events. Abort event when used with powertool. --- .../essentials/EssentialsPlayerListener.java | 103 ++++++++++-------- 1 file changed, 57 insertions(+), 46 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java b/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java index 8e151c3e9..a3b4559a2 100644 --- a/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java +++ b/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java @@ -282,44 +282,6 @@ public class EssentialsPlayerListener implements Listener { final User user = ess.getUser(event.getPlayer()); user.updateActivity(true); - if (event.getAnimationType() == PlayerAnimationType.ARM_SWING - && user.hasPowerTools() && user.arePowerToolsEnabled()) - { - usePowertools(user); - } - } - - private void usePowertools(final User user) - { - final ItemStack is = user.getItemInHand(); - int id; - if (is == null || (id = is.getTypeId()) == 0) - { - return; - } - final List commandList = user.getPowertool(id); - if (commandList == null || commandList.isEmpty()) - { - return; - } - - // We need to loop through each command and execute - for (String command : commandList) - { - if (command.matches(".*\\{player\\}.*")) - { - //user.sendMessage("Click a player to use this command"); - continue; - } - else if (command.startsWith("c:")) - { - user.chat(command.substring(2)); - } - else - { - user.getServer().dispatchCommand(user.getBase(), command); - } - } } @EventHandler(priority = EventPriority.MONITOR) @@ -365,19 +327,68 @@ public class EssentialsPlayerListener implements Listener @EventHandler(priority = EventPriority.MONITOR) public void onPlayerInteract(final PlayerInteractEvent event) { - if (event.isCancelled()) + switch (event.getAction()) { - return; - } - if (event.getAction() != Action.RIGHT_CLICK_BLOCK) - { - return; + case RIGHT_CLICK_BLOCK: + if (event.isCancelled()) + { + return; + } + if (ess.getSettings().getUpdateBedAtDaytime() && event.getClickedBlock().getType() == Material.BED_BLOCK) + { + event.getPlayer().setBedSpawnLocation(event.getClickedBlock().getLocation()); + } + break; + case LEFT_CLICK_AIR: + case LEFT_CLICK_BLOCK: + final User user = ess.getUser(event.getPlayer()); + if (user.hasPowerTools() && user.arePowerToolsEnabled()) + { + if (usePowertools(user)) + { + event.setCancelled(true); + } + } + break; + default: + break; } + } - if (ess.getSettings().getUpdateBedAtDaytime() && event.getClickedBlock().getType() == Material.BED_BLOCK) + private boolean usePowertools(final User user) + { + final ItemStack is = user.getItemInHand(); + int id; + if (is == null || (id = is.getTypeId()) == 0) { - event.getPlayer().setBedSpawnLocation(event.getClickedBlock().getLocation()); + return false; } + final List commandList = user.getPowertool(id); + if (commandList == null || commandList.isEmpty()) + { + return false; + } + boolean used = false; + // We need to loop through each command and execute + for (String command : commandList) + { + if (command.matches(".*\\{player\\}.*")) + { + //user.sendMessage("Click a player to use this command"); + continue; + } + else if (command.startsWith("c:")) + { + used = true; + user.chat(command.substring(2)); + } + else + { + used = true; + user.getServer().dispatchCommand(user.getBase(), command); + } + } + return used; } @EventHandler(priority = EventPriority.LOW) From 21b982f068ecd9e608d3dde3a79de8e38e8ed5ac Mon Sep 17 00:00:00 2001 From: KHobbits Date: Wed, 22 Feb 2012 00:22:22 +0000 Subject: [PATCH 42/59] Powertools dispatch commands as delayed tasks (should reduce any conflict issues). --- .../essentials/EssentialsPlayerListener.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java b/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java index a3b4559a2..9b964364b 100644 --- a/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java +++ b/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java @@ -370,7 +370,7 @@ public class EssentialsPlayerListener implements Listener } boolean used = false; // We need to loop through each command and execute - for (String command : commandList) + for (final String command : commandList) { if (command.matches(".*\\{player\\}.*")) { @@ -385,7 +385,15 @@ public class EssentialsPlayerListener implements Listener else { used = true; - user.getServer().dispatchCommand(user.getBase(), command); + ess.scheduleSyncDelayedTask( + new Runnable() + { + @Override + public void run() + { + user.getServer().dispatchCommand(user.getBase(), command); + } + }); } } return used; From 82471f953199d9f9100dca21773371d4ef72197e Mon Sep 17 00:00:00 2001 From: KHobbits Date: Wed, 22 Feb 2012 01:29:37 +0000 Subject: [PATCH 43/59] Extra command aliases. --- Essentials/src/plugin.yml | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/Essentials/src/plugin.yml b/Essentials/src/plugin.yml index b9cbd5227..9165febb2 100644 --- a/Essentials/src/plugin.yml +++ b/Essentials/src/plugin.yml @@ -26,7 +26,7 @@ commands: balance: description: States the current balance of a player. usage: / [player] - aliases: [bal,emoney,ebalance,ebal] + aliases: [bal,money,emoney,ebalance,ebal] balancetop: description: Gets the top balance values. usage: / @@ -58,11 +58,11 @@ commands: clearinventory: description: Clear all items in your inventory. usage: / - aliases: [ci,eci,eclearinventory] + aliases: [ci,eci,clearinvent,eclearinvent,eclearinventory] compass: description: Describes your current bearing. usage: / - aliases: [ecompass] + aliases: [ecompass,direction,edirection] delhome: description: Removes a home usage: / [player:] @@ -97,7 +97,7 @@ commands: feed: description: Satisfy the hunger. usage: / [player] - aliases: [efeed] + aliases: [efeed,eat,eeat] itemdb: description: Searches for an item. usage: / @@ -113,7 +113,7 @@ commands: getpos: description: Get your current coordinates or those of a player. usage: / [player] - aliases: [coords,egetpos,whereami,ewhereami] + aliases: [coords,egetpos,position,eposition,whereami,ewhereami] gc: description: Reports garbage collection info; useful to developers. usage: / @@ -141,7 +141,7 @@ commands: home: description: Teleport to your home. usage: / [player:][name] - aliases: [ehome] + aliases: [ehome,homes,ehomes] ignore: description: Ignore other players. usage: / @@ -165,7 +165,7 @@ commands: jump: description: Jumps to the nearest block in the line of sight. usage: / - aliases: [j,ejump] + aliases: [j,ej,jumpto,ejumpto,ejump] kick: description: Kicks a specified player with a reason. usage: / [reason] @@ -177,7 +177,7 @@ commands: kit: description: Obtains the specified kit or views all available kits. usage: / [kit] - aliases: [ekit,kits] + aliases: [ekit,kits,ekits] kill: description: Kills specified player. usage: / @@ -189,7 +189,7 @@ commands: list: description: List all online players. usage: / - aliases: [playerlist,who,online,elist,ewho,eplayerlist,eonline] + aliases: [playerlist,who,online,plist,eplist,elist,ewho,eplayerlist,eonline] lightning: description: The power of Thor. Strike at cursor or player. usage: / [player] [power] @@ -237,7 +237,7 @@ commands: ping: description: Pong! usage: / - aliases: [pong,eping,epong] + aliases: [pong,echo,echo,eping,epong] powertool: description: Assigns a command to the item in hand, {player} will be replaced by the name of the player that you click. usage: / [l:|a:|r:|c:|d:][command] [arguments] @@ -245,7 +245,7 @@ commands: powertooltoggle: description: Enables or disables all current powertools usage: / - aliases: [ptt,epowertooltoggle,eptt] + aliases: [ptt,epowertooltoggle,pttoggle,epttoggle,eptt] ptime: description: Adjust player's client time. Add @ prefix to fix. usage: / [list|reset|day|night|dawn|17:30|4pm|4000ticks] [player|*] @@ -337,11 +337,11 @@ commands: tp: description: Teleport to a player. usage: / [otherplayer] - aliases: [tele,etele,etp,tp2p,etp2p] + aliases: [tele,teleport,eteleport,etele,etp,tp2p,etp2p] tpa: description: Request to teleport to the specified player. usage: / - aliases: [call,etpa,ecall] + aliases: [call,tpask,etpask,etpa,ecall] tpaall: description: Requests all players online to teleport to you. usage: / @@ -389,11 +389,11 @@ commands: unban: description: Unbans the specified player. usage: / - aliases: [pardon,eunban] + aliases: [pardon,eunban,epardon] unbanip: description: Unbans the specified IP address. usage: /
- aliases: [eunbanip,pardonip] + aliases: [eunbanip,pardonip,epardonip] unlimited: description: Allows the unlimited placing of items. usage: / [player] @@ -401,7 +401,7 @@ commands: warp: description: List all warps or warp to the specified location. usage: / [player] - aliases: [ewarp,warps] + aliases: [ewarp,warps,ewarps] weather: description: Setting the weather. usage: / [duration] @@ -417,4 +417,4 @@ commands: worth: description: Calculates the worth of items in hand or as specified. usage: / [item] [amount] - aliases: [eworth] + aliases: [eworth,price,eprice] From d0acabaaa092390c8f99b8acb44ed61a1c32be41 Mon Sep 17 00:00:00 2001 From: KHobbits Date: Wed, 22 Feb 2012 12:32:51 +0000 Subject: [PATCH 44/59] Fixing kits for new config classes. --- .../com/earth2me/essentials/ISettings.java | 5 ++-- .../src/com/earth2me/essentials/Kit.java | 7 +++--- .../src/com/earth2me/essentials/Settings.java | 24 ++++++++++++------- .../essentials/commands/Commandkit.java | 8 +++---- 4 files changed, 26 insertions(+), 18 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/ISettings.java b/Essentials/src/com/earth2me/essentials/ISettings.java index b7a128ebc..e567673b6 100644 --- a/Essentials/src/com/earth2me/essentials/ISettings.java +++ b/Essentials/src/com/earth2me/essentials/ISettings.java @@ -8,6 +8,7 @@ import java.util.List; import java.util.Map; import java.util.Set; import org.bukkit.ChatColor; +import org.bukkit.configuration.ConfigurationSection; import org.bukkit.event.EventPriority; @@ -39,9 +40,9 @@ public interface ISettings extends IConf double getHealCooldown(); - Object getKit(String name); + Map getKit(String name); - Map getKits(); + ConfigurationSection getKits(); String getLocale(); diff --git a/Essentials/src/com/earth2me/essentials/Kit.java b/Essentials/src/com/earth2me/essentials/Kit.java index 53d2e8784..88816368c 100644 --- a/Essentials/src/com/earth2me/essentials/Kit.java +++ b/Essentials/src/com/earth2me/essentials/Kit.java @@ -5,6 +5,7 @@ import com.earth2me.essentials.commands.NoChargeException; import com.earth2me.essentials.craftbukkit.InventoryWorkaround; import java.util.*; import org.bukkit.Material; +import org.bukkit.configuration.ConfigurationSection; import org.bukkit.inventory.ItemStack; @@ -15,16 +16,16 @@ public class Kit { try { - final Map kits = ess.getSettings().getKits(); + final ConfigurationSection kits = ess.getSettings().getKits(); final StringBuilder list = new StringBuilder(); - for (String kiteItem : kits.keySet()) + for (String kiteItem : kits.getKeys(false)) { if (user.isAuthorized("essentials.kit." + kiteItem.toLowerCase(Locale.ENGLISH))) { list.append(" ").append(kiteItem); } } - return list.toString(); + return list.toString().trim(); } catch (Exception ex) { diff --git a/Essentials/src/com/earth2me/essentials/Settings.java b/Essentials/src/com/earth2me/essentials/Settings.java index 218a9163c..40fb47f6c 100644 --- a/Essentials/src/com/earth2me/essentials/Settings.java +++ b/Essentials/src/com/earth2me/essentials/Settings.java @@ -14,6 +14,7 @@ import java.util.*; import java.util.logging.Level; import java.util.logging.Logger; import org.bukkit.ChatColor; +import org.bukkit.configuration.ConfigurationSection; import org.bukkit.event.EventPriority; import org.bukkit.inventory.ItemStack; @@ -211,23 +212,28 @@ public class Settings implements ISettings } @Override - public Object getKit(String name) + public Map getKit(String name) { - Map kits = (Map)config.get("kits"); - for (Map.Entry entry : kits.entrySet()) + name = name.replace('.', '_').replace('/', '_'); + if (config.isConfigurationSection("kits")) { - if (entry.getKey().equalsIgnoreCase(name.replace('.', '_').replace('/', '_'))) + final ConfigurationSection kits = getKits(); + if (kits.isConfigurationSection(name)) { - return entry.getValue(); - } + return kits.getConfigurationSection(name).getValues(true); + } } return null; } @Override - public Map getKits() + public ConfigurationSection getKits() { - return (Map)config.get("kits"); + if (config.isConfigurationSection("kits")) + { + return config.getConfigurationSection("kits"); + } + return null; } @Override @@ -328,7 +334,7 @@ public class Settings implements ISettings @Override public IText getAnnounceNewPlayerFormat() { - return new SimpleTextInput(Util.replaceColor(config.getString("newbies.announce-format", "&dWelcome {DISPLAYNAME} to the server!"))); + return new SimpleTextInput(Util.replaceColor(config.getString("newbies.announce-format", "&dWelcome {DISPLAYNAME} to the server!"))); } @Override diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandkit.java b/Essentials/src/com/earth2me/essentials/commands/Commandkit.java index c003d28ac..aee0af910 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandkit.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandkit.java @@ -32,16 +32,16 @@ public class Commandkit extends EssentialsCommand else { final String kitName = args[0].toLowerCase(Locale.ENGLISH); - final Object kit = ess.getSettings().getKit(kitName); + final Map kit = ess.getSettings().getKit(kitName); if (!user.isAuthorized("essentials.kit." + kitName)) { throw new Exception(_("noKitPermission", "essentials.kit." + kitName)); } - final Map els = (Map)kit; - final List items = Kit.getItems(user, els); + + final List items = Kit.getItems(user, kit); - Kit.checkTime(user, kitName, els); + Kit.checkTime(user, kitName, kit); final Trade charge = new Trade("kit-" + kitName, ess); charge.isAffordableFor(user); From 7b13aebc5ad3998512419f80cb3a3dffdaf46600 Mon Sep 17 00:00:00 2001 From: KHobbits Date: Thu, 23 Feb 2012 14:49:23 +0000 Subject: [PATCH 45/59] Fixing upgrade script to allow powertool upgrade. --- .../src/com/earth2me/essentials/EssentialsUpgrade.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/EssentialsUpgrade.java b/Essentials/src/com/earth2me/essentials/EssentialsUpgrade.java index 26e6f25bc..f70f0c091 100644 --- a/Essentials/src/com/earth2me/essentials/EssentialsUpgrade.java +++ b/Essentials/src/com/earth2me/essentials/EssentialsUpgrade.java @@ -271,18 +271,18 @@ public class EssentialsUpgrade if (config.hasProperty("powertools")) { @SuppressWarnings("unchecked") - final Map powertools = (Map)config.getProperty("powertools"); + final Map powertools = config.getConfigurationSection("powertools").getValues(false); if (powertools == null) { continue; } - for (Map.Entry entry : powertools.entrySet()) + for (Map.Entry entry : powertools.entrySet()) { if (entry.getValue() instanceof String) { List temp = new ArrayList(); temp.add((String)entry.getValue()); - ((Map)powertools).put(entry.getKey(), temp); + ((Map)powertools).put(entry.getKey(), temp); } } config.save(); From 2fbacc8f606e47cd804d57157796f7114c4f41c5 Mon Sep 17 00:00:00 2001 From: KHobbits Date: Thu, 23 Feb 2012 15:17:23 +0000 Subject: [PATCH 46/59] Balance top now has server total on first line. Balance top will update ess balance backup if using register/vault eco. --- .../src/com/earth2me/essentials/User.java | 8 ++ .../commands/Commandbalancetop.java | 10 ++- Essentials/src/messages.properties | 75 +++++++++--------- Essentials/src/messages_da.properties | 77 ++++++++++--------- Essentials/src/messages_de.properties | 3 +- Essentials/src/messages_en.properties | 77 ++++++++++--------- Essentials/src/messages_es.properties | 75 +++++++++--------- Essentials/src/messages_fr.properties | 77 ++++++++++--------- Essentials/src/messages_nl.properties | 75 +++++++++--------- 9 files changed, 249 insertions(+), 228 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/User.java b/Essentials/src/com/earth2me/essentials/User.java index b289333aa..ce4d1ce27 100644 --- a/Essentials/src/com/earth2me/essentials/User.java +++ b/Essentials/src/com/earth2me/essentials/User.java @@ -381,6 +381,14 @@ public class User extends UserData implements Comparable, IReplyTo, IUser super.setMoney(value); } + public void updateMoneyCache(final double value) + { + if (ess.getPaymentMethod().hasMethod()) + { + super.setMoney(value); + } + } + @Override public void setAfk(final boolean set) { diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandbalancetop.java b/Essentials/src/com/earth2me/essentials/commands/Commandbalancetop.java index 672f1c6ca..fffb69ea4 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandbalancetop.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandbalancetop.java @@ -105,14 +105,18 @@ public class Commandbalancetop extends EssentialsCommand { if (force || cacheage <= System.currentTimeMillis() - CACHETIME) { - cache.getLines().clear(); + cache.getLines().clear(); final Map balances = new HashMap(); + double totalMoney = 0d; for (String u : ess.getUserMap().getAllUniqueUsers()) { final User user = ess.getUserMap().getUser(u); if (user != null) { - balances.put(user.getDisplayName(), user.getMoney()); + final double userMoney = user.getMoney(); + user.updateMoneyCache(userMoney); + totalMoney += userMoney; + balances.put(user.getDisplayName(), userMoney); } } @@ -125,6 +129,8 @@ public class Commandbalancetop extends EssentialsCommand return -entry1.getValue().compareTo(entry2.getValue()); } }); + + cache.getLines().add(_("serverTotal", Util.formatCurrency(totalMoney, ess))); int pos = 1; for (Map.Entry entry : sortedEntries) { diff --git a/Essentials/src/messages.properties b/Essentials/src/messages.properties index ec55210b0..8489b6262 100644 --- a/Essentials/src/messages.properties +++ b/Essentials/src/messages.properties @@ -11,9 +11,9 @@ alertPlaced=placed: alertUsed=used: autoAfkKickReason=You have been kicked for idling more than {0} minutes. backAfterDeath=\u00a77Use the /back command to return to your death point. -backUsageMsg=\u00a77Returning to previous location. backupFinished=Backup finished backupStarted=Backup started +backUsageMsg=\u00a77Returning to previous location. balance=\u00a77Balance: {0} balanceTop=\u00a77Top balances ({0}) banExempt=\u00a7cYou can not ban that player. @@ -64,14 +64,14 @@ depth=\u00a77You are at sea level. depthAboveSea=\u00a77You are {0} block(s) above sea level. depthBelowSea=\u00a77You are {0} block(s) below sea level. destinationNotSet=Destination not set -disableUnlimited=\u00a77Disabled unlimited placing of {0} for {1}. disabled=disabled disabledToSpawnMob=Spawning this mob was disabled in the config file. +disableUnlimited=\u00a77Disabled unlimited placing of {0} for {1}. dontMoveMessage=\u00a77Teleportation will commence in {0}. Don''t move. downloadingGeoIp=Downloading GeoIP database ... this might take a while (country: 0.6 MB, city: 20MB) duplicatedUserdata=Duplicated userdata: {0} and {1} -enableUnlimited=\u00a77Giving unlimited amount of {0} to {1}. enabled=enabled +enableUnlimited=\u00a77Giving unlimited amount of {0} to {1}. enchantmentApplied = \u00a77The enchantment {0} has been applied to your item in hand. enchantmentNotFound = \u00a7cEnchantment not found enchantmentPerm = \u00a7cYou do not have the permission for {0} @@ -99,9 +99,9 @@ gcentities= entities gcfree=Free memory: {0} MB gcmax=Maximum memory: {0} MB gctotal=Allocated memory: {0} MB +geoipJoinFormat=Player {0} comes from {1} geoIpUrlEmpty=GeoIP download url is empty. geoIpUrlInvalid=GeoIP download url is invalid. -geoipJoinFormat=Player {0} comes from {1} godDisabledFor=disabled for {0} godEnabledFor=enabled for {0} godMode=\u00a77God mode {0}. @@ -112,9 +112,9 @@ helpConsole=To view help from the console, type ?. helpOp=\u00a7c[HelpOp]\u00a7f \u00a77{0}:\u00a7f {1} helpPages=Page \u00a7c{0}\u00a7f of \u00a7c{1}\u00a7f: holeInFloor=Hole in floor +homes=Homes: {0} homeSet=\u00a77Home set. homeSetToBed=\u00a77Your home is now set to this bed. -homes=Homes: {0} hour=hour hours=hours ignorePlayer=You ignore player {0} from now on. @@ -124,28 +124,28 @@ infoChapterPages=Chapter {0}, page \u00a7c{1}\u00a7f of \u00a7c{2}\u00a7f: infoFileDoesNotExist=File info.txt does not exist. Creating one for you. infoPages=Page \u00a7c{0}\u00a7f of \u00a7c{1}\u00a7f: infoUnknownChapter=Unknown chapter. -invBigger=The other users inventory is bigger than yours. -invRestored=Your inventory has been restored. -invSee=You see the inventory of {0}. -invSeeHelp=Use /invsee to restore your inventory. invalidCharge=\u00a7cInvalid charge. invalidMob=Invalid mob type. invalidServer=Invalid server! invalidSignLine=Line {0} on sign is invalid. invalidWorld=\u00a7cInvalid world. +invBigger=The other users inventory is bigger than yours. inventoryCleared=\u00a77Inventory Cleared. inventoryClearedOthers=\u00a77Inventory of \u00a7c{0}\u00a77 cleared. +invRestored=Your inventory has been restored. +invSee=You see the inventory of {0}. +invSeeHelp=Use /invsee to restore your inventory. is=is itemCannotBeSold=That item cannot be sold to the server. itemMustBeStacked=Item must be traded in stacks. A quantity of 2s would be two stacks, etc. itemNotEnough1=\u00a7cYou do not have enough of that item to sell. itemNotEnough2=\u00a77If you meant to sell all of your items of that type, use /sell itemname itemNotEnough3=\u00a77/sell itemname -1 will sell all but one item, etc. +itemsCsvNotLoaded=Could not load items.csv. itemSellAir=You really tried to sell Air? Put an item in your hand. itemSold=\u00a77Sold for \u00a7c{0} \u00a77({1} {2} at {3} each) itemSoldConsole={0} sold {1} for \u00a77{2} \u00a77({3} items at {4} each) itemSpawn=\u00a77Giving {0} of {1} -itemsCsvNotLoaded=Could not load items.csv. jailAlreadyIncarcerated=\u00a7cPerson is already in jail: {0} jailMessage=\u00a7cYou do the crime, you do the time. jailNotExist=That jail does not exist. @@ -162,8 +162,8 @@ kitError=\u00a7cThere are no valid kits. kitErrorHelp=\u00a7cPerhaps an item is missing a quantity in the configuration? kitGive=\u00a77Giving kit {0}. kitInvFull=\u00a7cYour inventory was full, placing kit on the floor -kitTimed=\u00a7cYou can''t use that kit again for another {0}. kits=\u00a77Kits: {0} +kitTimed=\u00a7cYou can''t use that kit again for another {0}. lightningSmited=\u00a77You have just been smited lightningUse=\u00a77Smiting {0} listAfkTag = \u00a77[AFK]\u00a7f @@ -175,9 +175,9 @@ localFormat=Local: <{0}> {1} mailClear=\u00a7cTo mark your mail as read, type /mail clear mailCleared=\u00a77Mail Cleared! mailSent=\u00a77Mail sent! -markMailAsRead=\u00a7cTo mark your mail as read, type /mail clear markedAsAway=\u00a77You are now marked as away. markedAsNotAway=\u00a77You are no longer marked as away. +markMailAsRead=\u00a7cTo mark your mail as read, type /mail clear maxHomes=You cannot set more than {0} homes. mayNotJail=\u00a7cYou may not jail that person me=me @@ -185,10 +185,10 @@ minute=minute minutes=minutes missingItems=You do not have {0}x {1}. missingPrefixSuffix=Missing a prefix or suffix for {0} +mobsAvailable=\u00a77Mobs: {0} mobSpawnError=Error while changing mob spawner. mobSpawnLimit=Mob quantity limited to server limit mobSpawnTarget=Target block must be a mob spawner. -mobsAvailable=\u00a77Mobs: {0} moneyRecievedFrom=\u00a7a{0} has been received from {1} moneySentTo=\u00a7a{0} has been sent to {1} moneyTaken={0} taken from your bank account. @@ -196,10 +196,10 @@ month=month months=months moreThanZero=Quantities must be greater than 0. msgFormat=\u00a77[{0}\u00a77 -> {1}\u00a77] \u00a7f{2} -muteExempt=\u00a7cYou may not mute that player. mutedPlayer=Player {0} muted. mutedPlayerFor=Player {0} muted for {1}. mutedUserSpeaks={0} tried to speak, but is muted. +muteExempt=\u00a7cYou may not mute that player. nearbyPlayers=Players nearby: {0} needTpohere=You need access to /tpohere to teleport other players. negativeBalanceError=User is not allowed to have a negative balance. @@ -221,6 +221,7 @@ noKitPermission=\u00a7cYou need the \u00a7c{0}\u00a7c permission to use that kit noKits=\u00a77There are no kits available yet noMail=You do not have any mail noMotd=\u00a7cThere is no message of the day. +none=none noNewMail=\u00a77You have no new mail. noPendingRequest=You do not have a pending request. noPerm=\u00a7cYou do not have the \u00a7f{0}\u00a7c permission. @@ -228,30 +229,21 @@ noPermToSpawnMob=\u00a7cYou don''t have permission to spawn this mob. noPlacePermission=\u00a7cYou do not have permission to place a block near that sign. noPowerTools=You have no power tools assigned. noRules=\u00a7cThere are no rules specified yet. -noWarpsDefined=No warps defined -none=none notAllowedToQuestion=\u00a7cYou are not authorized to use question. notAllowedToShout=\u00a7cYou are not authorized to shout. notEnoughExperience=You do not have enough experience. notEnoughMoney=You do not have sufficient funds. +nothingInHand = \u00a7cYou have nothing in your hand. notRecommendedBukkit= * ! * Bukkit version is not the recommended build for Essentials. notSupportedYet=Not supported yet. -nothingInHand = \u00a7cYou have nothing in your hand. now=now +noWarpsDefined=No warps defined nuke=May death rain upon them numberRequired=A number goes there, silly. onlyDayNight=/time only supports day/night. onlyPlayers=Only in-game players can use {0}. onlySunStorm=/weather only supports sun/storm. orderBalances=Ordering balances of {0} users, please wait ... -pTimeCurrent=\u00a7e{0}''s\u00a7f time is {1}. -pTimeCurrentFixed=\u00a7e{0}''s\u00a7f time is fixed to {1}. -pTimeNormal=\u00a7e{0}''s\u00a7f time is normal and matches the server. -pTimeOthersPermission=\u00a7cYou are not authorized to set other players'' time. -pTimePlayers=These players have their own time: -pTimeReset=Player time has been reset for: \u00a7e{0} -pTimeSet=Player time is set to \u00a73{0}\u00a7f for: \u00a7e{1} -pTimeSetFixed=Player time is fixed to \u00a73{0}\u00a7f for: \u00a7e{1} parseError=Error parsing {0} on line {1} pendingTeleportCancelled=\u00a7cPending teleportation request cancelled. permissionsError=Missing Permissions/GroupManager; chat prefixes/suffixes will be disabled. @@ -279,6 +271,14 @@ powerToolRemoveAll=All commands removed from {0}. powerToolsDisabled=All of your power tools have been disabled. powerToolsEnabled=All of your power tools have been enabled. protectionOwner=\u00a76[EssentialsProtect] Protection owner: {0} +pTimeCurrent=\u00a7e{0}''s\u00a7f time is {1}. +pTimeCurrentFixed=\u00a7e{0}''s\u00a7f time is fixed to {1}. +pTimeNormal=\u00a7e{0}''s\u00a7f time is normal and matches the server. +pTimeOthersPermission=\u00a7cYou are not authorized to set other players'' time. +pTimePlayers=These players have their own time: +pTimeReset=Player time has been reset for: \u00a7e{0} +pTimeSet=Player time is set to \u00a73{0}\u00a7f for: \u00a7e{1} +pTimeSetFixed=Player time is fixed to \u00a73{0}\u00a7f for: \u00a7e{1} questionFormat=\u00a77[Question]\u00a7f {0} readNextPage=Type /{0} {1} to read the next page reloadAllPlugins=\u00a77Reloaded all plugins. @@ -301,6 +301,7 @@ seconds=seconds seenOffline=Player {0} is offline since {1} seenOnline=Player {0} is online since {1} serverFull=Server is full +serverTotal=Server Total: {0} setSpawner=Changed spawner type to {0} sheepMalformedColor=Malformed color. shoutFormat=\u00a77[Shout]\u00a7f {0} @@ -311,8 +312,8 @@ signProtectInvalidLocation=\u00a74You are not allowed to create sign here. similarWarpExist=A warp with a similar name already exists. slimeMalformedSize=Malformed size. soloMob=That mob likes to be alone -spawnSet=\u00a77Spawn location set for group {0}. spawned=spawned +spawnSet=\u00a77Spawn location set for group {0}. suicideMessage=\u00a77Goodbye Cruel World... suicideSuccess= \u00a77{0} took their own life survival=survival @@ -320,20 +321,20 @@ takenFromAccount=\u00a7c{0} has been taken from your account. takenFromOthersAccount=\u00a7c{0} has been taken from {1} account. teleportAAll=\u00a77Teleporting request sent to all players... teleportAll=\u00a77Teleporting all players... +teleportationCommencing=\u00a77Teleportation commencing... +teleportationDisabled=\u00a77Teleportation disabled. +teleportationEnabled=\u00a77Teleportation enabled. teleportAtoB=\u00a77{0}\u00a77 teleported you to {1}\u00a77. teleportDisabled={0} has teleportation disabled. teleportHereRequest=\u00a7c{0}\u00a7c has requested that you teleport to them. +teleporting=\u00a77Teleporting... +teleportingPortal=\u00a77Teleporting via portal. teleportNewPlayerError=Failed to teleport new player teleportRequest=\u00a7c{0}\u00a7c has requested to teleport to you. teleportRequestTimeoutInfo=\u00a77This request will timeout after {0} seconds. teleportTop=\u00a77Teleporting to top. -teleportationCommencing=\u00a77Teleportation commencing... -teleportationDisabled=\u00a77Teleportation disabled. -teleportationEnabled=\u00a77Teleportation enabled. -teleporting=\u00a77Teleporting... -teleportingPortal=\u00a77Teleporting via portal. -tempBanned=Temporarily banned from server for {0} tempbanExempt=\u00a77You may not tempban that player +tempBanned=Temporarily banned from server for {0} thunder= You {0} thunder in your world thunderDuration=You {0} thunder in your world for {1} seconds. timeBeforeHeal=Time before next heal: {0} @@ -364,25 +365,25 @@ unlimitedItemPermission=\u00a7cNo permission for unlimited item {0}. unlimitedItems=Unlimited items: unmutedPlayer=Player {0} unmuted. upgradingFilesError=Error while upgrading the files +userdataMoveBackError=Failed to move userdata/{0}.tmp to userdata/{1} +userdataMoveError=Failed to move userdata/{0} to userdata/{1}.tmp userDoesNotExist=The user {0} does not exist. userIsAway={0} is now AFK userIsNotAway={0} is no longer AFK userJailed=\u00a77You have been jailed userUsedPortal={0} used an existing exit portal. -userdataMoveBackError=Failed to move userdata/{0}.tmp to userdata/{1} -userdataMoveError=Failed to move userdata/{0} to userdata/{1}.tmp usingTempFolderForTesting=Using temp folder for testing: versionMismatch=Version mismatch! Please update {0} to the same version. versionMismatchAll=Version mismatch! Please update all Essentials jars to the same version. voiceSilenced=\u00a77Your voice has been silenced warpDeleteError=Problem deleting the warp file. +warpingTo=\u00a77Warping to {0}. warpListPermission=\u00a7cYou do not have Permission to list warps. warpNotExist=That warp does not exist. -warpSet=\u00a77Warp {0} set. -warpUsePermission=\u00a7cYou do not have Permission to use that warp. -warpingTo=\u00a77Warping to {0}. warps=Warps: {0} warpsCount=\u00a77There are {0} warps. Showing page {1} of {2}. +warpSet=\u00a77Warp {0} set. +warpUsePermission=\u00a7cYou do not have Permission to use that warp. weatherStorm=\u00a77You set the weather to storm in {0} weatherStormFor=\u00a77You set the weather to storm in {0} for {1} seconds weatherSun=\u00a77You set the weather to sun in {0} diff --git a/Essentials/src/messages_da.properties b/Essentials/src/messages_da.properties index 03bbe6f78..82145afc1 100644 --- a/Essentials/src/messages_da.properties +++ b/Essentials/src/messages_da.properties @@ -11,11 +11,11 @@ alertPlaced=placerede: alertUsed=brugte: autoAfkKickReason=Du er blevet kicked for at idle mere end {0} minutter. backAfterDeath=\u00a77Brug /back kommandoen for at teleportere til dit d\u00f8dspunkt. -backUsageMsg=\u00a77Teleporterer til tidligere placering. backupFinished=Backup sluttet backupStarted=Backup startet +backUsageMsg=\u00a77Teleporterer til tidligere placering. balance=\u00a77Saldo: {0} -balanceTop=\u00a77 Top saldoer ({0}) +balanceTop=\u00a77Top saldoer ({0}) banExempt=\u00a7cDu kan ikke banne den p\u00e5g\u00e6ldende spiller. banIpAddress=\u00a77Bannede IP addresse bannedIpsFileError=Fejl i afl\u00e6sning af banned-ips.txt @@ -64,14 +64,14 @@ depth=\u00a77Du er ved havoverfladen. depthAboveSea=\u00a77Du er {0} blok(ke) over havets overflade. depthBelowSea=\u00a77Du er {0} blok(ke) under havets overflade. destinationNotSet=Destination ikke sat -disableUnlimited=\u00a77Deaktiverede ubergr\u00e6nset placering af {0} for {1}. disabled=deaktiveret disabledToSpawnMob=Skabelse af denne mob er deaktiveret i configfilen. +disableUnlimited=\u00a77Deaktiverede ubergr\u00e6nset placering af {0} for {1}. dontMoveMessage=\u00a77Teleportering vil begynde om {0}. Bev\u00e6g dig ikke. downloadingGeoIp=Downloader GeoIP database... det her kan tage et stykke tid (land: 0.6 MB, by: 27MB) duplicatedUserdata=Duplikerede userdata: {0} og {1} -enableUnlimited=\u00a77Giver ubegr\u00e6nset m\u00e6ngde af {0} til {1}. enabled=aktiveret +enableUnlimited=\u00a77Giver ubegr\u00e6nset m\u00e6ngde af {0} til {1}. enchantmentApplied = \u00a77Enchantment {0} er blevet tilf\u00c3\u00b8jet til tingen i din h\u00c3\u00a5nd. enchantmentNotFound = \u00a7cEnchantment ikke fundet. enchantmentPerm = \u00a7cDu har ikke tilladelse til at {0} @@ -99,9 +99,9 @@ gcentities= entities gcfree=Free memory: {0} MB gcmax=Maximum memory: {0} MB gctotal=Allocated memory: {0} MB +geoipJoinFormat=Spilleren {0} kommer fra {1} geoIpUrlEmpty=GeoIP download url er tom. geoIpUrlInvalid=GeoIP download url er ugyldig. -geoipJoinFormat=Spilleren {0} kommer fra {1} godDisabledFor=deaktiveret for {0} godEnabledFor=aktiveret for {0} godMode=\u00a77Gud mode {0}. @@ -112,9 +112,9 @@ helpConsole=For at se hj\u00e6lp fra konsolen, skriv ?. helpOp=\u00a7c[HelpOp]\u00a7f \u00a77{0}:\u00a7f {1} helpPages=Side \u00a7c{0}\u00a7f af \u00a7c{1}\u00a7f: holeInFloor=Hul i gulv +homes=Hjem: {0} homeSet=\u00a77Hjem sat. homeSetToBed=\u00a77Dit hjem er nu sat til denne seng. -homes=Hjem: {0} hour=time hours=timer ignorePlayer=Du ignorerer spiller {0} fra nu af. @@ -124,28 +124,28 @@ infoChapterPages=Kapitel {0}, side \u00a7c{1}\u00a7f af \u00a7c{2}\u00a7f: infoFileDoesNotExist=Fil info.txt eksisterer ikke. Fixer liiige en for dig. infoPages=Side \u00a7c{0}\u00a7f af \u00a7c{1}\u00a7f: infoUnknownChapter=Ukendt kapitel. -invBigger=Den anden brugers inventory er st\u00f8rre end din. -invRestored=Din inventory er blevet genoprettet. -invSee=Du ser {0}''s inventory. -invSeeHelp=Brug /invsee for at genoprette din inventory. invalidCharge=\u00a7cUgyldig opladning (korrekt oversat?). invalidMob=Ugyldig mob type. invalidServer=Ugyldig server! invalidSignLine=Linje {0} p\u00e5 skilt er ugyldig. invalidWorld=\u00a7cUgyldig verden. +invBigger=Den anden brugers inventory er st\u00f8rre end din. inventoryCleared=\u00a77Inventory ryddet. inventoryClearedOthers=\u00a7c{0}\u00a77''s inventory ryddet. +invRestored=Din inventory er blevet genoprettet. +invSee=Du ser {0}''s inventory. +invSeeHelp=Brug /invsee for at genoprette din inventory. is=er itemCannotBeSold=Denne ting kan ikke s\u00e6lges til serveren. itemMustBeStacked=Tingen skal handles i stakke. En m\u00e6ngde af 2s ville v\u00e6re to stakke, osv. itemNotEnough1=\u00a7cDu har ikke nok af denne ting til at kunne s\u00e6lge. itemNotEnough2=\u00a77Hvis du mente, at du ville s\u00c3\u00a6lge alle ting af den type, brug da /sell tingens-navn itemNotEnough3=\u00a77/sell ting-navn -1 vil s\u00e6lge alle enheder, undtagen \u00c3\u00a9n, osv. +itemsCsvNotLoaded=Kunne ikke loade items.csv. itemSellAir=Fors\u00f8gte du virkelig at s\u00e6lge luft? Kom en ting i h\u00e5nden, hattemand. itemSold=\u00a77Solgte til \u00a7c{0} \u00a77({1} {2} ting for {3} pr. stk.) itemSoldConsole={0} solgte {1} til \u00a77{2} \u00a77({3} ting for {4} pr. stk.) itemSpawn=\u00a77Giver {0} af {1} -itemsCsvNotLoaded=Kunne ikke loade items.csv. jailAlreadyIncarcerated=\u00a7cSpilleren er allerede i f\u00c3\u00a6ngsel: {0} jailMessage=\u00a7cDu bryder reglerne, du tager straffen. jailNotExist=Det f\u00e6ngsel eksisterer ikke. @@ -162,8 +162,8 @@ kitError=\u00a7cDer er ikke nogen gyldige kits. kitErrorHelp=\u00a7cM\u00e5ske mangler en ting en m\u00e6ngde i konfigurationen? Eller m\u00c3\u00a5ske er der nisser p\u00c3\u00a5 spil? kitGive=\u00a77Giver kit til {0} (oversat korrekt?). kitInvFull=\u00a7cDin inventory er fuld, placerer kit p\u00e5 gulvet. -kitTimed=\u00a7cDu kan ikke benytte dette kit igen i {0}. kits=\u00a77Kits: {0} +kitTimed=\u00a7cDu kan ikke benytte dette kit igen i {0}. lightningSmited=\u00a77Du er blevet ramt af Guds vrede (din admin) lightningUse=\u00a77Kaster lyn efter {0} listAfkTag = \u00a77[AFK]\u00a7f @@ -175,9 +175,9 @@ localFormat=Local: <{0}> {1} mailClear=\u00a7cFor at markere din flaskepost som l\u00e6st, skriv /mail clear mailCleared=\u00a77Flaskepot ryddet! mailSent=\u00a77Flaskepot sendt! -markMailAsRead=\u00a7cFor at markere din flaskepost som l\u00e6st, skriv /mail clear markedAsAway=\u00a77Du er nu markeret som v\u00c3\u00a6rende ikke tilstede. markedAsNotAway=\u00a77Du er ikke l\u00e6ngere markeret som v\u00c3\u00a6rende ikke tilstede. +markMailAsRead=\u00a7cFor at markere din flaskepost som l\u00e6st, skriv /mail clear maxHomes=Du kan ikke have mere end {0} hjem. mayNotJail=\u00a7cDu kan ikke smide denne person i f\u00c3\u00a6ngsel. me=mig @@ -185,10 +185,10 @@ minute=minut minutes=minutter missingItems=Du har ikke {0}x {1}. missingPrefixSuffix=Mangler et pr\u00e6fiks eller suffiks for {0} +mobsAvailable=\u00a77Mobs: {0} mobSpawnError=Fejl ved \u00e6ndring af mob spawner. mobSpawnLimit=Mob m\u00e6ngde begr\u00e6nset til serverens fastsatte gr\u00e6nse. mobSpawnTarget=M\u00e5l blok skal v\u00e6re en mob spawner. -mobsAvailable=\u00a77Mobs: {0} moneyRecievedFrom=\u00a7a{0} er modtaget fra {1} moneySentTo=\u00a7a{0} er sendt til {1} moneyTaken={0} blev taget fra din bankkonto. @@ -196,10 +196,10 @@ month=m\u00e5nede months=m\u00e5neder moreThanZero=M\u00e6ngder skal v\u00e6re st\u00f8rre end 0. msgFormat=\u00a77[{0}\u00a77 -> {1}\u00a77] \u00a7f{2} -muteExempt=\u00a7cDu kan ikke mute denne spiller. mutedPlayer=Spiller {0} muted. mutedPlayerFor=Spiller {0} muted i {1}. mutedUserSpeaks={0} pr\u00f8vede at snakke, men er muted. +muteExempt=\u00a7cDu kan ikke mute denne spiller. nearbyPlayers=Spillere i n\u00c3\u00a6rheden: {0} needTpohere=Du skal have adgang til /tpohere for at teleportere andre spillere. negativeBalanceError=Brugeren har ikke tilladelse til at have en negativ saldo. @@ -221,6 +221,7 @@ noKitPermission=\u00a7cDu har brug for \u00a7c{0}\u00a7c permission for at bruge noKits=\u00a77Der er ikke nogen kits tilg\u00e6ngelige endnu noMail=Du har ikke noget flaskepost. noMotd=\u00a7cDer er ingen Message of the day. +none=ingen noNewMail=\u00a77Du har ingen ny flaskepost. noPendingRequest=Du har ikke en ventende anmodning. noPerm=\u00a7cDu har ikke \u00a7f{0}\u00a7c permission. @@ -228,30 +229,21 @@ noPermToSpawnMob=\u00a7cDu har ikke tilladelse til at spawne denne mob. noPlacePermission=\u00a7cDu har ikke tiladelse til at placere en block n\u00c3\u00a6r det skilt. noPowerTools= Du har ingen power tools tilf\u00c3\u00b8jet. noRules=\u00a7cDer er ingen regler endnu. ANARKI! -noWarpsDefined=Ingen warps er defineret -none=ingen notAllowedToQuestion=\u00a7cDu har ikke tilladelse til at bruge sp\u00f8rgsm\u00e5l. notAllowedToShout=\u00a7cDu har ikke tilladelse til at r\u00e5be. notEnoughExperience=You do not have enough experience. notEnoughMoney=Du har ikke tilstr\u00e6kkeligt med penge. +nothingInHand = \u00a7cDu har intet i din h\u00c3\u00a5nd. notRecommendedBukkit=* ! * Bukkit version er ikke den anbefalede build til Essentials. notSupportedYet=Ikke underst\u00f8ttet endnu. -nothingInHand = \u00a7cDu har intet i din h\u00c3\u00a5nd. now=nu +noWarpsDefined=Ingen warps er defineret nuke=May death rain upon them numberRequired=Et nummer skal v\u00e6re, din tardo. onlyDayNight=/time underst\u00f8tter kun day/night. onlyPlayers=Kun in-game spillere kan bruge {0}. onlySunStorm=/weather underst\u00c3\u00b8tter kun sun/storm. orderBalances=Tjekker saldoer af {0} spillere, vent venligst... -pTimeCurrent=\u00a7e{0}''s\u00a7f Tiden er {1}. -pTimeCurrentFixed=\u00a7e{0}''s\u00a7f Tiden er fastsat til {1}. -pTimeNormal=\u00a7e{0}''s\u00a7f Tiden er normal og matcher serveren. -pTimeOthersPermission=\u00a7cDu har ikke tilladelse til at \u00c3\u00a6ndre andre spilleres tid. -pTimePlayers=Disse spillere har deres egen tid: -pTimeReset=Spiler-tid er blevet nulstillet for: \u00a7e{0} (oversat korrekt?) -pTimeSet=Spiller-tid er blevet sat til \u00a73{0}\u00a7f for: \u00a7e{1} (oversat korrekt?) -pTimeSetFixed=Spiller-tid er fastsat til \u00a73{0}\u00a7f for: \u00a7e{1} parseError=Fejl ved parsing af {0} p\u00e5 linje {1} pendingTeleportCancelled=\u00a7cAnmodning om teleport er blevet afvist. permissionsError=Mangler Permissions/GroupManager; chat pr\u00e6fikser/suffikser vil v\u00e6re deaktiveret. @@ -279,6 +271,14 @@ powerToolRemoveAll=Alle kommandoer fjernet fra {0}. powerToolsDisabled= Alle dine power tools er blevet deaktiveret. powerToolsEnabled= Alle dine power tools er blevet aktiveret. protectionOwner=\u00a76[EssentialsProtect] Protection owner: {0} +pTimeCurrent=\u00a7e{0}''s\u00a7f Tiden er {1}. +pTimeCurrentFixed=\u00a7e{0}''s\u00a7f Tiden er fastsat til {1}. +pTimeNormal=\u00a7e{0}''s\u00a7f Tiden er normal og matcher serveren. +pTimeOthersPermission=\u00a7cDu har ikke tilladelse til at \u00c3\u00a6ndre andre spilleres tid. +pTimePlayers=Disse spillere har deres egen tid: +pTimeReset=Spiler-tid er blevet nulstillet for: \u00a7e{0} (oversat korrekt?) +pTimeSet=Spiller-tid er blevet sat til \u00a73{0}\u00a7f for: \u00a7e{1} (oversat korrekt?) +pTimeSetFixed=Spiller-tid er fastsat til \u00a73{0}\u00a7f for: \u00a7e{1} questionFormat=\u00a77[Sp\u00f8rgsm\u00e5l]\u00a7f {0} readNextPage=Skriv /{0} {1} for at l\u00c3\u00a6se n\u00c3\u00a6ste side. reloadAllPlugins=\u00a77Reload alle plugins. @@ -301,6 +301,7 @@ seconds=sekunder seenOffline=Spilleren {0} har v\u00c3\u00a6ret offline i {1} seenOnline=Spilleren {0} har v\u00c3\u00a6ret online i {1} serverFull=Serveren er sgu fuld. Den b\u00c3\u00b8r melde sig til AA. +serverTotal=Server Total: {0} setSpawner=\u00c3\u0086ndrede spawner type til {0} sheepMalformedColor=Forkert farve. (Korrekt oversat?) shoutFormat=\u00a77[Shout]\u00a7f {0} @@ -311,8 +312,8 @@ signProtectInvalidLocation=\u00a74Du har ikke tilladelse til at lave et skilt he similarWarpExist=En warp med dette navn eksisterer allerede. slimeMalformedSize=Forkert st\u00f8rrelse. (Korrekt oversat?) soloMob=Denne mob kan godt lide at v\u00e6re alene. Den hygger sig. -spawnSet=\u00a77Spawnplacering fastsat for gruppe: {0}. spawned=spawnet +spawnSet=\u00a77Spawnplacering fastsat for gruppe: {0}. suicideMessage=\u00a77Farvel grusomme verden... suicideSuccess= \u00a77{0} tog sit eget liv survival=survival @@ -320,20 +321,20 @@ takenFromAccount=\u00a7c{0} er blevet taget fra din konto. takenFromOthersAccount=\u00a7c{0} er blevet taget fra {1}''s konto. teleportAAll=\u00a77Anmodning om teleport er sendt til alle spillere. teleportAll=\u00a77Teleporterer alle spillere... +teleportationCommencing=\u00a77Teleport begynder... +teleportationDisabled=\u00a77Teleport deaktiveret. +teleportationEnabled=\u00a77Teleport aktiveret. teleportAtoB=\u00a77{0}\u00a77 teleporterede dig til {1}\u00a77. teleportDisabled={0} har ikke teleportation aktiveret. teleportHereRequest=\u00a7c{0}\u00a7c har anmodet om, at du teleporterer dig til ham/hende. +teleporting=\u00a77Teleporterer... +teleportingPortal=\u00a77Teleporterede via portal. teleportNewPlayerError=Fejlede ved teleportering af ny spiller teleportRequest=\u00a7c{0}\u00a7c har anmodet om at teleportere til dig. teleportRequestTimeoutInfo=\u00a77This request will timeout after {0} seconds. teleportTop=\u00a77Teleporterer til toppen. -teleportationCommencing=\u00a77Teleport begynder... -teleportationDisabled=\u00a77Teleport deaktiveret. -teleportationEnabled=\u00a77Teleport aktiveret. -teleporting=\u00a77Teleporterer... -teleportingPortal=\u00a77Teleporterede via portal. -tempBanned=Midlertidigt bannet fra serveren for {0} tempbanExempt=\u00a77Du m\u00c3\u00a5 ikke tempbanne denne spiller! Slemme, slemme du! +tempBanned=Midlertidigt bannet fra serveren for {0} thunder= Du har nu {0} torden i din verden thunderDuration=Du har nu {0} torden i din verden i {1} sekunder. timeBeforeHeal=Tid f\u00c3\u00b8r du kan heale igen: {0} @@ -364,25 +365,25 @@ unlimitedItemPermission=\u00a7cIngen tilladelse til ubegr\u00e6nset ting {0}. unlimitedItems=Ubegr\u00c3\u00a6nsede ting: unmutedPlayer=Spilleren {0} unmuted. upgradingFilesError=Fejl under opgradering af filerne. +userdataMoveBackError=Kunne ikke flytte userdata/{0}.tmp til userdata/{1} +userdataMoveError=Kunne ikke flytte userdata/{0} til userdata/{1}.tmp userDoesNotExist=Brugeren {0} eksisterer ikke. userIsAway={0} er nu AFK. Skub ham i havet eller bur ham inde! userIsNotAway={0} er ikke l\u00e6ngere AFK. userJailed=\u00a77Du er blevet f\u00e6ngslet. userUsedPortal={0} brugte en eksisterende udgangsportal. -userdataMoveBackError=Kunne ikke flytte userdata/{0}.tmp til userdata/{1} -userdataMoveError=Kunne ikke flytte userdata/{0} til userdata/{1}.tmp usingTempFolderForTesting=Bruger temp-mappe til testing: versionMismatch=Versioner matcher ikke! Opdater venligst {0} til den nyeste version. versionMismatchAll=Versioner matcher ikke! Opdater venligst alle Essentials jar-filer til samme version. voiceSilenced=\u00a77Din stemme er blevet gjort stille. warpDeleteError=Ah, shit; kunne sgu ikke fjerne warp-filen. Jeg giver en \u00c3\u00b8l i lufthavnen. +warpingTo=\u00a77Warper til {0}. warpListPermission=\u00a7cDu har ikke tilladelse til at vise listen over warps. warpNotExist=Den warp eksisterer ikke. -warpSet=\u00a77Warp {0} sat. -warpUsePermission=\u00a7cDu har ikke tilladelse til at benytte den warp. -warpingTo=\u00a77Warper til {0}. warps=Warps: {0} warpsCount=\u00a77Der er {0} warps. Viser side {1} af {2}. +warpSet=\u00a77Warp {0} sat. +warpUsePermission=\u00a7cDu har ikke tilladelse til at benytte den warp. weatherStorm=\u00a77Du har sat vejret til ''storm'' i {0} weatherStormFor=\u00a77Du har sat vejret til ''storm'' i {0} i {1} sekunder weatherSun=\u00a77Du har sat vejret til ''sol'' i {0} diff --git a/Essentials/src/messages_de.properties b/Essentials/src/messages_de.properties index edffe33ac..2572f7cf2 100644 --- a/Essentials/src/messages_de.properties +++ b/Essentials/src/messages_de.properties @@ -15,7 +15,7 @@ backUsageMsg=\u00a77Kehre zur letzten Position zur\u00fcck. backupFinished=Backup beendet backupStarted=Backup gestartet balance=\u00a77Geldb\u00f6rse: {0} -balanceTop=\u00a77 Top Guthaben ({0}) +balanceTop=\u00a77Top Guthaben ({0}) banExempt=\u00a7cDu kannst diesen Spieler nicht sperren. banIpAddress=\u00a77IP-Adresse gesperrt. bannedIpsFileError=Fehler beim Lesen von banned-ips.txt @@ -301,6 +301,7 @@ seconds=Sekunden seenOffline=Spieler {0} ist offline seit {1} seenOnline=Spieler {0} ist online seit {1} serverFull=Server ist voll +serverTotal=Server Total: {0} setSpawner=\u00c4ndere Mob-Spawner zu {0} sheepMalformedColor=Ung\u00fcltige Farbe. shoutFormat=\u00a77[Schrei]\u00a7f {0} diff --git a/Essentials/src/messages_en.properties b/Essentials/src/messages_en.properties index b03a49812..a2acdf9a2 100644 --- a/Essentials/src/messages_en.properties +++ b/Essentials/src/messages_en.properties @@ -11,11 +11,11 @@ alertPlaced=placed: alertUsed=used: autoAfkKickReason=You have been kicked for idling more than {0} minutes. backAfterDeath=\u00a77Use the /back command to return to your death point. -backUsageMsg=\u00a77Returning to previous location. backupFinished=Backup finished backupStarted=Backup started +backUsageMsg=\u00a77Returning to previous location. balance=\u00a77Balance: {0} -balanceTop=\u00a77 Top balances ({0}) +balanceTop=\u00a77Top balances ({0}) banExempt=\u00a7cYou can not ban that player. banIpAddress=\u00a77Banned IP address bannedIpsFileError=Error reading banned-ips.txt @@ -64,14 +64,14 @@ depth=\u00a77You are at sea level. depthAboveSea=\u00a77You are {0} block(s) above sea level. depthBelowSea=\u00a77You are {0} block(s) below sea level. destinationNotSet=Destination not set -disableUnlimited=\u00a77Disabled unlimited placing of {0} for {1}. disabled=disabled disabledToSpawnMob=Spawning this mob was disabled in the config file. +disableUnlimited=\u00a77Disabled unlimited placing of {0} for {1}. dontMoveMessage=\u00a77Teleportation will commence in {0}. Don''t move. downloadingGeoIp=Downloading GeoIP database ... this might take a while (country: 0.6 MB, city: 20MB) duplicatedUserdata=Duplicated userdata: {0} and {1} -enableUnlimited=\u00a77Giving unlimited amount of {0} to {1}. enabled=enabled +enableUnlimited=\u00a77Giving unlimited amount of {0} to {1}. enchantmentApplied = \u00a77The enchantment {0} has been applied to your item in hand. enchantmentNotFound = \u00a7cEnchantment not found enchantmentPerm = \u00a7cYou do not have the permission for {0} @@ -99,9 +99,9 @@ gcentities= entities gcfree=Free memory: {0} MB gcmax=Maximum memory: {0} MB gctotal=Allocated memory: {0} MB +geoipJoinFormat=Player {0} comes from {1} geoIpUrlEmpty=GeoIP download url is empty. geoIpUrlInvalid=GeoIP download url is invalid. -geoipJoinFormat=Player {0} comes from {1} godDisabledFor=disabled for {0} godEnabledFor=enabled for {0} godMode=\u00a77God mode {0}. @@ -112,9 +112,9 @@ helpConsole=To view help from the console, type ?. helpOp=\u00a7c[HelpOp]\u00a7f \u00a77{0}:\u00a7f {1} helpPages=Page \u00a7c{0}\u00a7f of \u00a7c{1}\u00a7f: holeInFloor=Hole in floor +homes=Homes: {0} homeSet=\u00a77Home set. homeSetToBed=\u00a77Your home is now set to this bed. -homes=Homes: {0} hour=hour hours=hours ignorePlayer=You ignore player {0} from now on. @@ -124,28 +124,28 @@ infoChapterPages=Chapter {0}, page \u00a7c{1}\u00a7f of \u00a7c{2}\u00a7f: infoFileDoesNotExist=File info.txt does not exist. Creating one for you. infoPages=Page \u00a7c{0}\u00a7f of \u00a7c{1}\u00a7f: infoUnknownChapter=Unknown chapter. -invBigger=The other users inventory is bigger than yours. -invRestored=Your inventory has been restored. -invSee=You see the inventory of {0}. -invSeeHelp=Use /invsee to restore your inventory. invalidCharge=\u00a7cInvalid charge. invalidMob=Invalid mob type. invalidServer=Invalid server! invalidSignLine=Line {0} on sign is invalid. invalidWorld=\u00a7cInvalid world. +invBigger=The other users inventory is bigger than yours. inventoryCleared=\u00a77Inventory Cleared. inventoryClearedOthers=\u00a77Inventory of \u00a7c{0}\u00a77 cleared. +invRestored=Your inventory has been restored. +invSee=You see the inventory of {0}. +invSeeHelp=Use /invsee to restore your inventory. is=is itemCannotBeSold=That item cannot be sold to the server. itemMustBeStacked=Item must be traded in stacks. A quantity of 2s would be two stacks, etc. itemNotEnough1=\u00a7cYou do not have enough of that item to sell. itemNotEnough2=\u00a77If you meant to sell all of your items of that type, use /sell itemname itemNotEnough3=\u00a77/sell itemname -1 will sell all but one item, etc. +itemsCsvNotLoaded=Could not load items.csv. itemSellAir=You really tried to sell Air? Put an item in your hand. itemSold=\u00a77Sold for \u00a7c{0} \u00a77({1} {2} at {3} each) itemSoldConsole={0} sold {1} for \u00a77{2} \u00a77({3} items at {4} each) itemSpawn=\u00a77Giving {0} of {1} -itemsCsvNotLoaded=Could not load items.csv. jailAlreadyIncarcerated=\u00a7cPerson is already in jail: {0} jailMessage=\u00a7cYou do the crime, you do the time. jailNotExist=That jail does not exist. @@ -162,8 +162,8 @@ kitError=\u00a7cThere are no valid kits. kitErrorHelp=\u00a7cPerhaps an item is missing a quantity in the configuration? kitGive=\u00a77Giving kit {0}. kitInvFull=\u00a7cYour inventory was full, placing kit on the floor -kitTimed=\u00a7cYou can''t use that kit again for another {0}. kits=\u00a77Kits: {0} +kitTimed=\u00a7cYou can''t use that kit again for another {0}. lightningSmited=\u00a77You have just been smited lightningUse=\u00a77Smiting {0} listAfkTag = \u00a77[AFK]\u00a7f @@ -175,9 +175,9 @@ localFormat=Local: <{0}> {1} mailClear=\u00a7cTo mark your mail as read, type /mail clear mailCleared=\u00a77Mail Cleared! mailSent=\u00a77Mail sent! -markMailAsRead=\u00a7cTo mark your mail as read, type /mail clear markedAsAway=\u00a77You are now marked as away. markedAsNotAway=\u00a77You are no longer marked as away. +markMailAsRead=\u00a7cTo mark your mail as read, type /mail clear maxHomes=You cannot set more than {0} homes. mayNotJail=\u00a7cYou may not jail that person me=me @@ -185,10 +185,10 @@ minute=minute minutes=minutes missingItems=You do not have {0}x {1}. missingPrefixSuffix=Missing a prefix or suffix for {0} +mobsAvailable=\u00a77Mobs: {0} mobSpawnError=Error while changing mob spawner. mobSpawnLimit=Mob quantity limited to server limit mobSpawnTarget=Target block must be a mob spawner. -mobsAvailable=\u00a77Mobs: {0} moneyRecievedFrom=\u00a7a{0} has been received from {1} moneySentTo=\u00a7a{0} has been sent to {1} moneyTaken={0} taken from your bank account. @@ -196,10 +196,10 @@ month=month months=months moreThanZero=Quantities must be greater than 0. msgFormat=\u00a77[{0}\u00a77 -> {1}\u00a77] \u00a7f{2} -muteExempt=\u00a7cYou may not mute that player. mutedPlayer=Player {0} muted. mutedPlayerFor=Player {0} muted for {1}. mutedUserSpeaks={0} tried to speak, but is muted. +muteExempt=\u00a7cYou may not mute that player. nearbyPlayers=Players nearby: {0} needTpohere=You need access to /tpohere to teleport other players. negativeBalanceError=User is not allowed to have a negative balance. @@ -221,6 +221,7 @@ noKitPermission=\u00a7cYou need the \u00a7c{0}\u00a7c permission to use that kit noKits=\u00a77There are no kits available yet noMail=You do not have any mail noMotd=\u00a7cThere is no message of the day. +none=none noNewMail=\u00a77You have no new mail. noPendingRequest=You do not have a pending request. noPerm=\u00a7cYou do not have the \u00a7f{0}\u00a7c permission. @@ -228,30 +229,21 @@ noPermToSpawnMob=\u00a7cYou don''t have permission to spawn this mob. noPlacePermission=\u00a7cYou do not have permission to place a block near that sign. noPowerTools=You have no power tools assigned. noRules=\u00a7cThere are no rules specified yet. -noWarpsDefined=No warps defined -none=none notAllowedToQuestion=\u00a7cYou are not authorized to use question. notAllowedToShout=\u00a7cYou are not authorized to shout. notEnoughExperience=You do not have enough experience. notEnoughMoney=You do not have sufficient funds. +nothingInHand = \u00a7cYou have nothing in your hand. notRecommendedBukkit=* ! * Bukkit version is not the recommended build for Essentials. notSupportedYet=Not supported yet. -nothingInHand = \u00a7cYou have nothing in your hand. now=now +noWarpsDefined=No warps defined nuke=May death rain upon them numberRequired=A number goes there, silly. onlyDayNight=/time only supports day/night. onlyPlayers=Only in-game players can use {0}. onlySunStorm=/weather only supports sun/storm. orderBalances=Ordering balances of {0} users, please wait ... -pTimeCurrent=\u00a7e{0}''s\u00a7f time is {1}. -pTimeCurrentFixed=\u00a7e{0}''s\u00a7f time is fixed to {1}. -pTimeNormal=\u00a7e{0}''s\u00a7f time is normal and matches the server. -pTimeOthersPermission=\u00a7cYou are not authorized to set other players'' time. -pTimePlayers=These players have their own time: -pTimeReset=Player time has been reset for: \u00a7e{0} -pTimeSet=Player time is set to \u00a73{0}\u00a7f for: \u00a7e{1} -pTimeSetFixed=Player time is fixed to \u00a73{0}\u00a7f for: \u00a7e{1} parseError=Error parsing {0} on line {1} pendingTeleportCancelled=\u00a7cPending teleportation request cancelled. permissionsError=Missing Permissions/GroupManager; chat prefixes/suffixes will be disabled. @@ -279,6 +271,14 @@ powerToolRemoveAll=All commands removed from {0}. powerToolsDisabled=All of your power tools have been enabled. powerToolsEnabled=All of your power tools have been enabled. protectionOwner=\u00a76[EssentialsProtect] Protection owner: {0} +pTimeCurrent=\u00a7e{0}''s\u00a7f time is {1}. +pTimeCurrentFixed=\u00a7e{0}''s\u00a7f time is fixed to {1}. +pTimeNormal=\u00a7e{0}''s\u00a7f time is normal and matches the server. +pTimeOthersPermission=\u00a7cYou are not authorized to set other players'' time. +pTimePlayers=These players have their own time: +pTimeReset=Player time has been reset for: \u00a7e{0} +pTimeSet=Player time is set to \u00a73{0}\u00a7f for: \u00a7e{1} +pTimeSetFixed=Player time is fixed to \u00a73{0}\u00a7f for: \u00a7e{1} questionFormat=\u00a77[Question]\u00a7f {0} readNextPage=Type /{0} {1} to read the next page reloadAllPlugins=\u00a77Reloaded all plugins. @@ -301,6 +301,7 @@ seconds=seconds seenOffline=Player {0} is offline since {1} seenOnline=Player {0} is online since {1} serverFull=Server is full +serverTotal=Server Total: {0} setSpawner=Changed spawner type to {0} sheepMalformedColor=Malformed color. shoutFormat=\u00a77[Shout]\u00a7f {0} @@ -311,8 +312,8 @@ signProtectInvalidLocation=\u00a74You are not allowed to create sign here. similarWarpExist=A warp with a similar name already exists. slimeMalformedSize=Malformed size. soloMob=That mob likes to be alone -spawnSet=\u00a77Spawn location set for group {0}. spawned=spawned +spawnSet=\u00a77Spawn location set for group {0}. suicideMessage=\u00a77Goodbye Cruel World... suicideSuccess= \u00a77{0} took their own life survival=survival @@ -320,20 +321,20 @@ takenFromAccount=\u00a7c{0} has been taken from your account. takenFromOthersAccount=\u00a7c{0} has been taken from {1} account. teleportAAll=\u00a77Teleporting request sent to all players... teleportAll=\u00a77Teleporting all players... +teleportationCommencing=\u00a77Teleportation commencing... +teleportationDisabled=\u00a77Teleportation disabled. +teleportationEnabled=\u00a77Teleportation enabled. teleportAtoB=\u00a77{0}\u00a77 teleported you to {1}\u00a77. teleportDisabled={0} has teleportation disabled. teleportHereRequest=\u00a7c{0}\u00a7c has requested that you teleport to them. +teleporting=\u00a77Teleporting... +teleportingPortal=\u00a77Teleporting via portal. teleportNewPlayerError=Failed to teleport new player teleportRequest=\u00a7c{0}\u00a7c has requested to teleport to you. teleportRequestTimeoutInfo=\u00a77This request will timeout after {0} seconds. teleportTop=\u00a77Teleporting to top. -teleportationCommencing=\u00a77Teleportation commencing... -teleportationDisabled=\u00a77Teleportation disabled. -teleportationEnabled=\u00a77Teleportation enabled. -teleporting=\u00a77Teleporting... -teleportingPortal=\u00a77Teleporting via portal. -tempBanned=Temporarily banned from server for {0} tempbanExempt=\u00a77You may not tempban that player +tempBanned=Temporarily banned from server for {0} thunder= You {0} thunder in your world thunderDuration=You {0} thunder in your world for {1} seconds. timeBeforeHeal=Time before next heal: {0} @@ -364,25 +365,25 @@ unlimitedItemPermission=\u00a7cNo permission for unlimited item {0}. unlimitedItems=Unlimited items: unmutedPlayer=Player {0} unmuted. upgradingFilesError=Error while upgrading the files +userdataMoveBackError=Failed to move userdata/{0}.tmp to userdata/{1} +userdataMoveError=Failed to move userdata/{0} to userdata/{1}.tmp userDoesNotExist=The user {0} does not exist. userIsAway={0} is now AFK userIsNotAway={0} is no longer AFK userJailed=\u00a77You have been jailed userUsedPortal={0} used an existing exit portal. -userdataMoveBackError=Failed to move userdata/{0}.tmp to userdata/{1} -userdataMoveError=Failed to move userdata/{0} to userdata/{1}.tmp usingTempFolderForTesting=Using temp folder for testing: versionMismatch=Version mismatch! Please update {0} to the same version. versionMismatchAll=Version mismatch! Please update all Essentials jars to the same version. voiceSilenced=\u00a77Your voice has been silenced warpDeleteError=Problem deleting the warp file. +warpingTo=\u00a77Warping to {0}. warpListPermission=\u00a7cYou do not have Permission to list that warps. warpNotExist=That warp does not exist. -warpSet=\u00a77Warp {0} set. -warpUsePermission=\u00a7cYou do not have Permission to use that warp. -warpingTo=\u00a77Warping to {0}. warps=Warps: {0} warpsCount=\u00a77There are {0} warps. Showing page {1} of {2}. +warpSet=\u00a77Warp {0} set. +warpUsePermission=\u00a7cYou do not have Permission to use that warp. weatherStorm=\u00a77You set the weather to storm in {0} weatherStormFor=\u00a77You set the weather to storm in {0} for {1} seconds weatherSun=\u00a77You set the weather to sun in {0} diff --git a/Essentials/src/messages_es.properties b/Essentials/src/messages_es.properties index 4f3da7738..38d62f6c4 100644 --- a/Essentials/src/messages_es.properties +++ b/Essentials/src/messages_es.properties @@ -11,9 +11,9 @@ alertPlaced=situado: alertUsed=usado: autoAfkKickReason=Has sido echado por ausentarte mas de {0} minutos. backAfterDeath=\u00a77Usa el comando /back para volver al punto en el que moriste. -backUsageMsg=\u00a77Volviendo a la localizacion anterior. backupFinished=Copia de seguridad completada backupStarted=Comenzando copia de seguridad +backUsageMsg=\u00a77Volviendo a la localizacion anterior. balance=\u00a77Cantidad: {0} balanceTop=\u00a77Top cantidades ({0}) banExempt=\u00a7cNo puedes banear a ese jugador @@ -64,14 +64,14 @@ depth=\u00a77Estas al nivel del mar. depthAboveSea=\u00a77Estas {0} bloque(s) por encima del mar. depthBelowSea=\u00a77Estas {0} bloque(s) por debajo del mar. destinationNotSet=Destino no establecido. -disableUnlimited=\u00a77Desactivando colocacion ilimitada de {0} para {1}. disabled=desactivado disabledToSpawnMob=Spawning this mob was disabled in the config file. +disableUnlimited=\u00a77Desactivando colocacion ilimitada de {0} para {1}. dontMoveMessage=\u00a77Teletransporte comenzara en {0}. No te muevas. downloadingGeoIp=Descargando base de datos de GeoIP ... puede llevar un tiempo (pais: 0.6 MB, ciudad: 20MB) duplicatedUserdata=Datos de usuario duplicados: {0} y {1} -enableUnlimited=\u00a77Dando cantidad ilimitada de {0} a {1}. enabled=activado +enableUnlimited=\u00a77Dando cantidad ilimitada de {0} a {1}. enchantmentApplied = \u00a77The enchantment {0} has been applied to your item in hand. enchantmentNotFound = \u00a7cEnchantment not found enchantmentPerm = \u00a7cYou do not have the permission for {0} @@ -99,9 +99,9 @@ gcentities= entidades gcfree=Memoria libre: {0} MB gcmax=Memoria maxima: {0} MB gctotal=Memoria localizada: {0} MB +geoipJoinFormat=El jugador {0} viene de {1} geoIpUrlEmpty=Link para descargar GeoIP esta vacio. geoIpUrlInvalid=Link para descargar GeoIP es invalido. -geoipJoinFormat=El jugador {0} viene de {1} godDisabledFor=Desactivado para {0} godEnabledFor=Activado para {0} godMode=\u00a77Modo Dios {0}. @@ -112,9 +112,9 @@ helpConsole=Para obtener ayuda de la consola, escribe ?. helpOp=\u00a7c[HelpOp]\u00a7f \u00a77{0}:\u00a7f {1} helpPages=Pagina \u00a7c{0}\u00a7f de \u00a7c{1}\u00a7f: holeInFloor=Agujero en el suelo +homes=Hogares: {0} homeSet=\u00a77Hogar establecido. homeSetToBed=\u00a77Tu hogar esta ahora establecido a esta cama. -homes=Hogares: {0} hour=hora hours=horas ignorePlayer=A partir de ahora ignoras al jugador {0}. @@ -124,28 +124,28 @@ infoChapterPages=Seccion {0}, pagina \u00a7c{1}\u00a7f of \u00a7c{2}\u00a7f: infoFileDoesNotExist=El archivo info.txt no existe. Creando uno para ti. infoPages=Pagina \u00a7c{0}\u00a7f de \u00a7c{1}\u00a7f: infoUnknownChapter=Seccion desconocida. -invBigger=El inventario del otro usuario es mas grande que el tuyo -invRestored=Tu inventario ha sido recuperado. -invSee=Estas viendo el inventario de {0}. -invSeeHelp=Usa /invsee para recuperar tu inventario. invalidCharge=\u00a7cCargo invalido. invalidMob=Mob invalido. invalidServer=Servidor invalido! invalidSignLine=Linea {0} en el signo es invalida. invalidWorld=\u00a7cMundo invalido. +invBigger=El inventario del otro usuario es mas grande que el tuyo inventoryCleared=\u00a77Inventario limpiado. inventoryClearedOthers=\u00a77Inventario de \u00a7c{0}\u00a77 limpiado. +invRestored=Tu inventario ha sido recuperado. +invSee=Estas viendo el inventario de {0}. +invSeeHelp=Usa /invsee para recuperar tu inventario. is=es itemCannotBeSold=Ese objeto no puede ser vendido al servidor. itemMustBeStacked=El objeto tiene que ser intercambiado en pilas. Una cantidad de 2s seria de dos pilas, etc. itemNotEnough1=\u00a7cNo tienes suficientes ejemplares de ese objeto para venderlo. itemNotEnough2=\u00a77Si pensabas en vender todos tus objetos de ese tipo, usa /sell nombredeobjeto itemNotEnough3=\u00a77/sell nombredeobjeto -1 vendera todos excepto un objeto, etc. +itemsCsvNotLoaded=Error al leer items.csv. itemSellAir=Realmente has intentado vender Aire? Pon un objeto en tu mano! itemSold=\u00a77Vendido para \u00a7c {0} \u00a77 ({1} {2} a {3} cada uno) itemSoldConsole={0} Vendido {1} para\u00a77 {2} \u00a77({3} objetos a {4} cada uno) itemSpawn=\u00a77Dando {0} de {1} -itemsCsvNotLoaded=Error al leer items.csv. jailAlreadyIncarcerated=\u00a7cLa persona ya esta en la carcel: {0} jailMessage=\u00a7cPor hacer el mal, tiempo en la carcel estaras. jailNotExist=Esa carcel no existe. @@ -162,8 +162,8 @@ kitError=\u00a7cNo hay ningun kit valido. kitErrorHelp=\u00a7cPerhaps an item is missing a quantity in the configuration? kitGive=\u00a77Dando kit a {0}. kitInvFull=\u00a7cTu inventario esta lleno, su kit se pondra en el suelo -kitTimed=\u00a7c No puedes usar ese kit de nuevo para otro{0}. kits=\u00a77Kits: {0} +kitTimed=\u00a7c No puedes usar ese kit de nuevo para otro{0}. lightningSmited=\u00a77Acabas de ser golpeado lightningUse=\u00a77Golpeando a {0} listAfkTag = \u00a77[AFK]\u00a7f @@ -175,9 +175,9 @@ localFormat=Local: <{0}> {1} mailClear=\u00a7cPara marcar tu email como leido, escribe /mail clear mailCleared=\u00a77Email limpiado! mailSent=\u00a77Email enviado!! -markMailAsRead=\u00a7cPara marcar tu email como leido, escribe /mail clear markedAsAway=\u00a77Has sido puesto como AFK. markedAsNotAway=\u00a77Ya no estas AFK. +markMailAsRead=\u00a7cPara marcar tu email como leido, escribe /mail clear maxHomes=No puedes establecer mas de {0} hogares. mayNotJail=\u00a7cNo puedes encarcelar a esa persona me=yo @@ -185,10 +185,10 @@ minute=minuto minutes=minutos missingItems=No tienes {0}x de {1}. missingPrefixSuffix=Falta un prefijo o un sufijo para {0} +mobsAvailable=\u00a77Mobs: {0} mobSpawnError=Error al cambiar la localizacion para el nacimiento de los mobs. mobSpawnLimit=Cantidad de Mobs limitados al limite del server mobSpawnTarget=El block seleccionado sera el lugar donde van a nacer los mobs. -mobsAvailable=\u00a77Mobs: {0} moneyRecievedFrom=\u00a7a{0} ha sido recivido de {1} moneySentTo=\u00a7a{0} ha sido enviado a {1} moneyTaken={0} han sido sacados de tu cuenta bancaria. @@ -196,10 +196,10 @@ month=mes months=meses moreThanZero=Las cantidades han de ser mayores que 0. msgFormat=\u00a77[{0}\u00a77 -> {1}\u00a77] \u00a7f{2} -muteExempt=\u00a7cNo puedes silenciar a ese jugador. mutedPlayer=Player {0} silenciado. mutedPlayerFor=Player {0} silenciado durante {1}. mutedUserSpeaks={0} intento hablar, pero esta silenciado. +muteExempt=\u00a7cNo puedes silenciar a ese jugador. nearbyPlayers=Players nearby: {0} needTpohere=Necesitas acceso a /tpohere para teletransportar a otros jugadores. negativeBalanceError=El usuario no tiene permitido tener un saldo negativo. @@ -221,6 +221,7 @@ noKitPermission=\u00a7cNecesitas los \u00a7c{0}\u00a7c permisos para usar ese ki noKits=\u00a77No hay kits disponibles todavia noMail=No tienes ningun email recivido noMotd=\u00a7cNo hay ningun mensaje del dia. +none=ninguno noNewMail=\u00a77No tienes ningun correo nuevo. noPendingRequest=No tienes ninguna peticion pendiente. noPerm=\u00a7cNo tienes el permiso de \u00a7f{0}\u00a7c. @@ -228,30 +229,21 @@ noPermToSpawnMob=\u00a7cYou don''t have permission to spawn this mob. noPlacePermission=\u00a7cNo tienes permiso para situar ese bloque en ese lugar. noPowerTools=You have no power tools assigned. noRules=\u00a7cNo hay reglas especificadas todavia. -noWarpsDefined=No hay teletransportes definidos aun -none=ninguno notAllowedToQuestion=\u00a7cYou estas autorizado para usar las preguntas. notAllowedToShout=\u00a7cNo estas autorizado para gritar. notEnoughExperience=You do not have enough experience. notEnoughMoney=No tienes el dinero suficiente. +nothingInHand = \u00a7cYou have nothing in your hand. notRecommendedBukkit=* ! * La version de bukkit no es la recomendada para esta version de Essentials. notSupportedYet=No esta soportado aun. -nothingInHand = \u00a7cYou have nothing in your hand. now=ahora +noWarpsDefined=No hay teletransportes definidos aun nuke=May death rain upon them numberRequired=Un numero es necesario, amigo. onlyDayNight=/time solo soporta day/night. (dia/noche) onlyPlayers=Solo los jugadores conectados pueden usar {0}. onlySunStorm=/weather solo soporta sun/storm. (sol/tormenta) orderBalances=Ordering balances of {0} users, please wait ... -pTimeCurrent=\u00a7e{0}''s\u00a7f la hora es {1}. -pTimeCurrentFixed=\u00a7e{0}''s\u00a7f la hora ha sido cambiada a {1}. -pTimeNormal=\u00a7e{0}''s\u00a7f el tiempo es normal y coincide con el servidor. -pTimeOthersPermission=\u00a7cNo estas autorizado para especificar'' la hora de otros usuarios. -pTimePlayers=Estos usuarios tienen su propia hora: -pTimeReset=La hora del usuario ha sido reiniciada a las: \u00a7e{0} -pTimeSet=La hora del jugador ha sido cambiada para las: \u00a73{0}\u00a7f for: \u00a7e{1} -pTimeSetFixed=La hora del jugador ha sido arreglada para las: \u00a73{0}\u00a7f for: \u00a7e{1} parseError=error analizando {0} en la linea {1} pendingTeleportCancelled=\u00a7cPeticion de teletransporte pendiente cancelado. permissionsError=Falta el plugin Permissions/GroupManager; Los prefijos/sufijos de chat seran desactivados. @@ -279,6 +271,14 @@ powerToolRemoveAll=Todos los comandos borrados desde {0}. powerToolsDisabled=All of your power tools have been disabled. powerToolsEnabled=All of your power tools have been enabled. protectionOwner=\u00a76[EssentialsProtect] Dueño de la proteccion: {0} +pTimeCurrent=\u00a7e{0}''s\u00a7f la hora es {1}. +pTimeCurrentFixed=\u00a7e{0}''s\u00a7f la hora ha sido cambiada a {1}. +pTimeNormal=\u00a7e{0}''s\u00a7f el tiempo es normal y coincide con el servidor. +pTimeOthersPermission=\u00a7cNo estas autorizado para especificar'' la hora de otros usuarios. +pTimePlayers=Estos usuarios tienen su propia hora: +pTimeReset=La hora del usuario ha sido reiniciada a las: \u00a7e{0} +pTimeSet=La hora del jugador ha sido cambiada para las: \u00a73{0}\u00a7f for: \u00a7e{1} +pTimeSetFixed=La hora del jugador ha sido arreglada para las: \u00a73{0}\u00a7f for: \u00a7e{1} questionFormat=\u00a77[Pregunta]\u00a7f {0} readNextPage=Type /{0} {1} to read the next page reloadAllPlugins=\u00a77Todos los plugins recargados. @@ -301,6 +301,7 @@ seconds=segundos seenOffline=El jugador {0} esta desconectado desde {1} seenOnline=El jugador {0} lleva conectado desde {1} serverFull=Servidor lleno +serverTotal=Server Total: {0} setSpawner=Cambiado tipo de lugar de nacimiento a {0} sheepMalformedColor=Color malformado. shoutFormat=\u00a77[Shout]\u00a7f {0} @@ -311,8 +312,8 @@ signProtectInvalidLocation=\u00a74No puedes poner carteles en ese sitio. similarWarpExist=Ya existe un teletransporte con ese nombre. slimeMalformedSize=Medidas malformadas. soloMob=A este mob le gusta estar solo -spawnSet=\u00a77El lugar de nacimiento ha sido puesto para el grupo {0}. spawned=nacido +spawnSet=\u00a77El lugar de nacimiento ha sido puesto para el grupo {0}. suicideMessage=\u00a77Adios mundo cruel... suicideSuccess= \u00a77{0} se quito su propia vida survival=survival @@ -320,20 +321,20 @@ takenFromAccount=\u00a7c{0} ha sido sacado de tu cuenta. takenFromOthersAccount=\u00a7c{0} ha sido sacado de la cuenta de {1}. teleportAAll=\u00a77Peticion de teletransporte enviada a todos los jugadores... teleportAll=\u00a77Teletransportando a todos los jugadores... +teleportationCommencing=\u00a77Comenzando teletransporte... +teleportationDisabled=\u00a77Teletransporte desactivado. +teleportationEnabled=\u00a77Teletransporte activado. teleportAtoB=\u00a77{0}\u00a77 te teletransporto a {1}\u00a77. teleportDisabled={0} tiene desactivado los teletransportes. teleportHereRequest=\u00a7c{0}\u00a7c ha pedido que te teletransportes con el. +teleporting=\u00a77Teletransportando... +teleportingPortal=\u00a77Teletransportando via portal. teleportNewPlayerError=Error al teletransportar al nuevo jugador teleportRequest=\u00a7c{0}\u00a7c te ha pedido teletransportarse contigo. teleportRequestTimeoutInfo=\u00a77This request will timeout after {0} seconds. teleportTop=\u00a77Teletransportandote a la cima. -teleportationCommencing=\u00a77Comenzando teletransporte... -teleportationDisabled=\u00a77Teletransporte desactivado. -teleportationEnabled=\u00a77Teletransporte activado. -teleporting=\u00a77Teletransportando... -teleportingPortal=\u00a77Teletransportando via portal. -tempBanned=Baneado temporalmente del servidor por {0} tempbanExempt=\u00a77No puedes banear temporalmente a ese jugador +tempBanned=Baneado temporalmente del servidor por {0} thunder= Tu has {0} los truenos en tu mundo. thunderDuration=Tu has {0} los truenos en tu mundo durante {1} seconds. timeBeforeHeal=Tiempo antes de la siguiente curacion: {0} @@ -364,25 +365,25 @@ unlimitedItemPermission=\u00a7cNo tienes permiso para objetos ilimitados {0}. unlimitedItems=Objetos ilimitados. unmutedPlayer=Jugador {0} desmuteado. upgradingFilesError=Error mientras se actualizaban los archivos +userdataMoveBackError=Error al mover userdata/{0}.tmp a userdata/{1} +userdataMoveError=Error al mover userdata/{0} a userdata/{1}.tmp userDoesNotExist=El usuario {0} no existe userIsAway={0} esta ahora ausente! userIsNotAway={0} ya no esta ausente! userJailed=\u00a77Has sido encarcelado! userUsedPortal={0} uso un portal de salida existente. -userdataMoveBackError=Error al mover userdata/{0}.tmp a userdata/{1} -userdataMoveError=Error al mover userdata/{0} a userdata/{1}.tmp usingTempFolderForTesting=Usando carpeta temporal para pruebas: versionMismatch=La version no coincide! Por favor actualiza {0} a la misma version. versionMismatchAll=La version no coincide! Por favor actualiza todos los jars de Essentials a la misma version. voiceSilenced=\u00a77Tu voz ha sido silenciada warpDeleteError=Problema al borrar el archivo de teletransporte. +warpingTo=\u00a77Teletransportandote a {0}. warpListPermission=\u00a7cNo tienes permiso para listar esos teletransportes. warpNotExist=Ese teletransporte no existe. -warpSet=\u00a77Teletransporte {0} establecido. -warpUsePermission=\u00a7cNo tienes permisos para usar ese teletransporte. -warpingTo=\u00a77Teletransportandote a {0}. warps=Warps: {0} warpsCount=\u00a77Hay {0} teletransportes. Mostrando pagina {1} de {2}. +warpSet=\u00a77Teletransporte {0} establecido. +warpUsePermission=\u00a7cNo tienes permisos para usar ese teletransporte. weatherStorm=\u00a77Has establecido el tiempo a tormenta en este mundo. weatherStormFor=\u00a77Has establecido el tiempo a tormenta en este {1} durante {0} segundos. weatherSun=\u00a77Has establecido el tiempo a sol en este mundo. diff --git a/Essentials/src/messages_fr.properties b/Essentials/src/messages_fr.properties index 1649a552a..290c1b668 100644 --- a/Essentials/src/messages_fr.properties +++ b/Essentials/src/messages_fr.properties @@ -11,11 +11,11 @@ alertPlaced=a plac\u00e9 : alertUsed=a utilis\u00e9 : autoAfkKickReason=Vous avez \u00e9t\u00e9 \u00e9ject\u00e9 pour inactivit\u00e9e sup\u00e9rieure \u00e0 {0} minutes. backAfterDeath=\u00a77Utilisez la commande /back pour retourner \u00e0 l''endroit ou vous \u00eates mort. -backUsageMsg=\u00a77Retour \u00e0 votre emplacement pr\u00e9c\u00c3\u00a8dent. backupFinished=Sauvegarde termin\u00e9 backupStarted=D\u00e9but de la sauvegarde... +backUsageMsg=\u00a77Retour \u00e0 votre emplacement pr\u00e9c\u00c3\u00a8dent. balance=\u00a77Solde : {0} -balanceTop=\u00a77 Meilleurs soldes au ({0}) +balanceTop=\u00a77Meilleurs soldes au ({0}) banExempt=\u00a77Vous ne pouvez pas bannir ce joueur. banIpAddress=\u00a77Adresse IP bannie. bannedIpsFileError=Erreur de lecture de banned-ips.txt @@ -64,14 +64,14 @@ depth=\u00a77Vous \u00eates au niveau de la mer. depthAboveSea=\u00a77Vous \u00eates \u00e0 {0} bloc(s) au-dessus du niveau de la mer. depthBelowSea=\u00a77Vous \u00eates \u00e0 {0} bloc(s) en-dessous du niveau de la mer. destinationNotSet=Destination non d\u00e9finie -disableUnlimited=\u00a77D\u00e9sactivation du placement illimit\u00e9 de {0} pour {1}. disabled=d\u00e9sactiv\u00e9 disabledToSpawnMob=Spawning this mob was disabled in the config file. +disableUnlimited=\u00a77D\u00e9sactivation du placement illimit\u00e9 de {0} pour {1}. dontMoveMessage=\u00a77La t\u00e9l\u00e9portation commence dans {0}. Ne bougez pas. downloadingGeoIp=T\u00e9l\u00e9chargement de la base de donn\u00e9es GeoIP ... Cela peut prendre un moment (Pays : 0.6 Mo, villes : 20Mo) duplicatedUserdata=Donn\u00e9e utilisateur dupliqu\u00e9e : {0} et {1} -enableUnlimited=\u00a77Quantit\u00e9 illimit\u00e9e de {0} \u00e0 {1}. enabled=activ\u00e9 +enableUnlimited=\u00a77Quantit\u00e9 illimit\u00e9e de {0} \u00e0 {1}. enchantmentApplied = \u00a77L''enchantement {0} a \u00e9t\u00e9 appliqu\u00e9 \u00e0 l''objet dans votre main. enchantmentNotFound = \u00a7cEnchantement non-trouv\u00e9 enchantmentPerm = \u00a7cVous n''avez pas les droits pour {0}. @@ -99,9 +99,9 @@ gcentities=entit\u00e9s gcfree=M\u00e9moire libre : {0} Mo gcmax=M\u00e9moire maximale : {0} Mo gctotal=M\u00e9moire utilis\u00e9e : {0} Mo +geoipJoinFormat=Joueur {0} vient de {1} geoIpUrlEmpty=L''URL de t\u00e9l\u00e9chargement de GeoIP est vide. geoIpUrlInvalid=L''URL de t\u00e9l\u00e9chargement de GeoIP est invalide. -geoipJoinFormat=Joueur {0} vient de {1} godDisabledFor=d\u00e9sactiv\u00e9 pour {0} godEnabledFor=activ\u00e9 pour {0} godMode=\u00a77Mode Dieu {0}. @@ -112,9 +112,9 @@ helpConsole=Pour voir l''aide tapez ? helpOp=\u00a7c[Aide Admin]\u00a7f \u00a77{0} : \u00a7f {1} helpPages=Page \u00a7c{0}\u00a7f sur \u00a7c{1}\u00a7f. holeInFloor=Trou dans le Sol. +homes=R\u00e9sidences : {0} homeSet=\u00a77R\u00e9sidence d\u00e9finie. homeSetToBed=\u00a77Votre r\u00e9sidence est d\u00e9sormais li\u00e9e \u00e0 ce lit. -homes=R\u00e9sidences : {0} hour=heure hours=heures ignorePlayer=Vous ignorez d\u00e9sormais {0}. @@ -124,28 +124,28 @@ infoChapterPages=Chapitre {0}, page \u00a7c{1}\u00a7f sur \u00a7c{2}\u00a7f: infoFileDoesNotExist=Le fichier info.txt n'existe pas. Le fichier est en cours de cr\u00e9ation pour vous. infoPages=Page \u00a7c{0}\u00a7f de \u00a7c{1}\u00a7f. infoUnknownChapter=Chapitre inconnu. -invBigger=Les inventaires des autres joueurs sont plus gros que le v\u00f4tre. -invRestored=Votre inventaire vous a \u00e9t\u00e9 rendu. -invSee=Vous voyez l''inventaire de {0}. -invSeeHelp=Utilisez /invsee pour revenir \u00e0 votre inventaire. invalidCharge=\u00a7cCharge invalide. invalidMob=Mauvias type de cr\u00e9ature. invalidServer=Serveur non valide. invalidSignLine=La ligne {0} du panneau est invalide. invalidWorld=\u00a7cMonde invalide. +invBigger=Les inventaires des autres joueurs sont plus gros que le v\u00f4tre. inventoryCleared=\u00a77Inventaire nettoy\u00e9. inventoryClearedOthers=\u00a77L''inventaire de \u00a7c{0}\u00a77 a \u00e9t\u00e9 nettoy\u00e9. +invRestored=Votre inventaire vous a \u00e9t\u00e9 rendu. +invSee=Vous voyez l''inventaire de {0}. +invSeeHelp=Utilisez /invsee pour revenir \u00e0 votre inventaire. is=est itemCannotBeSold=Cet objet ne peut \u00eatre vendu au serveur. itemMustBeStacked=Cet objet doit \u00eatre vendu par 64. Une quantit\u00e9 de 2 serait deux fois 64. itemNotEnough1=\u00a7cVous n'avez pas assez de cet objet pour le vendre. itemNotEnough2=\u00a77Si vous voulez vendre l'int\u00e9gralit\u00e9 de vos objets de ce type l\u00e0, utilisez /sell nomObjet itemNotEnough3=\u00a77/sell nomObjet -1 vendra tout sauf un objet, etc. +itemsCsvNotLoaded=N'a pas pu charger items.csv. itemSellAir=Vouliez-vous vraiment vendre de l'air ? Mettez un objet dans votre main. itemSold=\u00a77Vendu pour \u00a7c{0} \u00a77({1} {2} \u00e0 {3} chacun) itemSoldConsole={0} vendu {1} pour \u00a77{2} \u00a77({3} objet(s) \u00e0 {4} chacun) itemSpawn=\u00a77Donne {0} de {1} -itemsCsvNotLoaded=N'a pas pu charger items.csv. jailAlreadyIncarcerated=\u00a7cJoueur d\u00e9j\u00e0 emprisonn\u00e9 : {0} jailMessage=\u00a7cVous avez commis un crime, vous en payez le prix. jailNotExist=Cette prison n'existe pas. @@ -162,8 +162,8 @@ kitError=\u00a7cIl n'y a pas de kits valides. kitErrorHelp=\u00a7cPeut-\u00eatre qu'un objet manque d'une quantit\u00e9 dans la configuration ? kitGive=\u00a77Donner le kit {0}. kitInvFull=\u00a7cVotre inventaire \u00e9tait plein, le kit est parre-terre. -kitTimed=\u00a7cVous ne pouvez pas utiliser ce kit pendant encore {0}. kits=\u00a77Kits :{0} +kitTimed=\u00a7cVous ne pouvez pas utiliser ce kit pendant encore {0}. lightningSmited=\u00a77Vous venez d'\u00eatre foudroy\u00e9. lightningUse=\u00a77{0} a \u00e9t\u00e9 foudroy\u00e9. listAfkTag = \u00a77[AFK]\u00a7f @@ -175,9 +175,9 @@ localFormat=Locale : <{0}> {1} mailClear=\u00a7cPour marquer votre courrier en tant que lu, entrez /mail clear mailCleared=\u00a77Courrier supprim\u00e9 ! mailSent=\u00a77Courrier envoy\u00e9 ! -markMailAsRead=\u00a7cPour marquer votre courrier en tant que lu, entrez /mail clear markedAsAway=\u00a77Vous \u00eates d\u00e9sormais AFK. markedAsNotAway=\u00a77Vous n'\u00eates d\u00e9sormais plus AFK. +markMailAsRead=\u00a7cPour marquer votre courrier en tant que lu, entrez /mail clear maxHomes=Vous ne pouvez pas cr\u00e9er plus de {0} r\u00e9sidences. mayNotJail=\u00a7cVous ne pouvez pas emprisonner cette personne. me=moi @@ -185,10 +185,10 @@ minute=minute minutes=minutes missingItems=Vous n''avez pas {0} x {1}. missingPrefixSuffix=Pr\u00e9fixe ou Suffixe manquant pour {0} +mobsAvailable=\u00a77cr\u00e9atures : {0} mobSpawnError=Erreur lors du changement du g\u00e9n\u00e9rateur de cr\u00e9atures. mobSpawnLimit=Quantit\u00e9 de cr\u00e9atures limit\u00e9 \u00e0 au maximum du serveur. mobSpawnTarget=Le bloc cible doit \u00eatre un g\u00e9n\u00e9rateur de cr\u00e9atures. -mobsAvailable=\u00a77cr\u00e9atures : {0} moneyRecievedFrom=\u00a7a{0} a \u00e9t\u00e9 re\u00e7u de {1} moneySentTo=\u00a7a{0} a \u00e9t\u00e9 envoy\u00e9 \u00e0 {1} moneyTaken={0} pr\u00e9lev\u00e9(s) de votre compte. @@ -196,10 +196,10 @@ month=mois months=mois moreThanZero=Les quantit\u00e9s doivent \u00eatre sup\u00e9rieures \u00e0 z\u00e9ro. msgFormat=\u00a77[{0}\u00a77 -> {1}\u00a77] \u00a7f{2} -muteExempt=\u00a7cVous ne pouvez pas r\u00e9duire ce joueur au silence. mutedPlayer=Le joueur {0} est d\u00e9sormais muet. mutedPlayerFor={0} a \u00e9t\u00e9 muet pour {1}. mutedUserSpeaks={0} a essay\u00e9 de parler mais est muet. +muteExempt=\u00a7cVous ne pouvez pas r\u00e9duire ce joueur au silence. nearbyPlayers=Joueurs dans les environs : {0} needTpohere=Vous avez besoin de l'acc\u00c3\u00a8s \u00e0 /tpohere pour t\u00e9l\u00e9porter d'autres joueurs. negativeBalanceError=L'utilisateur n'est pas autoris\u00e9 \u00e0 avoir un solde n\u00e9gatif. @@ -221,6 +221,7 @@ noKitPermission=\u00a7cVous avez besoin de la permission \u00a7c{0}\u00a7c pour noKits=\u00a77Il n'y a pas encore de kits disponibles. noMail=Vous n'avez pas de courrier noMotd=\u00a7cIl n'y a pas de message su jour. +none=aucun noNewMail=\u00a77Vous n'avez pas de courrier. noPendingRequest=Vous n'avez pas de requ\u00eate non lue. noPerm=\u00a7cVous n''avez pas la permission \u00a7f{0}\u00a7c. @@ -228,30 +229,21 @@ noPermToSpawnMob=\u00a7cVous n'avez pas la permission d'invoquer cette cr\u00e9a noPlacePermission=\u00a7cVous n'avez pas la permission de placer un bloc pr\u00c3\u00a8 de cette pancarte. noPowerTools=Vous n'avez pas d'outil macro associ\u00e9. noRules=\u00a7cIl n'y a pas encore de r\u00e8gles d\u00e9finies. -noWarpsDefined=Aucun point de t\u00e9l\u00e9portation d\u00e9fini. -none=aucun notAllowedToQuestion=\u00a7cVous n'\u00eates pas autoris\u00e9 \u00e0 poser des questions. notAllowedToShout=\u00a7cVous n'\u00eates pas autoris\u00e9 \u00e0 crier. notEnoughExperience=Vous n'avez pas assez d'exp\u00e9rience. notEnoughMoney=Vous n'avez pas les fonds n\u00e9cessaires. +nothingInHand = \u00a7cVous n'avez rien en main. notRecommendedBukkit=* ! * La version de Bukkit n'est pas celle qui est recommand\u00e9 pour cette version de Essentials. notSupportedYet=Pas encore pris en charge. -nothingInHand = \u00a7cVous n'avez rien en main. now=maintenant +noWarpsDefined=Aucun point de t\u00e9l\u00e9portation d\u00e9fini. nuke=Que la mort s'abatte sur eux ! numberRequired=Il faut fournir un nombre ici. onlyDayNight=/time ne supporte que (jour) day/night (nuit). onlyPlayers=Seulement les joueurs en jeu peuvent utiliser {0}. onlySunStorm=/weather ne supporte que (soleil) sun/storm (temp\u00eate). orderBalances=Classement des balance de {0} utilisateurs, patientez ... -pTimeCurrent=Pour \u00a7e{0}\u00a7f l''heure est {1}. -pTimeCurrentFixed=L''heure de \u00a7e{0}\u00a7f est fix\u00e9e \u00e0 {1}. -pTimeNormal=\u00a7fPour \u00a7e{0}\u00a7f l'heure est normale et correspond au server. -pTimeOthersPermission=\u00a7cVous n'etes pas autoris\u00e9 \u00e0 changer l'heure des autres joueurs. -pTimePlayers=Ces joueurs ont leur propre horraire : -pTimeReset=l''heure a \u00e9t\u00e9 r\u00e9initialis\u00e9e \u00e0 : \u00a7e{0} -pTimeSet=l''heure du joueur a \u00e9t\u00e9 r\u00e9egl\u00e9ee \u00e0 \u00a73{0}\u00a7f pour : \u00a7e{1} -pTimeSetFixed=l''heure du joueur a \u00e9t\u00e9 fix\u00e9e \u00e0 : \u00a7e{1} parseError=Erreur de conversion {0} \u00e0 la ligne {1} pendingTeleportCancelled=\u00a7cRequete de t\u00e9l\u00e9portation annul\u00e9e. permissionsError=Permissions/GroupManager manquant, les pr\u00e9fixes et suffixes ne seront pas affich\u00e9s. @@ -279,6 +271,14 @@ powerToolRemoveAll=Toutes les commandes retir\u00e9es de {0}. powerToolsDisabled=Toutes vos commandes assign\u00e9es ont \u00e9t\u00e9 retir\u00e9es. powerToolsEnabled=Toutes vos commandes assign\u00e9es ont \u00e9t\u00e9 activ\u00e9es. protectionOwner=\u00a76[EssentialsProtect] Propri\u00e9taire de la protection : {0} +pTimeCurrent=Pour \u00a7e{0}\u00a7f l''heure est {1}. +pTimeCurrentFixed=L''heure de \u00a7e{0}\u00a7f est fix\u00e9e \u00e0 {1}. +pTimeNormal=\u00a7fPour \u00a7e{0}\u00a7f l'heure est normale et correspond au server. +pTimeOthersPermission=\u00a7cVous n'etes pas autoris\u00e9 \u00e0 changer l'heure des autres joueurs. +pTimePlayers=Ces joueurs ont leur propre horraire : +pTimeReset=l''heure a \u00e9t\u00e9 r\u00e9initialis\u00e9e \u00e0 : \u00a7e{0} +pTimeSet=l''heure du joueur a \u00e9t\u00e9 r\u00e9egl\u00e9ee \u00e0 \u00a73{0}\u00a7f pour : \u00a7e{1} +pTimeSetFixed=l''heure du joueur a \u00e9t\u00e9 fix\u00e9e \u00e0 : \u00a7e{1} questionFormat=\u00a77[Question]\u00a7f {0} readNextPage=Utilisez /{0} {1} pour lire la page suivante. reloadAllPlugins=\u00a77Toutes les extensions ont \u00e9t\u00e9 recharg\u00e9es. @@ -301,6 +301,7 @@ seconds=secondes seenOffline=Le joueur {0} est hors ligne depuis {1} seenOnline=Le joueur {0} est en ligne depuis {1} serverFull=Le serveur est plein. +serverTotal=Server Total: {0} setSpawner=Type de g\u00e9n\u00e9rateur chang\u00e9 en {0} sheepMalformedColor=Couleur mal form\u00e9e. shoutFormat=\u00a77[Crie]\u00a7f {0} @@ -311,8 +312,8 @@ signProtectInvalidLocation=\u00a74Vous n'avez pas l'autorisation de cr\u00e9er u similarWarpExist=Un point de t\u00e9l\u00e9portation avec un nom similaire existe d\u00e9j\u00e0. slimeMalformedSize=Taille mal form\u00e9e. soloMob=Ce cr\u00e9ature aime \u00eatre seul. -spawnSet=\u00a77Le point de d\u00e9part a \u00e9t\u00e9 d\u00e9fini pour le groupe {0}. spawned=invoqu\u00e9(s) +spawnSet=\u00a77Le point de d\u00e9part a \u00e9t\u00e9 d\u00e9fini pour le groupe {0}. suicideMessage=\u00a77Au revoir monde cruel... suicideSuccess=\u00a77{0} s''est suicid\u00e9. survival=survie @@ -320,20 +321,20 @@ takenFromAccount=\u00a7c{0} ont \u00e9t\u00e9 retir\u00e9 de votre compte. takenFromOthersAccount=\u00a7c{0} a \u00e9t\u00e9 r\u00e9tir\u00e9 du compte de {1}. teleportAAll=\u00a77Demande de t\u00e9l\u00e9portation envoy\u00e9e \u00e0 tous les joueurs... teleportAll=\u00a77T\u00e9l\u00e9poration de tous les joueurs. +teleportationCommencing=\u00a77D\u00e9but de la t\u00e9l\u00e9portation... +teleportationDisabled=\u00a77T\u00e9l\u00e9poration d\u00e9sactiv\u00e9. +teleportationEnabled=\u00a77T\u00e9l\u00e9portation activ\u00e9e. teleportAtoB=\u00a77{0}\u00a77 vous a t\u00e9l\u00e9port\u00e9 \u00e0 {1}\u00a77. teleportDisabled={0} a la t\u00e9l\u00e9portation d\u00e9sactiv\u00e9. teleportHereRequest=\u00a7c{0}\u00a7c Vous a demand\u00e9 de vous t\u00e9l\u00e9porter \u00e0 lui/elle. +teleporting=\u00a77T\u00e9l\u00e9poration en cours... +teleportingPortal=\u00a77T\u00e9l\u00e9portation via portail. teleportNewPlayerError=\u00c9chec de la t\u00e9l\u00e9portation du nouveau joueur. teleportRequest=\u00a7c{0}\u00a7c vous demande s''il peut se t\u00e9l\u00e9porter vers vous. teleportRequestTimeoutInfo=\u00a77Cette demande de t\u00e9l\u00e9portation expirera dans {0} secondes. teleportTop=\u00a77T\u00e9l\u00e9portation vers le haut. -teleportationCommencing=\u00a77D\u00e9but de la t\u00e9l\u00e9portation... -teleportationDisabled=\u00a77T\u00e9l\u00e9poration d\u00e9sactiv\u00e9. -teleportationEnabled=\u00a77T\u00e9l\u00e9portation activ\u00e9e. -teleporting=\u00a77T\u00e9l\u00e9poration en cours... -teleportingPortal=\u00a77T\u00e9l\u00e9portation via portail. -tempBanned=Banni temporairement du serveur pour {0} tempbanExempt=\u00a77Vous ne pouvez pas bannir temporairement ce joueur. +tempBanned=Banni temporairement du serveur pour {0} thunder=Vous avez {0} la foudre dans votre monde. thunderDuration=Vous avez {0} la foudre dans le serveur pendant {1} secondes. timeBeforeHeal=Temps avant le prochain soin : {0} @@ -364,25 +365,25 @@ unlimitedItemPermission=\u00a7cPas de permission pour l''objet illimit\u00e9 {0} unlimitedItems=Objets illimit\u00e9s: unmutedPlayer=Le joueur {0} n''est plus muet. upgradingFilesError=Erreur durant la mise \u00e0 jour des fichiers. +userdataMoveBackError=Echec du d\u00e9placement de userdata/{0}.tmp vers userdata/{1} +userdataMoveError=Echec du d\u00e9placement de userdata/{0} vers userdata/{1}.tmp userDoesNotExist=L''utilisateur {0} n''existe pas. userIsAway={0} s'est mis en AFK userIsNotAway={0} n'est plus AFK userJailed=\u00a77Vous avez \u00e9t\u00e9 emprisonn\u00e9. userUsedPortal={0} a utilis\u00e9 un portail existant. -userdataMoveBackError=Echec du d\u00e9placement de userdata/{0}.tmp vers userdata/{1} -userdataMoveError=Echec du d\u00e9placement de userdata/{0} vers userdata/{1}.tmp usingTempFolderForTesting=Utilise un fichier temporaire pour un test. versionMismatch=Versions diff\u00e9rentes ! Mettez s''il vous plait {0} \u00e0 la m\u00eame version. versionMismatchAll=Mauvaise version ! S'il vous plait mettez des jars Essentials de version identique. voiceSilenced=\u00a77Vous avez \u00e9t\u00e9 r\u00e9duit au silence. warpDeleteError=Probl\u00c3\u00a8me concernant la suppression du fichier warp. +warpingTo=\u00a77T\u00e9l\u00e9portation vers {0}. warpListPermission=\u00a7cVous n'avez pas la permission d'afficher la liste des points de t\u00e9l\u00e9portation. warpNotExist=Ce point de t\u00e9l\u00e9portation n'existe pas. -warpSet=\u00a77Le point de t\u00e9l\u00e9portation {0} a \u00e9t\u00e9 cr\u00e9\u00e9. -warpUsePermission=\u00a7cVous n'avez pas la permission d'utiliser ce point de t\u00e9l\u00e9portation. -warpingTo=\u00a77T\u00e9l\u00e9portation vers {0}. warps=point de t\u00e9l\u00e9portations : {0} warpsCount=\u00a77Il y a {0} points de t\u00e9l\u00e9portations. Page {1} sur {2}. +warpSet=\u00a77Le point de t\u00e9l\u00e9portation {0} a \u00e9t\u00e9 cr\u00e9\u00e9. +warpUsePermission=\u00a7cVous n'avez pas la permission d'utiliser ce point de t\u00e9l\u00e9portation. weatherStorm=\u00a77Vous avez programm\u00e9 l''orage dans {0} weatherStormFor=\u00a77Vous avez programm\u00e9 l''orage dans {0} pour {1} secondes. weatherSun=\u00a77Vous avez programm\u00e9 le beau temps dans {0} diff --git a/Essentials/src/messages_nl.properties b/Essentials/src/messages_nl.properties index 16d942b0d..8997bfec6 100644 --- a/Essentials/src/messages_nl.properties +++ b/Essentials/src/messages_nl.properties @@ -11,9 +11,9 @@ alertPlaced=geplaatst: alertUsed=gebruikt: autoAfkKickReason=You have been kicked for idling more than {0} minutes. backAfterDeath=\u00a77Gebruik het /back command om terug te keren naar je sterfplaats. -backUsageMsg=\u00a77Naar de vorige locatie aan het gaan. backupFinished=Backup voltooid backupStarted=Backup gestart +backUsageMsg=\u00a77Naar de vorige locatie aan het gaan. balance=\u00a77Saldo: {0} balanceTop=\u00a77 Top saldi ({0}) banExempt=\u00a77Je kunt deze speler niet verbannen. @@ -64,14 +64,14 @@ depth=\u00a77Je zit op zeeniveau. depthAboveSea=\u00a77Je zit {0} blok(ken) boven zeeniveau. depthBelowSea=\u00a77Je zit {0} blok(ken) onder zeeniveau. destinationNotSet=Bestemming niet ingesteld -disableUnlimited=\u00a77Oneindig plaatsen van {0} uitgeschakeld voor {1}. disabled=uitgeschakeld disabledToSpawnMob=Spawning this mob was disabled in the config file. +disableUnlimited=\u00a77Oneindig plaatsen van {0} uitgeschakeld voor {1}. dontMoveMessage=\u00a77Beginnen met teleporteren in {0}. Niet bewegen. downloadingGeoIp=Bezig met downloaden van GeoIP database ... Dit kan een tijdje duren (country: 0.6 MB, city: 20MB) duplicatedUserdata=Dubbele userdata: {0} en {1}. -enableUnlimited=\u00a77Oneindig aantal {0} aan {1} gegeven. enabled=ingeschakeld +enableUnlimited=\u00a77Oneindig aantal {0} aan {1} gegeven. enchantmentApplied = \u00a77The enchantment {0} has been applied to your item in hand. enchantmentNotFound = \u00a7cEnchantment not found enchantmentPerm = \u00a7cYou do not have the permission for {0} @@ -99,9 +99,9 @@ gcentities= entities gcfree=Vrij geheugen: {0} MB gcmax=Maximaal geheugen: {0} MB gctotal=Gealloceerd geheugen: {0} MB +geoipJoinFormat=Speler {0} komt uit {1} geoIpUrlEmpty=GeoIP download url is leeg. geoIpUrlInvalid=GeoIP download url is ongeldig. -geoipJoinFormat=Speler {0} komt uit {1} godDisabledFor=uitgeschakeld voor {0} godEnabledFor=ingeschakeld voor {0} godMode=\u00a77God mode {0}. @@ -112,9 +112,9 @@ helpConsole=type ? om de consolehelp weer te geven. helpOp=\u00a7c[HelpOp]\u00a7f \u00a77{0}:\u00a7f {1} helpPages=Pagina \u00a7c{0}\u00a7f van de \u00a7c{1}\u00a7f: holeInFloor=Gat in de vloer +homes=Homes: {0} homeSet=\u00a77Home ingesteld. homeSetToBed=\u00a77Je home is is nu verplaatst naar dit bed. -homes=Homes: {0} hour=uur hours=uren ignorePlayer=Je negeert {0} vanaf nu. @@ -124,28 +124,28 @@ infoChapterPages=Hoofdstuk {0}, Pagina \u00a7c{1}\u00a7f van de \u00a7c{2}\u00a7 infoFileDoesNotExist=Bestand info.txt bestaat niet. Bezig met aanmaken. infoPages=Pagina \u00a7c{0}\u00a7f van de \u00a7c{1}\u00a7f: infoUnknownChapter=Onbekend hoofdstuk. -invBigger=De inventory van de andere speler is groter dan die van jou. -invRestored=Je inventory is hersteld. -invSee=Je kijkt naar de inventory van {0}. -invSeeHelp=Type /invsee om je inventory te herstellen. invalidCharge=\u00a7cOngeldig te laden. invalidMob=Ongeldig mob type. invalidServer=Ongeldige server! invalidSignLine=Regel {0} op het bordje is ongeldig. invalidWorld=\u00a7cOngeldige wereld. +invBigger=De inventory van de andere speler is groter dan die van jou. inventoryCleared=\u00a77inventory leeggemaakt. inventoryClearedOthers=\u00a77inventory van \u00a7c{0}\u00a77 leeggemaakt. +invRestored=Je inventory is hersteld. +invSee=Je kijkt naar de inventory van {0}. +invSeeHelp=Type /invsee om je inventory te herstellen. is=is itemCannotBeSold=Dat voorwerp kan niet aan de server worden verkocht. itemMustBeStacked=Voorwerp moet geruild worden als stapel. Een hoeveelheid van 2 moet dus geruild worden als twee stapels, etc. itemNotEnough1=\u00a7cJe hebt niet genoeg van dat voorwerp om te verkopen. itemNotEnough2=\u00a77Type /sell itemname Als je alles daarvan wilt verkopen itemNotEnough3=\u00a77/sell itemname -1 zorgt ervoor dat ze allemaal behalve 1 worden verkocht, etc. +itemsCsvNotLoaded=De item kunnen niet geladen worden.csv. itemSellAir=Je wilde serieus lucht verkopen? Plaats een voorwerp in je hand. itemSold=\u00a77Verkocht voor \u00a7c{0} \u00a77({1} {2} voorwerpen voor {3} per stuk) itemSoldConsole={0} verkocht {1} voor \u00a77{2} \u00a77({3} voorwerpen voor {4} per stuk) itemSpawn=\u00a77Geeft {0} {1} -itemsCsvNotLoaded=De item kunnen niet geladen worden.csv. jailAlreadyIncarcerated=\u00a7cPerson is already in jail: {0} jailMessage=\u00a7cYou do the crime, you do the time. jailNotExist=Die gevangenis bestaat niet. @@ -162,8 +162,8 @@ kitError=\u00a7cEr zijn geen geldige kits. kitErrorHelp=\u00a7cMisschien mist er een hoeveelheid van het item in de configuratie? kitGive=\u00a77Kit {0} wordt gegeven. kitInvFull=\u00a7cJe inventory was vol, de kit wordt op de grond geplaatst -kitTimed=\u00a7cJe kan die kit pas weer gebruiken over {0}. kits=\u00a77Kits: {0} +kitTimed=\u00a7cJe kan die kit pas weer gebruiken over {0}. lightningSmited=\u00a77Je bent zojuist verbrand lightningUse=\u00a77Brand {0} listAfkTag = \u00a77[AFK]\u00a7f @@ -175,9 +175,9 @@ localFormat=Local: <{0}> {1} mailClear=\u00a7cType /mail clear, om ej berichten als gelezen te markeren. mailCleared=\u00a77Bericht geklaard! mailSent=\u00a77Bericht verzonden! -markMailAsRead=\u00a7cType /mail clear, om je berichten als gelezen te markeren markedAsAway=\u00a77Je staat nu als afwezig gemeld. markedAsNotAway=\u00a77Je staat niet meer als afwezig gemeld. +markMailAsRead=\u00a7cType /mail clear, om je berichten als gelezen te markeren maxHomes=You cannot set more than {0} homes. mayNotJail=\u00a7cJe mag die speler niet in de gevangenis zetten. me=me @@ -185,10 +185,10 @@ minute=minuut minutes=minuten missingItems=Je hebt geen {0}x {1}. missingPrefixSuffix=Er mist een prefix of suffix voor {0} +mobsAvailable=\u00a77Mobs: {0} mobSpawnError=Fout bij het veranderen van de mob spawner. mobSpawnLimit=Grootte van de mob hang af van het server limiet mobSpawnTarget=Target blok moet een mob spawner zijn. -mobsAvailable=\u00a77Mobs: {0} moneyRecievedFrom=\u00a7a{0} is ontvangen van {1} moneySentTo=\u00a7a{0} is verzonden naar {1} moneyTaken={0} van je bankrekening afgehaald. @@ -196,10 +196,10 @@ month=maand months=maanden moreThanZero=Het aantal moet groter zijn dan 0. msgFormat=\u00a77[{0}\u00a77 -> {1}\u00a77] \u00a7f{2} -muteExempt=\u00a7cJe kan deze speler niet muten. mutedPlayer=Speler {0} gemute. mutedPlayerFor=Speler {0} is gemute voor {1}. mutedUserSpeaks={0} probeerde te praten, maar is gemute. +muteExempt=\u00a7cJe kan deze speler niet muten. nearbyPlayers=Players nearby: {0} needTpohere=Je moet toegang krijgen tot /tpohere om naar andere spelers te teleporteren. negativeBalanceError=Speler is niet toegestaan om een negatief saldo te hebben. @@ -221,6 +221,7 @@ noKitPermission=\u00a7cJe hebt de \u00a7c{0}\u00a7c toestemming nodig om die kit noKits=\u00a77Er zijn nog geen kits beschikbaar noMail=Je hebt geen berichten noMotd=\u00a7cEr is geen bericht van de dag. +none=geen noNewMail=\u00a77Je hebt geen nieuwe berichten. noPendingRequest=Je hebt geen aanvragen. noPerm=\u00a7cJe hebt de \u00a7f{0}\u00a7c toestemming niet. @@ -228,30 +229,21 @@ noPermToSpawnMob=\u00a7cYou don''t have permission to spawn this mob. noPlacePermission=\u00a7cJe hebt geen toestemming om een blok naast die sign te plaatsen. noPowerTools=You have no power tools assigned. noRules=\u00a7cEr zijn nog geen regels gegeven. -noWarpsDefined=Geen warps gedefinieerd -none=geen notAllowedToQuestion=\u00a7cJe bent niet bevoegd om de vraag functie te gebruiken. notAllowedToShout=\u00a7cJe bent niet bevoegd om de roep functie te gebruiken. notEnoughExperience=You do not have enough experience. notEnoughMoney=Je hebt niet voldoende middelen. +nothingInHand = \u00a7cYou have nothing in your hand. notRecommendedBukkit=* ! * De Bukkit versie is niet de aangeraden build voor Essentials. notSupportedYet=Nog niet ondersteund. -nothingInHand = \u00a7cYou have nothing in your hand. now=nu +noWarpsDefined=Geen warps gedefinieerd nuke=May death rain upon them numberRequired=Er moet daar een nummer, grapjas. onlyDayNight=/time ondersteund alleen day/night. onlyPlayers=Alleen in-game spelers kunnen {0} gebruiken. onlySunStorm=/weather only supports sun/storm. orderBalances=Ordering balances of {0} users, please wait ... -pTimeCurrent=\u00a7e{0}''s\u00a7f time is {1}. -pTimeCurrentFixed=\u00a7e{0}''s\u00a7f time is fixed to {1}. -pTimeNormal=\u00a7e{0}''s\u00a7f time is normal and matches the server. -pTimeOthersPermission=\u00a7cYou are not authorized to set other players'' time. -pTimePlayers=These players have their own time: -pTimeReset=Player time has been reset for: \u00a7e{0} -pTimeSet=Player time is set to \u00a73{0}\u00a7f for: \u00a7e{1} -pTimeSetFixed=Player time is fixed to \u00a73{0}\u00a7f for: \u00a7e{1} parseError=Fout bij ontleding {0} op regel {1} pendingTeleportCancelled=\u00a7cAangevraagde teleportatie afgelast. permissionsError=Permissions/GroupManager ontbreekt; chat prefixes/suffixes worden uitgeschakeld. @@ -279,6 +271,14 @@ powerToolRemoveAll=All commands removed from {0}. powerToolsDisabled=All of your power tools have been disabled. powerToolsEnabled=All of your power tools have been enabled. protectionOwner=\u00a76[EssentialsProtect] Beschermingeigenaar: {0} +pTimeCurrent=\u00a7e{0}''s\u00a7f time is {1}. +pTimeCurrentFixed=\u00a7e{0}''s\u00a7f time is fixed to {1}. +pTimeNormal=\u00a7e{0}''s\u00a7f time is normal and matches the server. +pTimeOthersPermission=\u00a7cYou are not authorized to set other players'' time. +pTimePlayers=These players have their own time: +pTimeReset=Player time has been reset for: \u00a7e{0} +pTimeSet=Player time is set to \u00a73{0}\u00a7f for: \u00a7e{1} +pTimeSetFixed=Player time is fixed to \u00a73{0}\u00a7f for: \u00a7e{1} questionFormat=\u00a77[Vraag]\u00a7f {0} readNextPage=Type /{0} {1} to read the next page reloadAllPlugins=\u00a77Alle plugins zijn herladen. @@ -301,6 +301,7 @@ seconds=seconde seenOffline=Speler {0} is offline vanaf {1} seenOnline=Speler {0} is online vanaf {1} serverFull=Server is vol +serverTotal=Server Total: {0} setSpawner=Changed spawner type to {0} sheepMalformedColor=Misvoormde kleur. shoutFormat=\u00a77[Shout]\u00a7f {0} @@ -311,8 +312,8 @@ signProtectInvalidLocation=\u00a74You are not allowed to create sign here. similarWarpExist=Er bestaat al een warp met dezelfde naam. slimeMalformedSize=Misvoormde grootte. soloMob=Die mob is liever in zijn eentje -spawnSet=\u00a77Spawn locatie voor de groep {0} ingesteld. spawned=gespawned +spawnSet=\u00a77Spawn locatie voor de groep {0} ingesteld. suicideMessage=\u00a77Vaarwel vreedzame wereld... suicideSuccess= \u00a77{0} pleegde zelfmoord survival=survival @@ -320,20 +321,20 @@ takenFromAccount=\u00a7c{0} is van je bank rekening afgehaald. takenFromOthersAccount=\u00a7c{0} is overgenomen uit {1} account. teleportAAll=\u00a77Teleporting request sent to all players... teleportAll=\u00a77Bezig met teleporteren van alle spelers... +teleportationCommencing=\u00a77Aan het beginnen met teleporteren... +teleportationDisabled=\u00a77Teleportatie uitgeschakeld. +teleportationEnabled=\u00a77Teleportatie ingeschakeld. teleportAtoB=\u00a77{0}\u00a77 is naar {1}\u00a77 geteleporteerd. teleportDisabled={0} heeft teleporteren uit gezet. teleportHereRequest=\u00a7c{0}\u00a7c Heeft gevraagd of hij/zij naar jou mag teleporteren. +teleporting=\u00a77Bezig met teleporteren... +teleportingPortal=\u00a77Bezig met teleporteren via de portal. teleportNewPlayerError=Fout bij het teleporteren van nieuwe speler. teleportRequest=\u00a7c{0}\u00a7c vraagt of hij jou kan teleporteren. teleportRequestTimeoutInfo=\u00a77This request will timeout after {0} seconds. teleportTop=\u00a77Bezig met teleporteren naar de top. -teleportationCommencing=\u00a77Aan het beginnen met teleporteren... -teleportationDisabled=\u00a77Teleportatie uitgeschakeld. -teleportationEnabled=\u00a77Teleportatie ingeschakeld. -teleporting=\u00a77Bezig met teleporteren... -teleportingPortal=\u00a77Bezig met teleporteren via de portal. -tempBanned=Tijdelijk geband voor {0} tempbanExempt=\u00a77Je mag deze speler niet een tempban geven +tempBanned=Tijdelijk geband voor {0} thunder= Je {0} onweert de wereld thunderDuration=Je {0} onweert de wereld voor {1} seconde. timeBeforeHeal=Afkoeltijd tot de volgende heal: {0} @@ -364,25 +365,25 @@ unlimitedItemPermission=\u00a7cOnbevoegd om oneindig {0} te hebben. unlimitedItems=Oneindige voorwerpen: unmutedPlayer=Speler {0} mag weer spreken. upgradingFilesError=Fout tijdens het upgraden van de bestanden +userdataMoveBackError=Fout bij het verplaasten van userdata/{0}.tmp naar userdata/{1} +userdataMoveError=Fout bij het verplaasten van userdata/{0} naar userdata/{1}.tmp userDoesNotExist=Speler {0} bestaat niet. userIsAway={0} is nu AFK userIsNotAway={0} is niet meer AFK userJailed=\u00a77Je bent in de gevangenis gezet. userUsedPortal={0} gebruikte een bestaande uitgangs portal. -userdataMoveBackError=Fout bij het verplaasten van userdata/{0}.tmp naar userdata/{1} -userdataMoveError=Fout bij het verplaasten van userdata/{0} naar userdata/{1}.tmp usingTempFolderForTesting=Tijdelijke map om te testen: versionMismatch=Verkeerde versie! Update {0} naar dezelfde versie. versionMismatchAll=Verkeerde versie! Update alle Essentials jars naar dezelfde versie. voiceSilenced=\u00a77Je kan niet meer praten warpDeleteError=Fout bij het verwijderen van het warp bestand. +warpingTo=\u00a77Aan het warpen naar {0}. warpListPermission=\u00a7cJe hebt geen toegang om die warp te maken. warpNotExist=Die warp bestaat niet. -warpSet=\u00a77Warp {0} ingesteld. -warpUsePermission=\u00a7cOnbevoegd om die warp te gebruiken. -warpingTo=\u00a77Aan het warpen naar {0}. warps=Warps: {0} warpsCount=\u00a77There are {0} warps. Showing page {1} of {2}. +warpSet=\u00a77Warp {0} ingesteld. +warpUsePermission=\u00a7cOnbevoegd om die warp te gebruiken. weatherStorm=\u00a77Je hebt het weer naar storm gezet in de {0} weatherStormFor=\u00a77Je hebt het weer in de {0} naar storm gezet voor {1} seconde weatherSun=\u00a77Je hebt het weer naar zon gezet in de {0} From 0df8cb0b0775c0905be495361952e2675c705450 Mon Sep 17 00:00:00 2001 From: KHobbits Date: Thu, 23 Feb 2012 17:25:00 +0000 Subject: [PATCH 47/59] Write to user files less, on money update. --- Essentials/src/com/earth2me/essentials/User.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/User.java b/Essentials/src/com/earth2me/essentials/User.java index ce4d1ce27..7225e1dba 100644 --- a/Essentials/src/com/earth2me/essentials/User.java +++ b/Essentials/src/com/earth2me/essentials/User.java @@ -383,8 +383,8 @@ public class User extends UserData implements Comparable, IReplyTo, IUser public void updateMoneyCache(final double value) { - if (ess.getPaymentMethod().hasMethod()) - { + if (ess.getPaymentMethod().hasMethod() && super.getMoney() != value) + { super.setMoney(value); } } From 3bf7fa1362fdf8f1c92da2664b7ca7797fa4ebcd Mon Sep 17 00:00:00 2001 From: ElgarL Date: Sat, 25 Feb 2012 09:22:54 +0000 Subject: [PATCH 48/59] Prevent adding inheritances to globalgroups. These are permissions collections, not player groups. --- EssentialsGroupManager/src/Changelog.txt | 3 +- .../anjocaido/groupmanager/GroupManager.java | 10 +++ .../anjocaido/groupmanager/data/Group.java | 73 +++++++++++-------- 3 files changed, 56 insertions(+), 30 deletions(-) diff --git a/EssentialsGroupManager/src/Changelog.txt b/EssentialsGroupManager/src/Changelog.txt index cb14c4e6e..bb5cbf550 100644 --- a/EssentialsGroupManager/src/Changelog.txt +++ b/EssentialsGroupManager/src/Changelog.txt @@ -143,4 +143,5 @@ v 1.9: This also means we no longer update permissions before we change worlds. - A command of '/manload' with no world arguments now performs a full reload of GM. - Update for Bukkit R5 compatability. - - Removed BukkitPermsOverride as this is now the default with bukkit handling child nodes. \ No newline at end of file + - Removed BukkitPermsOverride as this is now the default with bukkit handling child nodes. + - Prevent adding inheritances to globalgroups. These are permissions collections, not player groups. \ No newline at end of file diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java index d8d151200..3c39c24d7 100644 --- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java +++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java @@ -1019,6 +1019,11 @@ public class GroupManager extends JavaPlugin { sender.sendMessage(ChatColor.RED + "Group 2 does not exists!"); return false; } + if (auxGroup.isGlobal()) { + sender.sendMessage(ChatColor.RED + "GlobalGroups do NOT support inheritance."); + return false; + } + // VALIDANDO PERMISSAO if (permissionHandler.searchGroupInInheritance(auxGroup, auxGroup2.getName(), null)) { sender.sendMessage(ChatColor.RED + "Group " + auxGroup.getName() + " already inherits " + auxGroup2.getName() + " (might not be directly)"); @@ -1052,6 +1057,11 @@ public class GroupManager extends JavaPlugin { sender.sendMessage(ChatColor.RED + "Group 2 does not exists!"); return false; } + if (auxGroup.isGlobal()) { + sender.sendMessage(ChatColor.RED + "GlobalGroups do NOT support inheritance."); + return false; + } + // VALIDANDO PERMISSAO if (!permissionHandler.searchGroupInInheritance(auxGroup, auxGroup2.getName(), null)) { sender.sendMessage(ChatColor.RED + "Group " + auxGroup.getName() + " does not inherits " + auxGroup2.getName() + "."); diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/data/Group.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/data/Group.java index 5a39600b6..396240ec6 100644 --- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/data/Group.java +++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/data/Group.java @@ -48,6 +48,15 @@ public class Group extends DataUnit implements Cloneable { public Group(String name) { super(name); } + + /** + * Is this a GlobalGroup + * + * @return + */ + public boolean isGlobal() { + return (getDataSource() == null); + } /** * Clone this group @@ -57,7 +66,7 @@ public class Group extends DataUnit implements Cloneable { public Group clone() { Group clone; - if (getDataSource() == null) { + if (isGlobal()) { clone = new Group(this.getName()); } else { clone = new Group(getDataSource(), this.getName()); @@ -85,7 +94,7 @@ public class Group extends DataUnit implements Cloneable { Group clone = dataSource.createGroup(this.getName()); // Don't add inheritance for GlobalGroups - if (getDataSource() != null) { + if (!isGlobal()) { clone.inherits = new ArrayList(this.getInherits()); } for (String perm : this.getPermissionList()) { @@ -110,26 +119,30 @@ public class Group extends DataUnit implements Cloneable { * @param inherit the inherits to set */ public void addInherits(Group inherit) { - if (!this.getDataSource().groupExists(inherit.getName())) { - getDataSource().addGroup(inherit); - } - if (!inherits.contains(inherit.getName().toLowerCase())) { - inherits.add(inherit.getName().toLowerCase()); - } - flagAsChanged(); - if (GroupManager.isLoaded()) { - GroupManager.BukkitPermissions.updateAllPlayers(); - GroupManagerEventHandler.callEvent(this, Action.GROUP_INHERITANCE_CHANGED); - } + if (!isGlobal()) { + if (!this.getDataSource().groupExists(inherit.getName())) { + getDataSource().addGroup(inherit); + } + if (!inherits.contains(inherit.getName().toLowerCase())) { + inherits.add(inherit.getName().toLowerCase()); + } + flagAsChanged(); + if (GroupManager.isLoaded()) { + GroupManager.BukkitPermissions.updateAllPlayers(); + GroupManagerEventHandler.callEvent(this, Action.GROUP_INHERITANCE_CHANGED); + } + } } public boolean removeInherits(String inherit) { - if (this.inherits.contains(inherit.toLowerCase())) { - this.inherits.remove(inherit.toLowerCase()); - flagAsChanged(); - GroupManagerEventHandler.callEvent(this, Action.GROUP_INHERITANCE_CHANGED); - return true; - } + if (!isGlobal()) { + if (this.inherits.contains(inherit.toLowerCase())) { + this.inherits.remove(inherit.toLowerCase()); + flagAsChanged(); + GroupManagerEventHandler.callEvent(this, Action.GROUP_INHERITANCE_CHANGED); + return true; + } + } return false; } @@ -145,15 +158,17 @@ public class Group extends DataUnit implements Cloneable { * @param varList */ public void setVariables(Map varList) { - GroupVariables temp = new GroupVariables(this, varList); - variables.clearVars(); - for (String key : temp.getVarKeyList()) { - variables.addVar(key, temp.getVarObject(key)); - } - flagAsChanged(); - if (GroupManager.isLoaded()) { - GroupManager.BukkitPermissions.updateAllPlayers(); - GroupManagerEventHandler.callEvent(this, Action.GROUP_INFO_CHANGED); - } + if (!isGlobal()) { + GroupVariables temp = new GroupVariables(this, varList); + variables.clearVars(); + for (String key : temp.getVarKeyList()) { + variables.addVar(key, temp.getVarObject(key)); + } + flagAsChanged(); + if (GroupManager.isLoaded()) { + GroupManager.BukkitPermissions.updateAllPlayers(); + GroupManagerEventHandler.callEvent(this, Action.GROUP_INFO_CHANGED); + } + } } } From 78fef80bafd0e5aaad82210840b4416753614047 Mon Sep 17 00:00:00 2001 From: ElgarL Date: Sat, 25 Feb 2012 09:29:54 +0000 Subject: [PATCH 49/59] Prevent promoting players to, and demoting to GlobalGroups. --- EssentialsGroupManager/src/Changelog.txt | 3 +- .../anjocaido/groupmanager/GroupManager.java | 28 +++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/EssentialsGroupManager/src/Changelog.txt b/EssentialsGroupManager/src/Changelog.txt index bb5cbf550..1159607ed 100644 --- a/EssentialsGroupManager/src/Changelog.txt +++ b/EssentialsGroupManager/src/Changelog.txt @@ -144,4 +144,5 @@ v 1.9: - A command of '/manload' with no world arguments now performs a full reload of GM. - Update for Bukkit R5 compatability. - Removed BukkitPermsOverride as this is now the default with bukkit handling child nodes. - - Prevent adding inheritances to globalgroups. These are permissions collections, not player groups. \ No newline at end of file + - Prevent adding inheritances and info nodes to globalgroups. These are permissions collections, not player groups. + - Prevent promoting players to, and demoting to GlobalGroups. \ No newline at end of file diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java index 3c39c24d7..b0d46ca1a 100644 --- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java +++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java @@ -398,6 +398,10 @@ public class GroupManager extends JavaPlugin { sender.sendMessage(ChatColor.RED + "Group not found!"); return false; } + if (auxGroup.isGlobal()) { + sender.sendMessage(ChatColor.RED + "Players may not be members of GlobalGroups directly."); + return false; + } // VALIDANDO PERMISSAO if (!isConsole && !isOpOverride && (senderGroup != null ? permissionHandler.inGroup(auxUser.getName(), senderGroup.getName()) : false)) { @@ -1232,6 +1236,10 @@ public class GroupManager extends JavaPlugin { sender.sendMessage(ChatColor.RED + "Group does not exists!"); return false; } + if (auxGroup.isGlobal()) { + sender.sendMessage(ChatColor.RED + "GlobalGroups do NOT support Info Nodes."); + return false; + } // VALIDANDO PERMISSAO // PARECE OK auxString = ""; @@ -1261,6 +1269,10 @@ public class GroupManager extends JavaPlugin { sender.sendMessage(ChatColor.RED + "Group does not exists!"); return false; } + if (auxGroup.isGlobal()) { + sender.sendMessage(ChatColor.RED + "GlobalGroups do NOT support Info Nodes."); + return false; + } // VALIDANDO PERMISSAO if (!auxGroup.getVariables().hasVar(args[1])) { sender.sendMessage(ChatColor.RED + "The group doesn't have directly that variable!"); @@ -1286,6 +1298,10 @@ public class GroupManager extends JavaPlugin { sender.sendMessage(ChatColor.RED + "Group does not exists!"); return false; } + if (auxGroup.isGlobal()) { + sender.sendMessage(ChatColor.RED + "GlobalGroups do NOT support Info Nodes."); + return false; + } // VALIDANDO PERMISSAO // PARECE OK auxString = ""; @@ -1323,6 +1339,10 @@ public class GroupManager extends JavaPlugin { sender.sendMessage(ChatColor.RED + "Group does not exists!"); return false; } + if (auxGroup.isGlobal()) { + sender.sendMessage(ChatColor.RED + "GlobalGroups do NOT support Info Nodes."); + return false; + } // VALIDANDO PERMISSAO auxGroup2 = permissionHandler.nextGroupWithVariable(auxGroup, args[1], null); if (auxGroup2 == null) { @@ -1588,6 +1608,10 @@ public class GroupManager extends JavaPlugin { sender.sendMessage(ChatColor.RED + "Group not found!"); return false; } + if (auxGroup.isGlobal()) { + sender.sendMessage(ChatColor.RED + "Players may not be members of GlobalGroups directly."); + return false; + } // VALIDANDO PERMISSAO if (!isConsole && !isOpOverride && (senderGroup != null ? permissionHandler.inGroup(auxUser.getName(), senderGroup.getName()) : false)) { sender.sendMessage(ChatColor.RED + "Can't modify player with same permissions than you, or higher."); @@ -1644,6 +1668,10 @@ public class GroupManager extends JavaPlugin { sender.sendMessage(ChatColor.RED + "Group not found!"); return false; } + if (auxGroup.isGlobal()) { + sender.sendMessage(ChatColor.RED + "Players may not be members of GlobalGroups directly."); + return false; + } // VALIDANDO PERMISSAO if (!isConsole && !isOpOverride && (senderGroup != null ? permissionHandler.inGroup(auxUser.getName(), senderGroup.getName()) : false)) { sender.sendMessage(ChatColor.RED + "Can't modify player with same permissions than you, or higher."); From 555cbbc75946baf83c177e76e30455a74550bdec Mon Sep 17 00:00:00 2001 From: KHobbits Date: Sat, 25 Feb 2012 17:40:00 +0000 Subject: [PATCH 50/59] Lowering min bukkit to r4 - 1838, this build should still be compatible. --- Essentials/src/com/earth2me/essentials/Essentials.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Essentials/src/com/earth2me/essentials/Essentials.java b/Essentials/src/com/earth2me/essentials/Essentials.java index d8d1f5554..a75e12aad 100644 --- a/Essentials/src/com/earth2me/essentials/Essentials.java +++ b/Essentials/src/com/earth2me/essentials/Essentials.java @@ -66,7 +66,7 @@ import org.yaml.snakeyaml.error.YAMLException; public class Essentials extends JavaPlugin implements IEssentials { - public static final int BUKKIT_VERSION = 1952; + public static final int BUKKIT_VERSION = 1938; private static final Logger LOGGER = Logger.getLogger("Minecraft"); private transient ISettings settings; private final transient TNTExplodeListener tntListener = new TNTExplodeListener(this); From c58c28b44fb2e53b29943e540c12306babf16961 Mon Sep 17 00:00:00 2001 From: KHobbits Date: Sat, 25 Feb 2012 17:57:26 +0000 Subject: [PATCH 51/59] Updating Bukkit: CB #1858, B #1334 --- .../src/com/earth2me/essentials/Essentials.java | 2 +- .../com/earth2me/essentials/OfflinePlayer.java | 17 ++++++++++++----- .../essentials/craftbukkit/FakeWorld.java | 6 ++++++ 3 files changed, 19 insertions(+), 6 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/Essentials.java b/Essentials/src/com/earth2me/essentials/Essentials.java index a75e12aad..ff082efa7 100644 --- a/Essentials/src/com/earth2me/essentials/Essentials.java +++ b/Essentials/src/com/earth2me/essentials/Essentials.java @@ -66,7 +66,7 @@ import org.yaml.snakeyaml.error.YAMLException; public class Essentials extends JavaPlugin implements IEssentials { - public static final int BUKKIT_VERSION = 1938; + public static final int BUKKIT_VERSION = 1958; private static final Logger LOGGER = Logger.getLogger("Minecraft"); private transient ISettings settings; private final transient TNTExplodeListener tntListener = new TNTExplodeListener(this); diff --git a/Essentials/src/com/earth2me/essentials/OfflinePlayer.java b/Essentials/src/com/earth2me/essentials/OfflinePlayer.java index 440d3fad3..ba5f97c71 100644 --- a/Essentials/src/com/earth2me/essentials/OfflinePlayer.java +++ b/Essentials/src/com/earth2me/essentials/OfflinePlayer.java @@ -172,11 +172,6 @@ public class OfflinePlayer implements Player return false; } - public boolean isPlayer() - { - return false; - } - @Override public int getRemainingAir() { @@ -901,4 +896,16 @@ public class OfflinePlayer implements Player { throw new UnsupportedOperationException("Not supported yet."); } + + @Override + public T launchProjectile(Class arg0) + { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public EntityType getType() + { + return EntityType.PLAYER; + } } diff --git a/Essentials/src/com/earth2me/essentials/craftbukkit/FakeWorld.java b/Essentials/src/com/earth2me/essentials/craftbukkit/FakeWorld.java index 0ea06e72b..f39c6e451 100644 --- a/Essentials/src/com/earth2me/essentials/craftbukkit/FakeWorld.java +++ b/Essentials/src/com/earth2me/essentials/craftbukkit/FakeWorld.java @@ -584,4 +584,10 @@ public class FakeWorld implements World { throw new UnsupportedOperationException("Not supported yet."); } + + @Override + public LivingEntity spawnCreature(Location arg0, EntityType arg1) + { + throw new UnsupportedOperationException("Not supported yet."); + } } From 27ae50e3e359f4837b09c9bf468b564984624bd0 Mon Sep 17 00:00:00 2001 From: KHobbits Date: Sun, 26 Feb 2012 04:15:14 +0000 Subject: [PATCH 52/59] Add Minimum Balance, to allow people to manage overdrafts. --- .../src/com/earth2me/essentials/ISettings.java | 2 ++ .../src/com/earth2me/essentials/IUser.java | 2 ++ .../src/com/earth2me/essentials/Settings.java | 16 ++++++++++++++++ .../src/com/earth2me/essentials/Trade.java | 6 ++---- Essentials/src/com/earth2me/essentials/User.java | 13 +++++++++++-- .../src/com/earth2me/essentials/api/Economy.java | 4 ++++ .../earth2me/essentials/commands/Commandeco.java | 4 ++++ .../src/com/earth2me/essentials/user/User.java | 11 +++++++++++ Essentials/src/config.yml | 6 +++++- 9 files changed, 57 insertions(+), 7 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/ISettings.java b/Essentials/src/com/earth2me/essentials/ISettings.java index e567673b6..cded5bde5 100644 --- a/Essentials/src/com/earth2me/essentials/ISettings.java +++ b/Essentials/src/com/earth2me/essentials/ISettings.java @@ -115,6 +115,8 @@ public interface ISettings extends IConf boolean warnOnSmite(); double getMaxMoney(); + + double getMinMoney(); boolean isEcoLogEnabled(); diff --git a/Essentials/src/com/earth2me/essentials/IUser.java b/Essentials/src/com/earth2me/essentials/IUser.java index bff556ab4..df5401886 100644 --- a/Essentials/src/com/earth2me/essentials/IUser.java +++ b/Essentials/src/com/earth2me/essentials/IUser.java @@ -32,6 +32,8 @@ public interface IUser extends Player void takeMoney(double value); void giveMoney(double value); + + boolean canAfford(double value); String getGroup(); diff --git a/Essentials/src/com/earth2me/essentials/Settings.java b/Essentials/src/com/earth2me/essentials/Settings.java index 40fb47f6c..39179b957 100644 --- a/Essentials/src/com/earth2me/essentials/Settings.java +++ b/Essentials/src/com/earth2me/essentials/Settings.java @@ -539,6 +539,22 @@ public class Settings implements ISettings } return max; } + + private final static double MINMONEY = -10000000000000.0; + + @Override + public double getMinMoney() + { + double min = config.getDouble("min-money", MINMONEY); + if (min > 0) { + min = -min; + } + if (min < MINMONEY) + { + min = MINMONEY; + } + return min; + } @Override public boolean isEcoLogEnabled() diff --git a/Essentials/src/com/earth2me/essentials/Trade.java b/Essentials/src/com/earth2me/essentials/Trade.java index 933b54b3f..5ed80d35b 100644 --- a/Essentials/src/com/earth2me/essentials/Trade.java +++ b/Essentials/src/com/earth2me/essentials/Trade.java @@ -143,8 +143,7 @@ public class Trade { if (getMoney() != null) { - final double mon = user.getMoney(); - if (mon < getMoney() && getMoney() > 0 && !user.isAuthorized("essentials.eco.loan")) + if (!user.canAfford(getMoney()) && getMoney() > 0) { throw new ChargeException(_("notEnoughMoney")); } @@ -163,9 +162,8 @@ public class Trade && !user.isAuthorized("essentials.nocommandcost.all") && !user.isAuthorized("essentials.nocommandcost." + command)) { - final double mon = user.getMoney(); final double cost = ess.getSettings().getCommandCost(command.charAt(0) == '/' ? command.substring(1) : command); - if (mon < cost && cost > 0 && !user.isAuthorized("essentials.eco.loan")) + if (!user.canAfford(cost) && cost > 0) { throw new ChargeException(_("notEnoughMoney")); } diff --git a/Essentials/src/com/earth2me/essentials/User.java b/Essentials/src/com/earth2me/essentials/User.java index 7225e1dba..a799653a8 100644 --- a/Essentials/src/com/earth2me/essentials/User.java +++ b/Essentials/src/com/earth2me/essentials/User.java @@ -153,9 +153,18 @@ public class User extends UserData implements Comparable, IReplyTo, IUser } public boolean canAfford(final double cost) + { + return canAfford(cost, true); + } + + public boolean canAfford(final double cost, final boolean permcheck) { final double mon = getMoney(); - return mon >= cost || isAuthorized("essentials.eco.loan"); + if (!permcheck || isAuthorized("essentials.eco.loan")) + { + return (mon + cost) > ess.getSettings().getMinMoney(); + } + return cost <= mon; } public void dispose() @@ -384,7 +393,7 @@ public class User extends UserData implements Comparable, IReplyTo, IUser public void updateMoneyCache(final double value) { if (ess.getPaymentMethod().hasMethod() && super.getMoney() != value) - { + { super.setMoney(value); } } diff --git a/Essentials/src/com/earth2me/essentials/api/Economy.java b/Essentials/src/com/earth2me/essentials/api/Economy.java index 1d45c8df9..a1d421c38 100644 --- a/Essentials/src/com/earth2me/essentials/api/Economy.java +++ b/Essentials/src/com/earth2me/essentials/api/Economy.java @@ -115,6 +115,10 @@ public final class Economy { throw new UserDoesNotExistException(name); } + if (balance < ess.getSettings().getMinMoney()) + { + throw new NoLoanPermittedException(); + } if (balance < 0.0 && !user.isAuthorized("essentials.eco.loan")) { throw new NoLoanPermittedException(); diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandeco.java b/Essentials/src/com/earth2me/essentials/commands/Commandeco.java index 8f432ca6e..d2efc1845 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandeco.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandeco.java @@ -1,5 +1,6 @@ package com.earth2me.essentials.commands; +import static com.earth2me.essentials.I18n._; import com.earth2me.essentials.User; import java.util.Locale; import org.bukkit.Server; @@ -45,6 +46,9 @@ public class Commandeco extends EssentialsCommand break; case TAKE: + if (!player.canAfford(amount, false)) { + throw new Exception(_("notEnoughMoney")); + } player.takeMoney(amount); break; diff --git a/Essentials/src/com/earth2me/essentials/user/User.java b/Essentials/src/com/earth2me/essentials/user/User.java index 0e544ae06..5249c8718 100644 --- a/Essentials/src/com/earth2me/essentials/user/User.java +++ b/Essentials/src/com/earth2me/essentials/user/User.java @@ -196,4 +196,15 @@ public class User extends UserBase implements IUser unlock(); } } + + @Override + public boolean canAfford(final double cost) + { + final double mon = getMoney(); + if (isAuthorized("essentials.eco.loan")) + { + return (mon + cost) > ess.getSettings().getMinMoney(); + } + return cost <= mon; + } } diff --git a/Essentials/src/config.yml b/Essentials/src/config.yml index 00585f35f..97b73e4c5 100644 --- a/Essentials/src/config.yml +++ b/Essentials/src/config.yml @@ -281,10 +281,10 @@ spawn-if-no-home: true update-bed-at-daytime: true # Allow players to have multiple homes. +# Players need essentials.sethome.multiple before they can have more than 1 home, default to 'default' below. # Define different amounts of multiple homes for different permissions, e.g. essentials.sethome.multiple.vip # People with essentials.sethome.multiple.unlimited are not limited by these numbers. sethome-multiple: - # essentials.sethome.multiple default: 3 # essentials.sethome.multiple.vip vip: 5 @@ -321,6 +321,10 @@ currency-symbol: '$' # The amount is always limited to 10 trillions because of the limitations of a java double max-money: 10000000000000 +# Set the minimum amount of money a player can have +# Setting this to 0, will disable overdrafts/loans compeltely. Users need 'essentials.eco.loan' perm to go below 0. +min-money: -10000000000000 + # Enable this to log all interactions with trade/buy/sell signs and sell command economy-log-enabled: false From 8df4e9c3ab791ace2e27cca16a17515128ba74cf Mon Sep 17 00:00:00 2001 From: KHobbits Date: Sun, 26 Feb 2012 04:27:13 +0000 Subject: [PATCH 53/59] Display users new balance on /eco give/take. --- Essentials/src/com/earth2me/essentials/User.java | 4 ++-- .../src/com/earth2me/essentials/commands/Commandeco.java | 9 +++++++-- Essentials/src/messages.properties | 4 ++-- Essentials/src/messages_da.properties | 4 ++-- Essentials/src/messages_de.properties | 4 ++-- Essentials/src/messages_en.properties | 4 ++-- Essentials/src/messages_es.properties | 4 ++-- Essentials/src/messages_fr.properties | 4 ++-- Essentials/src/messages_nl.properties | 4 ++-- 9 files changed, 23 insertions(+), 18 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/User.java b/Essentials/src/com/earth2me/essentials/User.java index a799653a8..501577878 100644 --- a/Essentials/src/com/earth2me/essentials/User.java +++ b/Essentials/src/com/earth2me/essentials/User.java @@ -109,7 +109,7 @@ public class User extends UserData implements Comparable, IReplyTo, IUser sendMessage(_("addedToAccount", Util.formatCurrency(value, ess))); if (initiator != null) { - initiator.sendMessage(_("addedToOthersAccount", Util.formatCurrency(value, ess), this.getDisplayName())); + initiator.sendMessage(_("addedToOthersAccount", Util.formatCurrency(value, ess), this.getDisplayName(), Util.formatCurrency(getMoney(), ess))); } } @@ -148,7 +148,7 @@ public class User extends UserData implements Comparable, IReplyTo, IUser sendMessage(_("takenFromAccount", Util.formatCurrency(value, ess))); if (initiator != null) { - initiator.sendMessage(_("takenFromOthersAccount", Util.formatCurrency(value, ess), this.getDisplayName())); + initiator.sendMessage(_("takenFromOthersAccount", Util.formatCurrency(value, ess), this.getDisplayName(), Util.formatCurrency(getMoney(), ess))); } } diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandeco.java b/Essentials/src/com/earth2me/essentials/commands/Commandeco.java index d2efc1845..b9694ee49 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandeco.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandeco.java @@ -46,8 +46,9 @@ public class Commandeco extends EssentialsCommand break; case TAKE: - if (!player.canAfford(amount, false)) { - throw new Exception(_("notEnoughMoney")); + if (!player.canAfford(amount, false)) + { + throw new Exception(_("notEnoughMoney")); } player.takeMoney(amount); break; @@ -68,6 +69,10 @@ public class Commandeco extends EssentialsCommand break; case TAKE: + if (!player.canAfford(amount, false)) + { + throw new Exception(_("notEnoughMoney")); + } player.takeMoney(amount, sender); break; diff --git a/Essentials/src/messages.properties b/Essentials/src/messages.properties index 8489b6262..118c61ca4 100644 --- a/Essentials/src/messages.properties +++ b/Essentials/src/messages.properties @@ -4,7 +4,7 @@ # by: action=* {0} {1} addedToAccount=\u00a7a{0} has been added to your account. -addedToOthersAccount=\u00a7a{0} has been added to {1} account. +addedToOthersAccount=\u00a7a{0} has been added to {1} account. New balance: {2} alertBroke=broke: alertFormat=\u00a73[{0}] \u00a7f {1} \u00a76 {2} at: {3} alertPlaced=placed: @@ -318,7 +318,7 @@ suicideMessage=\u00a77Goodbye Cruel World... suicideSuccess= \u00a77{0} took their own life survival=survival takenFromAccount=\u00a7c{0} has been taken from your account. -takenFromOthersAccount=\u00a7c{0} has been taken from {1} account. +takenFromOthersAccount=\u00a7c{0} has been taken from {1} account. New balance: {2} teleportAAll=\u00a77Teleporting request sent to all players... teleportAll=\u00a77Teleporting all players... teleportationCommencing=\u00a77Teleportation commencing... diff --git a/Essentials/src/messages_da.properties b/Essentials/src/messages_da.properties index 82145afc1..a2719ddd1 100644 --- a/Essentials/src/messages_da.properties +++ b/Essentials/src/messages_da.properties @@ -4,7 +4,7 @@ # by: Dysp, dysperen@gmail.com action=* {0} {1} addedToAccount=\u00a7a{0} er blevet tilf\u00f8jet til din konto. -addedToOthersAccount=\u00a7a{0} er blevet tilf\u00f8jet til {1} konto. +addedToOthersAccount=\u00a7a{0} has been added to {1} account. New balance: {2} alertBroke=\u00f8delagde: alertFormat=\u00a73[{0}] \u00a7f {1} \u00a76 {2} ved: {3} alertPlaced=placerede: @@ -318,7 +318,7 @@ suicideMessage=\u00a77Farvel grusomme verden... suicideSuccess= \u00a77{0} tog sit eget liv survival=survival takenFromAccount=\u00a7c{0} er blevet taget fra din konto. -takenFromOthersAccount=\u00a7c{0} er blevet taget fra {1}''s konto. +takenFromOthersAccount=\u00a7c{0} has been taken from {1} account. New balance: {2} teleportAAll=\u00a77Anmodning om teleport er sendt til alle spillere. teleportAll=\u00a77Teleporterer alle spillere... teleportationCommencing=\u00a77Teleport begynder... diff --git a/Essentials/src/messages_de.properties b/Essentials/src/messages_de.properties index 2572f7cf2..b5ca8a800 100644 --- a/Essentials/src/messages_de.properties +++ b/Essentials/src/messages_de.properties @@ -4,7 +4,7 @@ # by: action=* {0} {1} addedToAccount=\u00a7a{0} wurden zu deiner Geldb\u00f6rse hinzugef\u00fcgt. -addedToOthersAccount=\u00a7a{0} wurden zu {1}s Konto hinzugef\u00fcgt. +addedToOthersAccount=\u00a7a{0} has been added to {1} account. New balance: {2} alertBroke=zerst\u00f6rt: alertFormat=\u00a73[{0}] \u00a7f {1} \u00a76 {2} bei: {3} alertPlaced=platziert: @@ -318,7 +318,7 @@ suicideMessage=\u00a77Lebewohl grausame Welt... suicideSuccess= \u00a77{0} hat sich das Leben genommen. survival=survival takenFromAccount=\u00a7c{0} wurden aus deiner Geldb\u00f6rse genommen. -takenFromOthersAccount=\u00a7c{0} wurde von {1} wurde Rechnung getragen. +takenFromOthersAccount=\u00a7c{0} has been taken from {1} account. New balance: {2} teleportAAll=\u00a77Teleportierungsanfrage zu allen Spielern gesendet... teleportAll=\u00a77Teleportiere alle Spieler... teleportAtoB=\u00a77{0}\u00a77 teleportiert dich zu {1}\u00a77. diff --git a/Essentials/src/messages_en.properties b/Essentials/src/messages_en.properties index a2acdf9a2..dac209927 100644 --- a/Essentials/src/messages_en.properties +++ b/Essentials/src/messages_en.properties @@ -4,7 +4,7 @@ # by: action=* {0} {1} addedToAccount=\u00a7a{0} has been added to your account. -addedToOthersAccount=\u00a7a{0} has been added to {1} account. +addedToOthersAccount=\u00a7a{0} has been added to {1} account. New balance: {2} alertBroke=broke: alertFormat=\u00a73[{0}] \u00a7f {1} \u00a76 {2} at: {3} alertPlaced=placed: @@ -318,7 +318,7 @@ suicideMessage=\u00a77Goodbye Cruel World... suicideSuccess= \u00a77{0} took their own life survival=survival takenFromAccount=\u00a7c{0} has been taken from your account. -takenFromOthersAccount=\u00a7c{0} has been taken from {1} account. +takenFromOthersAccount=\u00a7c{0} has been taken from {1} account. New balance: {2} teleportAAll=\u00a77Teleporting request sent to all players... teleportAll=\u00a77Teleporting all players... teleportationCommencing=\u00a77Teleportation commencing... diff --git a/Essentials/src/messages_es.properties b/Essentials/src/messages_es.properties index 38d62f6c4..0c1ca7452 100644 --- a/Essentials/src/messages_es.properties +++ b/Essentials/src/messages_es.properties @@ -4,7 +4,7 @@ # by: action=* {0} {1} addedToAccount=\u00a7a{0} ha sido agregado a tu cuenta. -addedToOthersAccount=\u00a7a{0} ha sido agregado a la cuenta de {1}. +addedToOthersAccount=\u00a7a{0} has been added to {1} account. New balance: {2} alertBroke=roto: alertFormat=\u00a73[{0}] \u00a7f {1} \u00a76 {2} en: {3} alertPlaced=situado: @@ -318,7 +318,7 @@ suicideMessage=\u00a77Adios mundo cruel... suicideSuccess= \u00a77{0} se quito su propia vida survival=survival takenFromAccount=\u00a7c{0} ha sido sacado de tu cuenta. -takenFromOthersAccount=\u00a7c{0} ha sido sacado de la cuenta de {1}. +takenFromOthersAccount=\u00a7c{0} has been taken from {1} account. New balance: {2} teleportAAll=\u00a77Peticion de teletransporte enviada a todos los jugadores... teleportAll=\u00a77Teletransportando a todos los jugadores... teleportationCommencing=\u00a77Comenzando teletransporte... diff --git a/Essentials/src/messages_fr.properties b/Essentials/src/messages_fr.properties index 290c1b668..bd93cb8e8 100644 --- a/Essentials/src/messages_fr.properties +++ b/Essentials/src/messages_fr.properties @@ -4,7 +4,7 @@ # by: L\u00e9a Gris action=* {0} {1} addedToAccount=\u00a7a{0} a \u00e9t\u00e9 rajout\u00e9 \u00e0 votre compte. -addedToOthersAccount=\u00a7a{0} a \u00e9t\u00e9 ajout\u00e9 \u00e0 {1} compte. +addedToOthersAccount=\u00a7a{0} has been added to {1} account. New balance: {2} alertBroke=a cass\u00e9 : alertFormat=\u00a73[{0}] \u00a7f {1} \u00a76 {2} \u00e0:{3} alertPlaced=a plac\u00e9 : @@ -318,7 +318,7 @@ suicideMessage=\u00a77Au revoir monde cruel... suicideSuccess=\u00a77{0} s''est suicid\u00e9. survival=survie takenFromAccount=\u00a7c{0} ont \u00e9t\u00e9 retir\u00e9 de votre compte. -takenFromOthersAccount=\u00a7c{0} a \u00e9t\u00e9 r\u00e9tir\u00e9 du compte de {1}. +takenFromOthersAccount=\u00a7c{0} has been taken from {1} account. New balance: {2} teleportAAll=\u00a77Demande de t\u00e9l\u00e9portation envoy\u00e9e \u00e0 tous les joueurs... teleportAll=\u00a77T\u00e9l\u00e9poration de tous les joueurs. teleportationCommencing=\u00a77D\u00e9but de la t\u00e9l\u00e9portation... diff --git a/Essentials/src/messages_nl.properties b/Essentials/src/messages_nl.properties index 8997bfec6..f2c9f9b2f 100644 --- a/Essentials/src/messages_nl.properties +++ b/Essentials/src/messages_nl.properties @@ -4,7 +4,7 @@ # by: Geertje123 action=* {0} {1} addedToAccount=\u00a7a{0} is gestort op je account. -addedToOthersAccount=\u00a7a{0} is overgemaakt naar {1}''s rekening +addedToOthersAccount=\u00a7a{0} has been added to {1} account. New balance: {2} alertBroke=gebroken: alertFormat=\u00a73[{0}] \u00a7f {1} \u00a76 {2} bij: {3} alertPlaced=geplaatst: @@ -318,7 +318,7 @@ suicideMessage=\u00a77Vaarwel vreedzame wereld... suicideSuccess= \u00a77{0} pleegde zelfmoord survival=survival takenFromAccount=\u00a7c{0} is van je bank rekening afgehaald. -takenFromOthersAccount=\u00a7c{0} is overgenomen uit {1} account. +takenFromOthersAccount=\u00a7c{0} has been taken from {1} account. New balance: {2} teleportAAll=\u00a77Teleporting request sent to all players... teleportAll=\u00a77Bezig met teleporteren van alle spelers... teleportationCommencing=\u00a77Aan het beginnen met teleporteren... From 1a4f2aeb5794b1e6ad20eaaa3f8ab29341e87b4f Mon Sep 17 00:00:00 2001 From: KHobbits Date: Sun, 26 Feb 2012 05:01:40 +0000 Subject: [PATCH 54/59] Adjustments to negative eco give/take. --- Essentials/src/com/earth2me/essentials/User.java | 3 ++- Essentials/src/com/earth2me/essentials/user/User.java | 2 +- Essentials/src/messages.properties | 4 ++-- Essentials/src/messages_da.properties | 4 ++-- Essentials/src/messages_de.properties | 4 ++-- Essentials/src/messages_en.properties | 4 ++-- Essentials/src/messages_es.properties | 4 ++-- Essentials/src/messages_fr.properties | 4 ++-- Essentials/src/messages_nl.properties | 4 ++-- 9 files changed, 17 insertions(+), 16 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/User.java b/Essentials/src/com/earth2me/essentials/User.java index 501577878..bd712bf87 100644 --- a/Essentials/src/com/earth2me/essentials/User.java +++ b/Essentials/src/com/earth2me/essentials/User.java @@ -160,9 +160,10 @@ public class User extends UserData implements Comparable, IReplyTo, IUser public boolean canAfford(final double cost, final boolean permcheck) { final double mon = getMoney(); + ess.getLogger().log(Level.INFO, "min cash is " + ess.getSettings().getMinMoney()); if (!permcheck || isAuthorized("essentials.eco.loan")) { - return (mon + cost) > ess.getSettings().getMinMoney(); + return (mon - cost) > ess.getSettings().getMinMoney(); } return cost <= mon; } diff --git a/Essentials/src/com/earth2me/essentials/user/User.java b/Essentials/src/com/earth2me/essentials/user/User.java index 5249c8718..d77790938 100644 --- a/Essentials/src/com/earth2me/essentials/user/User.java +++ b/Essentials/src/com/earth2me/essentials/user/User.java @@ -203,7 +203,7 @@ public class User extends UserBase implements IUser final double mon = getMoney(); if (isAuthorized("essentials.eco.loan")) { - return (mon + cost) > ess.getSettings().getMinMoney(); + return (mon - cost) > ess.getSettings().getMinMoney(); } return cost <= mon; } diff --git a/Essentials/src/messages.properties b/Essentials/src/messages.properties index 118c61ca4..f7958319d 100644 --- a/Essentials/src/messages.properties +++ b/Essentials/src/messages.properties @@ -4,7 +4,7 @@ # by: action=* {0} {1} addedToAccount=\u00a7a{0} has been added to your account. -addedToOthersAccount=\u00a7a{0} has been added to {1} account. New balance: {2} +addedToOthersAccount=\u00a7a{0} added to {1}\u00a7a account. New balance: {2} alertBroke=broke: alertFormat=\u00a73[{0}] \u00a7f {1} \u00a76 {2} at: {3} alertPlaced=placed: @@ -318,7 +318,7 @@ suicideMessage=\u00a77Goodbye Cruel World... suicideSuccess= \u00a77{0} took their own life survival=survival takenFromAccount=\u00a7c{0} has been taken from your account. -takenFromOthersAccount=\u00a7c{0} has been taken from {1} account. New balance: {2} +takenFromOthersAccount=\u00a7c{0} taken from {1}\u00a7c account. New balance: {2} teleportAAll=\u00a77Teleporting request sent to all players... teleportAll=\u00a77Teleporting all players... teleportationCommencing=\u00a77Teleportation commencing... diff --git a/Essentials/src/messages_da.properties b/Essentials/src/messages_da.properties index a2719ddd1..0d8260947 100644 --- a/Essentials/src/messages_da.properties +++ b/Essentials/src/messages_da.properties @@ -4,7 +4,7 @@ # by: Dysp, dysperen@gmail.com action=* {0} {1} addedToAccount=\u00a7a{0} er blevet tilf\u00f8jet til din konto. -addedToOthersAccount=\u00a7a{0} has been added to {1} account. New balance: {2} +addedToOthersAccount=\u00a7a{0} added to {1}\u00a7a account. New balance: {2} alertBroke=\u00f8delagde: alertFormat=\u00a73[{0}] \u00a7f {1} \u00a76 {2} ved: {3} alertPlaced=placerede: @@ -318,7 +318,7 @@ suicideMessage=\u00a77Farvel grusomme verden... suicideSuccess= \u00a77{0} tog sit eget liv survival=survival takenFromAccount=\u00a7c{0} er blevet taget fra din konto. -takenFromOthersAccount=\u00a7c{0} has been taken from {1} account. New balance: {2} +takenFromOthersAccount=\u00a7c{0} taken from {1}\u00a7c account. New balance: {2} teleportAAll=\u00a77Anmodning om teleport er sendt til alle spillere. teleportAll=\u00a77Teleporterer alle spillere... teleportationCommencing=\u00a77Teleport begynder... diff --git a/Essentials/src/messages_de.properties b/Essentials/src/messages_de.properties index b5ca8a800..815972f03 100644 --- a/Essentials/src/messages_de.properties +++ b/Essentials/src/messages_de.properties @@ -4,7 +4,7 @@ # by: action=* {0} {1} addedToAccount=\u00a7a{0} wurden zu deiner Geldb\u00f6rse hinzugef\u00fcgt. -addedToOthersAccount=\u00a7a{0} has been added to {1} account. New balance: {2} +addedToOthersAccount=\u00a7a{0} added to {1}\u00a7a account. New balance: {2} alertBroke=zerst\u00f6rt: alertFormat=\u00a73[{0}] \u00a7f {1} \u00a76 {2} bei: {3} alertPlaced=platziert: @@ -318,7 +318,7 @@ suicideMessage=\u00a77Lebewohl grausame Welt... suicideSuccess= \u00a77{0} hat sich das Leben genommen. survival=survival takenFromAccount=\u00a7c{0} wurden aus deiner Geldb\u00f6rse genommen. -takenFromOthersAccount=\u00a7c{0} has been taken from {1} account. New balance: {2} +takenFromOthersAccount=\u00a7c{0} taken from {1}\u00a7c account. New balance: {2} teleportAAll=\u00a77Teleportierungsanfrage zu allen Spielern gesendet... teleportAll=\u00a77Teleportiere alle Spieler... teleportAtoB=\u00a77{0}\u00a77 teleportiert dich zu {1}\u00a77. diff --git a/Essentials/src/messages_en.properties b/Essentials/src/messages_en.properties index dac209927..dfc7600dc 100644 --- a/Essentials/src/messages_en.properties +++ b/Essentials/src/messages_en.properties @@ -4,7 +4,7 @@ # by: action=* {0} {1} addedToAccount=\u00a7a{0} has been added to your account. -addedToOthersAccount=\u00a7a{0} has been added to {1} account. New balance: {2} +addedToOthersAccount=\u00a7a{0} added to {1}\u00a7a account. New balance: {2} alertBroke=broke: alertFormat=\u00a73[{0}] \u00a7f {1} \u00a76 {2} at: {3} alertPlaced=placed: @@ -318,7 +318,7 @@ suicideMessage=\u00a77Goodbye Cruel World... suicideSuccess= \u00a77{0} took their own life survival=survival takenFromAccount=\u00a7c{0} has been taken from your account. -takenFromOthersAccount=\u00a7c{0} has been taken from {1} account. New balance: {2} +takenFromOthersAccount=\u00a7c{0} taken from {1}\u00a7c account. New balance: {2} teleportAAll=\u00a77Teleporting request sent to all players... teleportAll=\u00a77Teleporting all players... teleportationCommencing=\u00a77Teleportation commencing... diff --git a/Essentials/src/messages_es.properties b/Essentials/src/messages_es.properties index 0c1ca7452..909ec7434 100644 --- a/Essentials/src/messages_es.properties +++ b/Essentials/src/messages_es.properties @@ -4,7 +4,7 @@ # by: action=* {0} {1} addedToAccount=\u00a7a{0} ha sido agregado a tu cuenta. -addedToOthersAccount=\u00a7a{0} has been added to {1} account. New balance: {2} +addedToOthersAccount=\u00a7a{0} added to {1}\u00a7a account. New balance: {2} alertBroke=roto: alertFormat=\u00a73[{0}] \u00a7f {1} \u00a76 {2} en: {3} alertPlaced=situado: @@ -318,7 +318,7 @@ suicideMessage=\u00a77Adios mundo cruel... suicideSuccess= \u00a77{0} se quito su propia vida survival=survival takenFromAccount=\u00a7c{0} ha sido sacado de tu cuenta. -takenFromOthersAccount=\u00a7c{0} has been taken from {1} account. New balance: {2} +takenFromOthersAccount=\u00a7c{0} taken from {1}\u00a7c account. New balance: {2} teleportAAll=\u00a77Peticion de teletransporte enviada a todos los jugadores... teleportAll=\u00a77Teletransportando a todos los jugadores... teleportationCommencing=\u00a77Comenzando teletransporte... diff --git a/Essentials/src/messages_fr.properties b/Essentials/src/messages_fr.properties index bd93cb8e8..a74be475b 100644 --- a/Essentials/src/messages_fr.properties +++ b/Essentials/src/messages_fr.properties @@ -4,7 +4,7 @@ # by: L\u00e9a Gris action=* {0} {1} addedToAccount=\u00a7a{0} a \u00e9t\u00e9 rajout\u00e9 \u00e0 votre compte. -addedToOthersAccount=\u00a7a{0} has been added to {1} account. New balance: {2} +addedToOthersAccount=\u00a7a{0} added to {1}\u00a7a account. New balance: {2} alertBroke=a cass\u00e9 : alertFormat=\u00a73[{0}] \u00a7f {1} \u00a76 {2} \u00e0:{3} alertPlaced=a plac\u00e9 : @@ -318,7 +318,7 @@ suicideMessage=\u00a77Au revoir monde cruel... suicideSuccess=\u00a77{0} s''est suicid\u00e9. survival=survie takenFromAccount=\u00a7c{0} ont \u00e9t\u00e9 retir\u00e9 de votre compte. -takenFromOthersAccount=\u00a7c{0} has been taken from {1} account. New balance: {2} +takenFromOthersAccount=\u00a7c{0} taken from {1}\u00a7c account. New balance: {2} teleportAAll=\u00a77Demande de t\u00e9l\u00e9portation envoy\u00e9e \u00e0 tous les joueurs... teleportAll=\u00a77T\u00e9l\u00e9poration de tous les joueurs. teleportationCommencing=\u00a77D\u00e9but de la t\u00e9l\u00e9portation... diff --git a/Essentials/src/messages_nl.properties b/Essentials/src/messages_nl.properties index f2c9f9b2f..51bbe2bed 100644 --- a/Essentials/src/messages_nl.properties +++ b/Essentials/src/messages_nl.properties @@ -4,7 +4,7 @@ # by: Geertje123 action=* {0} {1} addedToAccount=\u00a7a{0} is gestort op je account. -addedToOthersAccount=\u00a7a{0} has been added to {1} account. New balance: {2} +addedToOthersAccount=\u00a7a{0} added to {1}\u00a7a account. New balance: {2} alertBroke=gebroken: alertFormat=\u00a73[{0}] \u00a7f {1} \u00a76 {2} bij: {3} alertPlaced=geplaatst: @@ -318,7 +318,7 @@ suicideMessage=\u00a77Vaarwel vreedzame wereld... suicideSuccess= \u00a77{0} pleegde zelfmoord survival=survival takenFromAccount=\u00a7c{0} is van je bank rekening afgehaald. -takenFromOthersAccount=\u00a7c{0} has been taken from {1} account. New balance: {2} +takenFromOthersAccount=\u00a7c{0} taken from {1}\u00a7c account. New balance: {2} teleportAAll=\u00a77Teleporting request sent to all players... teleportAll=\u00a77Bezig met teleporteren van alle spelers... teleportationCommencing=\u00a77Aan het beginnen met teleporteren... From 7976f19345dee23f744ec7899e4f3f289c41da74 Mon Sep 17 00:00:00 2001 From: KHobbits Date: Sun, 26 Feb 2012 05:06:03 +0000 Subject: [PATCH 55/59] Cleanup. --- .../src/com/earth2me/essentials/Settings.java | 14 ++++++-------- Essentials/src/com/earth2me/essentials/User.java | 2 -- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/Settings.java b/Essentials/src/com/earth2me/essentials/Settings.java index 39179b957..b6b1f4994 100644 --- a/Essentials/src/com/earth2me/essentials/Settings.java +++ b/Essentials/src/com/earth2me/essentials/Settings.java @@ -5,9 +5,7 @@ import com.earth2me.essentials.commands.IEssentialsCommand; import com.earth2me.essentials.signs.EssentialsSign; import com.earth2me.essentials.signs.Signs; import com.earth2me.essentials.textreader.IText; -import com.earth2me.essentials.textreader.KeywordReplacer; import com.earth2me.essentials.textreader.SimpleTextInput; -import com.earth2me.essentials.textreader.SimpleTextPager; import java.io.File; import java.text.MessageFormat; import java.util.*; @@ -218,10 +216,10 @@ public class Settings implements ISettings if (config.isConfigurationSection("kits")) { final ConfigurationSection kits = getKits(); - if (kits.isConfigurationSection(name)) + if (kits.isConfigurationSection(name)) { return kits.getConfigurationSection(name).getValues(true); - } + } } return null; } @@ -539,15 +537,15 @@ public class Settings implements ISettings } return max; } - private final static double MINMONEY = -10000000000000.0; - + @Override public double getMinMoney() { double min = config.getDouble("min-money", MINMONEY); - if (min > 0) { - min = -min; + if (min > 0) + { + min = -min; } if (min < MINMONEY) { diff --git a/Essentials/src/com/earth2me/essentials/User.java b/Essentials/src/com/earth2me/essentials/User.java index bd712bf87..86a3bcbfe 100644 --- a/Essentials/src/com/earth2me/essentials/User.java +++ b/Essentials/src/com/earth2me/essentials/User.java @@ -7,7 +7,6 @@ import java.util.Calendar; import java.util.GregorianCalendar; import java.util.logging.Level; import java.util.logging.Logger; -import org.bukkit.ChatColor; import org.bukkit.Location; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; @@ -160,7 +159,6 @@ public class User extends UserData implements Comparable, IReplyTo, IUser public boolean canAfford(final double cost, final boolean permcheck) { final double mon = getMoney(); - ess.getLogger().log(Level.INFO, "min cash is " + ess.getSettings().getMinMoney()); if (!permcheck || isAuthorized("essentials.eco.loan")) { return (mon - cost) > ess.getSettings().getMinMoney(); From 7a74e564211b469ed5373b011b34fcc692c7ba7d Mon Sep 17 00:00:00 2001 From: KHobbits Date: Sun, 26 Feb 2012 05:10:04 +0000 Subject: [PATCH 56/59] Allow people to hit exactly 'min money'. --- Essentials/src/com/earth2me/essentials/User.java | 2 +- Essentials/src/com/earth2me/essentials/user/User.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/User.java b/Essentials/src/com/earth2me/essentials/User.java index 86a3bcbfe..0be375c88 100644 --- a/Essentials/src/com/earth2me/essentials/User.java +++ b/Essentials/src/com/earth2me/essentials/User.java @@ -161,7 +161,7 @@ public class User extends UserData implements Comparable, IReplyTo, IUser final double mon = getMoney(); if (!permcheck || isAuthorized("essentials.eco.loan")) { - return (mon - cost) > ess.getSettings().getMinMoney(); + return (mon - cost) >= ess.getSettings().getMinMoney(); } return cost <= mon; } diff --git a/Essentials/src/com/earth2me/essentials/user/User.java b/Essentials/src/com/earth2me/essentials/user/User.java index d77790938..0e77dd6a9 100644 --- a/Essentials/src/com/earth2me/essentials/user/User.java +++ b/Essentials/src/com/earth2me/essentials/user/User.java @@ -203,7 +203,7 @@ public class User extends UserBase implements IUser final double mon = getMoney(); if (isAuthorized("essentials.eco.loan")) { - return (mon - cost) > ess.getSettings().getMinMoney(); + return (mon - cost) >= ess.getSettings().getMinMoney(); } return cost <= mon; } From 912046a523ad83d3be18637e2c052f63cdf3c8d3 Mon Sep 17 00:00:00 2001 From: KHobbits Date: Mon, 27 Feb 2012 03:24:58 +0000 Subject: [PATCH 57/59] Change jail listener to catch respawn at Highest --- Essentials/src/com/earth2me/essentials/Jails.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/Jails.java b/Essentials/src/com/earth2me/essentials/Jails.java index 0011905ec..7217992ad 100644 --- a/Essentials/src/com/earth2me/essentials/Jails.java +++ b/Essentials/src/com/earth2me/essentials/Jails.java @@ -193,7 +193,7 @@ public class Jails extends AsyncStorageObjectHolder Date: Mon, 27 Feb 2012 03:40:18 +0000 Subject: [PATCH 58/59] Prevent EssSpawn trying to handle spawning of jailed players. --- .../essentials/spawn/EssentialsSpawnPlayerListener.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/EssentialsSpawn/src/com/earth2me/essentials/spawn/EssentialsSpawnPlayerListener.java b/EssentialsSpawn/src/com/earth2me/essentials/spawn/EssentialsSpawnPlayerListener.java index 083fd66a5..c7a17845a 100644 --- a/EssentialsSpawn/src/com/earth2me/essentials/spawn/EssentialsSpawnPlayerListener.java +++ b/EssentialsSpawn/src/com/earth2me/essentials/spawn/EssentialsSpawnPlayerListener.java @@ -35,6 +35,11 @@ public class EssentialsSpawnPlayerListener implements Listener { final User user = ess.getUser(event.getPlayer()); + if (user.isJailed() && user.getJail() != null && !user.getJail().isEmpty()) + { + return; + } + if (ess.getSettings().getRespawnAtHome()) { Location home; From 60157e5a8ca36905604409662061d340b0c8bf25 Mon Sep 17 00:00:00 2001 From: KHobbits Date: Mon, 27 Feb 2012 15:31:43 +0000 Subject: [PATCH 59/59] Adding option to log all eco api transactions. --- Essentials/src/com/earth2me/essentials/ISettings.java | 2 ++ Essentials/src/com/earth2me/essentials/Settings.java | 6 ++++++ Essentials/src/com/earth2me/essentials/Trade.java | 3 ++- Essentials/src/com/earth2me/essentials/User.java | 3 ++- 4 files changed, 12 insertions(+), 2 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/ISettings.java b/Essentials/src/com/earth2me/essentials/ISettings.java index cded5bde5..6186736b4 100644 --- a/Essentials/src/com/earth2me/essentials/ISettings.java +++ b/Essentials/src/com/earth2me/essentials/ISettings.java @@ -119,6 +119,8 @@ public interface ISettings extends IConf double getMinMoney(); boolean isEcoLogEnabled(); + + boolean isEcoLogUpdateEnabled(); boolean removeGodOnDisconnect(); diff --git a/Essentials/src/com/earth2me/essentials/Settings.java b/Essentials/src/com/earth2me/essentials/Settings.java index b6b1f4994..732b5485c 100644 --- a/Essentials/src/com/earth2me/essentials/Settings.java +++ b/Essentials/src/com/earth2me/essentials/Settings.java @@ -559,6 +559,12 @@ public class Settings implements ISettings { return config.getBoolean("economy-log-enabled", false); } + + @Override + public boolean isEcoLogUpdateEnabled() + { + return config.getBoolean("economy-log-update-enabled", false); + } @Override public boolean removeGodOnDisconnect() diff --git a/Essentials/src/com/earth2me/essentials/Trade.java b/Essentials/src/com/earth2me/essentials/Trade.java index 5ed80d35b..3594c3137 100644 --- a/Essentials/src/com/earth2me/essentials/Trade.java +++ b/Essentials/src/com/earth2me/essentials/Trade.java @@ -198,7 +198,8 @@ public class Trade public static void log(String type, String subtype, String event, String sender, Trade charge, String receiver, Trade pay, Location loc, IEssentials ess) { - if (!ess.getSettings().isEcoLogEnabled()) + if ((loc == null && !ess.getSettings().isEcoLogUpdateEnabled()) + || (loc != null && !ess.getSettings().isEcoLogEnabled())) { return; } diff --git a/Essentials/src/com/earth2me/essentials/User.java b/Essentials/src/com/earth2me/essentials/User.java index 0be375c88..ba34548fe 100644 --- a/Essentials/src/com/earth2me/essentials/User.java +++ b/Essentials/src/com/earth2me/essentials/User.java @@ -385,8 +385,9 @@ public class User extends UserData implements Comparable, IReplyTo, IUser catch (Throwable ex) { } - } + } super.setMoney(value); + Trade.log("Update", "Set", "API", getName(), new Trade(value, ess), null, null, null, ess); } public void updateMoneyCache(final double value)