summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Essentials/nbproject/project.properties2
-rw-r--r--Essentials/src/com/earth2me/essentials/PlayerExtension.java54
-rw-r--r--Essentials/src/com/earth2me/essentials/TNTExplodeListener.java51
-rw-r--r--Essentials/src/com/earth2me/essentials/User.java15
-rw-r--r--Essentials/src/com/earth2me/essentials/UserData.java4
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/Commandspawner.java8
-rw-r--r--Essentials/src/com/earth2me/essentials/craftbukkit/FakeExplosion.java51
-rw-r--r--Essentials/src/com/earth2me/essentials/craftbukkit/ShowInventory.java47
-rw-r--r--Essentials/src/com/earth2me/essentials/signs/SignDisposal.java7
-rw-r--r--Essentials/src/com/earth2me/essentials/signs/SignFree.java9
-rw-r--r--EssentialsProtect/nbproject/project.properties6
-rw-r--r--EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectEntityListener.java45
12 files changed, 142 insertions, 157 deletions
diff --git a/Essentials/nbproject/project.properties b/Essentials/nbproject/project.properties
index 3710d86d8..0d7673bbd 100644
--- a/Essentials/nbproject/project.properties
+++ b/Essentials/nbproject/project.properties
@@ -66,7 +66,7 @@ endorsed.classpath=
excludes=
file.reference.BOSEconomy7.jar=../lib/BOSEconomy7.jar
file.reference.bPermissions.jar=../lib/bPermissions.jar
-file.reference.craftbukkit-1.0.0-SNAPSHOT.jar=..\\lib\\craftbukkit-1.0.0-SNAPSHOT.jar
+file.reference.craftbukkit-1.0.0-SNAPSHOT.jar=../lib/craftbukkit-1.0.0-SNAPSHOT.jar
file.reference.iCo4.jar=../lib/iCo4.jar
file.reference.iCo5.jar=../lib/iCo5.jar
file.reference.iCo6.jar=../lib/iCo6.jar
diff --git a/Essentials/src/com/earth2me/essentials/PlayerExtension.java b/Essentials/src/com/earth2me/essentials/PlayerExtension.java
index aef0aeebb..7c52e40d1 100644
--- a/Essentials/src/com/earth2me/essentials/PlayerExtension.java
+++ b/Essentials/src/com/earth2me/essentials/PlayerExtension.java
@@ -1,12 +1,8 @@
package com.earth2me.essentials;
import lombok.Delegate;
-import net.minecraft.server.EntityPlayer;
-import net.minecraft.server.IInventory;
import org.bukkit.command.CommandSender;
import org.bukkit.configuration.serialization.ConfigurationSerializable;
-import org.bukkit.craftbukkit.entity.CraftPlayer;
-import org.bukkit.craftbukkit.inventory.CraftInventoryPlayer;
import org.bukkit.entity.Entity;
import org.bukkit.entity.HumanEntity;
import org.bukkit.entity.LivingEntity;
@@ -17,21 +13,19 @@ import org.bukkit.permissions.ServerOperator;
public class PlayerExtension implements Player
{
- protected final transient IEssentials ess;
@Delegate(types =
{
- Player.class, Entity.class, CommandSender.class, ServerOperator.class,
+ Player.class, Entity.class, CommandSender.class, ServerOperator.class,
HumanEntity.class, ConfigurationSerializable.class, LivingEntity.class,
Permissible.class
})
protected Player base;
-
- public PlayerExtension(final Player base, final IEssentials ess)
+
+ public PlayerExtension(final Player base)
{
this.base = base;
- this.ess = ess;
}
-
+
public final Player getBase()
{
return base;
@@ -41,44 +35,4 @@ public class PlayerExtension implements Player
{
return this.base = base;
}
-
- public void showInventory(final IInventory inventory)
- {
- getHandle().a(inventory);
- }
-
- public void showInventory(final CraftInventoryPlayer inventory)
- {
- showInventory((IInventory)inventory.getInventory());
- }
-
- public TargetBlock getTarget()
- {
- return new TargetBlock(getBase());
- }
-
- public String getGroup()
- {
- return ess.getPermissionsHandler().getGroup(base);
- }
-
- public boolean inGroup(final String group)
- {
- return ess.getPermissionsHandler().inGroup(base, group);
- }
-
- public boolean canBuild()
- {
- return ess.getPermissionsHandler().canBuild(base, getGroup());
- }
-
- public EntityPlayer getHandle()
- {
- return getCraftPlayer().getHandle();
- }
-
- public CraftPlayer getCraftPlayer()
- {
- return (CraftPlayer)base;
- }
}
diff --git a/Essentials/src/com/earth2me/essentials/TNTExplodeListener.java b/Essentials/src/com/earth2me/essentials/TNTExplodeListener.java
index 5f207fd51..4ae259a32 100644
--- a/Essentials/src/com/earth2me/essentials/TNTExplodeListener.java
+++ b/Essentials/src/com/earth2me/essentials/TNTExplodeListener.java
@@ -1,31 +1,20 @@
package com.earth2me.essentials;
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-import net.minecraft.server.ChunkPosition;
-import net.minecraft.server.Packet60Explosion;
-import org.bukkit.Location;
-import org.bukkit.block.Block;
-import org.bukkit.craftbukkit.CraftServer;
-import org.bukkit.craftbukkit.CraftWorld;
+import com.earth2me.essentials.craftbukkit.FakeExplosion;
import org.bukkit.entity.LivingEntity;
-import org.bukkit.entity.Player;
import org.bukkit.event.entity.EntityExplodeEvent;
import org.bukkit.event.entity.EntityListener;
public class TNTExplodeListener extends EntityListener implements Runnable
{
- private final IEssentials ess;
- private boolean enabled = false;
- private int timer = -1;
+ private final transient IEssentials ess;
+ private transient boolean enabled = false;
+ private transient int timer = -1;
- public TNTExplodeListener(IEssentials ess)
+ public TNTExplodeListener(final IEssentials ess)
{
+ super();
this.ess = ess;
}
@@ -55,33 +44,7 @@ public class TNTExplodeListener extends EntityListener implements Runnable
{
return;
}
- try
- {
- final Set<ChunkPosition> set = new HashSet<ChunkPosition>(event.blockList().size());
- final Player[] players = ess.getServer().getOnlinePlayers();
- final List<ChunkPosition> blocksUnderPlayers = new ArrayList<ChunkPosition>(players.length);
- final Location loc = event.getLocation();
- for (Player player : players)
- {
- if (player.getWorld().equals(loc.getWorld()))
- {
- blocksUnderPlayers.add(new ChunkPosition(player.getLocation().getBlockX(), player.getLocation().getBlockY() - 1, player.getLocation().getBlockZ()));
- }
- }
- for (Block block : event.blockList())
- {
- final ChunkPosition cp = new ChunkPosition(block.getX(), block.getY(), block.getZ());
- if (!blocksUnderPlayers.contains(cp))
- {
- set.add(cp);
- }
- }
- ((CraftServer)ess.getServer()).getHandle().sendPacketNearby(loc.getX(), loc.getY(), loc.getZ(), 64.0, ((CraftWorld)loc.getWorld()).getHandle().worldProvider.dimension, new Packet60Explosion(loc.getX(), loc.getY(), loc.getZ(), 3.0F, set));
- }
- catch (Throwable ex)
- {
- Logger.getLogger("Minecraft").log(Level.SEVERE, null, ex);
- }
+ FakeExplosion.createExplosion(event, ess.getServer(), ess.getServer().getOnlinePlayers());
event.setCancelled(true);
}
diff --git a/Essentials/src/com/earth2me/essentials/User.java b/Essentials/src/com/earth2me/essentials/User.java
index 7a4534cc7..e58cbfb50 100644
--- a/Essentials/src/com/earth2me/essentials/User.java
+++ b/Essentials/src/com/earth2me/essentials/User.java
@@ -515,4 +515,19 @@ public class User extends UserData implements Comparable<User>, IReplyTo, IUser
{
return super.isGodModeEnabled() || (isAfk() && ess.getSettings().getFreezeAfkPlayers());
}
+
+ public String getGroup()
+ {
+ return ess.getPermissionsHandler().getGroup(base);
+ }
+
+ public boolean inGroup(final String group)
+ {
+ return ess.getPermissionsHandler().inGroup(base, group);
+ }
+
+ public boolean canBuild()
+ {
+ return ess.getPermissionsHandler().canBuild(base, getGroup());
+ }
}
diff --git a/Essentials/src/com/earth2me/essentials/UserData.java b/Essentials/src/com/earth2me/essentials/UserData.java
index 404c557ea..777ea981d 100644
--- a/Essentials/src/com/earth2me/essentials/UserData.java
+++ b/Essentials/src/com/earth2me/essentials/UserData.java
@@ -11,12 +11,14 @@ import org.bukkit.inventory.ItemStack;
public abstract class UserData extends PlayerExtension implements IConf
{
+ protected final transient IEssentials ess;
private final EssentialsConf config;
private static final Logger logger = Logger.getLogger("Minecraft");
protected UserData(Player base, IEssentials ess)
{
- super(base, ess);
+ super(base);
+ this.ess = ess;
File folder = new File(ess.getDataFolder(), "userdata");
if (!folder.exists())
{
diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandspawner.java b/Essentials/src/com/earth2me/essentials/commands/Commandspawner.java
index dba77b5b4..e92b29a93 100644
--- a/Essentials/src/com/earth2me/essentials/commands/Commandspawner.java
+++ b/Essentials/src/com/earth2me/essentials/commands/Commandspawner.java
@@ -3,6 +3,8 @@ package com.earth2me.essentials.commands;
import static com.earth2me.essentials.I18n._;
import com.earth2me.essentials.Mob;
import com.earth2me.essentials.User;
+import com.earth2me.essentials.Util;
+import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.Server;
import org.bukkit.block.Block;
@@ -25,8 +27,8 @@ public class Commandspawner extends EssentialsCommand
//TODO: user.sendMessage("ยง7Mobs: Zombie PigZombie Skeleton Slime Chicken Pig Monster Spider Creeper Ghast Squid Giant Cow Sheep Wolf");
}
- final Block target = user.getTarget().getTargetBlock();
- if (target.getType() != Material.MOB_SPAWNER)
+ final Location target = Util.getTarget(user);
+ if (target == null || target.getBlock().getType() != Material.MOB_SPAWNER)
{
throw new Exception(_("mobSpawnTarget"));
}
@@ -42,7 +44,7 @@ public class Commandspawner extends EssentialsCommand
user.sendMessage(_("invalidMob"));
return;
}
- ((CreatureSpawner)target.getState()).setCreatureType(mob.getType());
+ ((CreatureSpawner)target.getBlock().getState()).setCreatureType(mob.getType());
user.sendMessage(_("setSpawner", mob.name));
}
catch (Throwable ex)
diff --git a/Essentials/src/com/earth2me/essentials/craftbukkit/FakeExplosion.java b/Essentials/src/com/earth2me/essentials/craftbukkit/FakeExplosion.java
new file mode 100644
index 000000000..934d94fa2
--- /dev/null
+++ b/Essentials/src/com/earth2me/essentials/craftbukkit/FakeExplosion.java
@@ -0,0 +1,51 @@
+package com.earth2me.essentials.craftbukkit;
+
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import net.minecraft.server.ChunkPosition;
+import net.minecraft.server.Packet60Explosion;
+import org.bukkit.Location;
+import org.bukkit.Server;
+import org.bukkit.block.Block;
+import org.bukkit.craftbukkit.CraftServer;
+import org.bukkit.craftbukkit.CraftWorld;
+import org.bukkit.entity.Player;
+import org.bukkit.event.entity.EntityExplodeEvent;
+
+
+public class FakeExplosion
+{
+ public static void createExplosion(final EntityExplodeEvent event, final Server server, final Player[] players)
+ {
+ try
+ {
+ final Set<ChunkPosition> set = new HashSet<ChunkPosition>(event.blockList().size());
+ final List<ChunkPosition> blocksUnderPlayers = new ArrayList<ChunkPosition>(players.length);
+ final Location loc = event.getLocation();
+ for (Player player : players)
+ {
+ if (player.getWorld().equals(loc.getWorld()))
+ {
+ blocksUnderPlayers.add(new ChunkPosition(player.getLocation().getBlockX(), player.getLocation().getBlockY() - 1, player.getLocation().getBlockZ()));
+ }
+ }
+ for (Block block : event.blockList())
+ {
+ final ChunkPosition cp = new ChunkPosition(block.getX(), block.getY(), block.getZ());
+ if (!blocksUnderPlayers.contains(cp))
+ {
+ set.add(cp);
+ }
+ }
+ ((CraftServer)server).getHandle().sendPacketNearby(loc.getX(), loc.getY(), loc.getZ(), 64.0, ((CraftWorld)loc.getWorld()).getHandle().worldProvider.dimension, new Packet60Explosion(loc.getX(), loc.getY(), loc.getZ(), 3.0F, set));
+ }
+ catch (Throwable ex)
+ {
+ Logger.getLogger("Minecraft").log(Level.SEVERE, null, ex);
+ }
+ }
+}
diff --git a/Essentials/src/com/earth2me/essentials/craftbukkit/ShowInventory.java b/Essentials/src/com/earth2me/essentials/craftbukkit/ShowInventory.java
new file mode 100644
index 000000000..f77b20208
--- /dev/null
+++ b/Essentials/src/com/earth2me/essentials/craftbukkit/ShowInventory.java
@@ -0,0 +1,47 @@
+package com.earth2me.essentials.craftbukkit;
+
+import com.earth2me.essentials.InventoryWorkaround;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import net.minecraft.server.EntityPlayer;
+import net.minecraft.server.IInventory;
+import net.minecraft.server.InventoryPlayer;
+import org.bukkit.craftbukkit.entity.CraftPlayer;
+import org.bukkit.craftbukkit.inventory.CraftInventoryPlayer;
+import org.bukkit.entity.Player;
+import org.bukkit.inventory.ItemStack;
+
+
+public class ShowInventory
+{
+ public static void showEmptyInventory(final Player player)
+ {
+ try
+ {
+ final EntityPlayer entityPlayer = ((CraftPlayer)player).getHandle();
+ final CraftInventoryPlayer inv = new CraftInventoryPlayer(new InventoryPlayer(((CraftPlayer)player).getHandle()));
+ inv.clear();
+ entityPlayer.a((IInventory)inv.getInventory());
+ }
+ catch (Throwable ex)
+ {
+ Logger.getLogger("Minecraft").log(Level.SEVERE, null, ex);
+ }
+ }
+
+ public static void showFilledInventory(final Player player, final ItemStack stack)
+ {
+ try
+ {
+ final EntityPlayer entityPlayer = ((CraftPlayer)player).getHandle();
+ final CraftInventoryPlayer inv = new CraftInventoryPlayer(new InventoryPlayer(((CraftPlayer)player).getHandle()));
+ inv.clear();
+ InventoryWorkaround.addItem(inv, true, stack);
+ entityPlayer.a((IInventory)inv.getInventory());
+ }
+ catch (Throwable ex)
+ {
+ Logger.getLogger("Minecraft").log(Level.SEVERE, null, ex);
+ }
+ }
+}
diff --git a/Essentials/src/com/earth2me/essentials/signs/SignDisposal.java b/Essentials/src/com/earth2me/essentials/signs/SignDisposal.java
index e4d050305..46272a6b8 100644
--- a/Essentials/src/com/earth2me/essentials/signs/SignDisposal.java
+++ b/Essentials/src/com/earth2me/essentials/signs/SignDisposal.java
@@ -2,8 +2,7 @@ package com.earth2me.essentials.signs;
import com.earth2me.essentials.IEssentials;
import com.earth2me.essentials.User;
-import net.minecraft.server.InventoryPlayer;
-import org.bukkit.craftbukkit.inventory.CraftInventoryPlayer;
+import com.earth2me.essentials.craftbukkit.ShowInventory;
public class SignDisposal extends EssentialsSign
@@ -16,9 +15,7 @@ public class SignDisposal extends EssentialsSign
@Override
protected boolean onSignInteract(final ISign sign, final User player, final String username, final IEssentials ess)
{
- final CraftInventoryPlayer inv = new CraftInventoryPlayer(new InventoryPlayer(player.getHandle()));
- inv.clear();
- player.showInventory(inv);
+ ShowInventory.showEmptyInventory(player);
return true;
}
}
diff --git a/Essentials/src/com/earth2me/essentials/signs/SignFree.java b/Essentials/src/com/earth2me/essentials/signs/SignFree.java
index 3293f6467..197c0606f 100644
--- a/Essentials/src/com/earth2me/essentials/signs/SignFree.java
+++ b/Essentials/src/com/earth2me/essentials/signs/SignFree.java
@@ -2,12 +2,10 @@ package com.earth2me.essentials.signs;
import static com.earth2me.essentials.I18n._;
import com.earth2me.essentials.IEssentials;
-import com.earth2me.essentials.InventoryWorkaround;
import com.earth2me.essentials.Trade;
import com.earth2me.essentials.User;
-import net.minecraft.server.InventoryPlayer;
+import com.earth2me.essentials.craftbukkit.ShowInventory;
import org.bukkit.Material;
-import org.bukkit.craftbukkit.inventory.CraftInventoryPlayer;
import org.bukkit.inventory.ItemStack;
@@ -35,10 +33,7 @@ public class SignFree extends EssentialsSign
}
item.setAmount(item.getType().getMaxStackSize() * 9 * 4);
- final CraftInventoryPlayer inv = new CraftInventoryPlayer(new InventoryPlayer(player.getHandle()));
- inv.clear();
- InventoryWorkaround.addItem(inv, true, item);
- player.showInventory(inv);
+ ShowInventory.showFilledInventory(player, item);
Trade.log("Sign", "Free", "Interact", username, null, username, new Trade(item, ess), sign.getBlock().getLocation(), ess);
return true;
}
diff --git a/EssentialsProtect/nbproject/project.properties b/EssentialsProtect/nbproject/project.properties
index d0bbb3ce2..5e8639402 100644
--- a/EssentialsProtect/nbproject/project.properties
+++ b/EssentialsProtect/nbproject/project.properties
@@ -63,16 +63,16 @@ dist.jar=${dist.dir}/original-EssentialsProtect.jar
dist.javadoc.dir=${dist.dir}/javadoc
endorsed.classpath=
excludes=
+file.reference.bukkit-1.0.0-R1-SNAPSHOT.jar=../lib/bukkit-1.0.0-R1-SNAPSHOT.jar
file.reference.c3p0-0.9.1.2.jar=..\\lib\\c3p0-0.9.1.2.jar
-file.reference.craftbukkit-1.0.0-SNAPSHOT.jar=..\\lib\\craftbukkit-1.0.0-SNAPSHOT.jar
includes=**
jar.archive.disabled=${jnlp.enabled}
jar.compress=true
jar.index=${jnlp.enabled}
javac.classpath=\
${reference.Essentials.jar}:\
- ${file.reference.craftbukkit-1.0.0-SNAPSHOT.jar}:\
- ${file.reference.c3p0-0.9.1.2.jar}
+ ${file.reference.c3p0-0.9.1.2.jar}:\
+ ${file.reference.bukkit-1.0.0-R1-SNAPSHOT.jar}
# Space-separated list of extra javac options
javac.compilerargs=
javac.deprecation=false
diff --git a/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectEntityListener.java b/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectEntityListener.java
index b0a6b8521..2c4d1dbab 100644
--- a/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectEntityListener.java
+++ b/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectEntityListener.java
@@ -2,19 +2,11 @@ package com.earth2me.essentials.protect;
import com.earth2me.essentials.IEssentials;
import com.earth2me.essentials.User;
-import java.util.HashSet;
+import com.earth2me.essentials.craftbukkit.FakeExplosion;
import java.util.Locale;
-import java.util.Set;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-import net.minecraft.server.ChunkPosition;
-import net.minecraft.server.Packet60Explosion;
-import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.block.BlockFace;
-import org.bukkit.craftbukkit.CraftServer;
-import org.bukkit.craftbukkit.CraftWorld;
import org.bukkit.entity.*;
import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
import org.bukkit.event.entity.EntityTargetEvent.TargetReason;
@@ -204,40 +196,7 @@ public class EssentialsProtectEntityListener extends EntityListener
|| prot.getSettingBool(ProtectConfig.prevent_creeper_blockdmg)
|| (maxHeight >= 0 && event.getLocation().getBlockY() > maxHeight)))
{
- try
- {
- final Set<ChunkPosition> set = new HashSet<ChunkPosition>(event.blockList().size());
- final Player[] players = ess.getServer().getOnlinePlayers();
- final Set<ChunkPosition> blocksUnderPlayers = new HashSet<ChunkPosition>(players.length);
- final Location loc = event.getLocation();
- for (Player player : players)
- {
- if (player.getWorld().equals(loc.getWorld()))
- {
- blocksUnderPlayers.add(
- new ChunkPosition(
- player.getLocation().getBlockX(),
- player.getLocation().getBlockY() - 1,
- player.getLocation().getBlockZ()));
- }
- }
- ChunkPosition cp;
- for (Block block : event.blockList())
- {
- cp = new ChunkPosition(block.getX(), block.getY(), block.getZ());
- if (!blocksUnderPlayers.contains(cp))
- {
- set.add(cp);
- }
- }
-
- ((CraftServer)ess.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));
- }
- catch (Throwable ex)
- {
- Logger.getLogger("Minecraft").log(Level.SEVERE, null, ex);
- }
+ FakeExplosion.createExplosion(event, ess.getServer(), ess.getServer().getOnlinePlayers());
event.setCancelled(true);
return;
}