diff options
author | feildmaster <admin@feildmaster.com> | 2012-10-30 21:24:48 -0500 |
---|---|---|
committer | EvilSeph <evilseph@gmail.com> | 2012-10-31 03:40:43 -0400 |
commit | 9e4e2c62af6b6d12cc6a15cbf117d0a7586372c6 (patch) | |
tree | 568f95e09fd51a84bcc314962209d58e2682c163 /src/main/java | |
parent | 59dc403a61e4aec5f127fbbc7e1a5a66970f97f1 (diff) | |
download | craftbukkit-9e4e2c62af6b6d12cc6a15cbf117d0a7586372c6.tar craftbukkit-9e4e2c62af6b6d12cc6a15cbf117d0a7586372c6.tar.gz craftbukkit-9e4e2c62af6b6d12cc6a15cbf117d0a7586372c6.tar.lz craftbukkit-9e4e2c62af6b6d12cc6a15cbf117d0a7586372c6.tar.xz craftbukkit-9e4e2c62af6b6d12cc6a15cbf117d0a7586372c6.zip |
Expose API for managing and using GameRules. Adds BUKKIT-2757
Diffstat (limited to 'src/main/java')
-rw-r--r-- | src/main/java/net/minecraft/server/EntityPlayer.java | 29 | ||||
-rw-r--r-- | src/main/java/net/minecraft/server/WorldServer.java | 5 | ||||
-rw-r--r-- | src/main/java/org/bukkit/craftbukkit/CraftWorld.java | 22 |
3 files changed, 42 insertions, 14 deletions
diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java index 923e0813..2ceeac08 100644 --- a/src/main/java/net/minecraft/server/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/EntityPlayer.java @@ -230,16 +230,19 @@ public class EntityPlayer extends EntityHuman implements ICrafting { } java.util.List<org.bukkit.inventory.ItemStack> loot = new java.util.ArrayList<org.bukkit.inventory.ItemStack>(); + boolean keepInventory = this.world.getGameRules().getBoolean("keepInventory"); - for (int i = 0; i < this.inventory.items.length; ++i) { - if (this.inventory.items[i] != null) { - loot.add(new CraftItemStack(this.inventory.items[i])); + if (!keepInventory) { + for (int i = 0; i < this.inventory.items.length; ++i) { + if (this.inventory.items[i] != null) { + loot.add(new CraftItemStack(this.inventory.items[i])); + } } - } - for (int i = 0; i < this.inventory.armor.length; ++i) { - if (this.inventory.armor[i] != null) { - loot.add(new CraftItemStack(this.inventory.armor[i])); + for (int i = 0; i < this.inventory.armor.length; ++i) { + if (this.inventory.armor[i] != null) { + loot.add(new CraftItemStack(this.inventory.armor[i])); + } } } @@ -252,12 +255,14 @@ public class EntityPlayer extends EntityHuman implements ICrafting { } // CraftBukkit - we clean the player's inventory after the EntityDeathEvent is called so plugins can get the exact state of the inventory. - for (int i = 0; i < this.inventory.items.length; ++i) { - this.inventory.items[i] = null; - } + if (!keepInventory) { + for (int i = 0; i < this.inventory.items.length; ++i) { + this.inventory.items[i] = null; + } - for (int i = 0; i < this.inventory.armor.length; ++i) { - this.inventory.armor[i] = null; + for (int i = 0; i < this.inventory.armor.length; ++i) { + this.inventory.armor[i] = null; + } } this.closeInventory(); diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java index bb17c7e1..f9e246c7 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java @@ -767,11 +767,12 @@ public class WorldServer extends World implements org.bukkit.BlockChangeDelegate explosion.b = flag1; explosion.a(); explosion.a(false); + */ + // CraftBukkit end - TODO: Check if explosions are still properly implemented + if (!flag1) { explosion.blocks.clear(); } - */ - // CraftBukkit end - TODO: Check if explosions are still properly implemented Iterator iterator = this.players.iterator(); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java index 2ca3078d..5855b549 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -1197,4 +1197,26 @@ public class CraftWorld implements World { getHandle().makeSound(x, y, z, CraftSound.getSound(sound), volume, pitch); } + + public String getGameRuleValue(String rule) { + return getHandle().getGameRules().get(rule); + } + + public boolean setGameRuleValue(String rule, String value) { + // No null values allowed + if (rule == null || value == null) return false; + + if (!isGameRule(rule)) return false; + + getHandle().getGameRules().set(rule, value); + return true; + } + + public String[] getGameRules() { + return getHandle().getGameRules().b(); + } + + public boolean isGameRule(String rule) { + return getHandle().getGameRules().e(rule); + } } |