Add TNT punishment option (enabled by default) (fix #21)
This commit is contained in:
parent
b2167a697a
commit
d7977dd94b
@ -1,9 +1,24 @@
|
|||||||
--- ../src-base/minecraft/net/minecraft/world/Explosion.java
|
--- ../src-base/minecraft/net/minecraft/world/Explosion.java
|
||||||
+++ ../src-work/minecraft/net/minecraft/world/Explosion.java
|
+++ ../src-work/minecraft/net/minecraft/world/Explosion.java
|
||||||
@@ -20,6 +20,12 @@
|
@@ -7,6 +7,7 @@
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Random;
|
||||||
|
+
|
||||||
|
import net.minecraft.block.Block;
|
||||||
|
import net.minecraft.block.material.Material;
|
||||||
|
import net.minecraft.enchantment.EnchantmentProtection;
|
||||||
|
@@ -15,11 +16,19 @@
|
||||||
|
import net.minecraft.entity.item.EntityTNTPrimed;
|
||||||
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
|
import net.minecraft.init.Blocks;
|
||||||
|
+import net.minecraft.server.MinecraftServer;
|
||||||
|
import net.minecraft.util.AxisAlignedBB;
|
||||||
|
import net.minecraft.util.DamageSource;
|
||||||
import net.minecraft.util.MathHelper;
|
import net.minecraft.util.MathHelper;
|
||||||
import net.minecraft.util.Vec3;
|
import net.minecraft.util.Vec3;
|
||||||
|
|
||||||
|
+
|
||||||
+// CraftBukkit start
|
+// CraftBukkit start
|
||||||
+import org.bukkit.craftbukkit.event.CraftEventFactory;
|
+import org.bukkit.craftbukkit.event.CraftEventFactory;
|
||||||
+import org.bukkit.event.entity.EntityExplodeEvent;
|
+import org.bukkit.event.entity.EntityExplodeEvent;
|
||||||
@ -13,7 +28,7 @@
|
|||||||
public class Explosion
|
public class Explosion
|
||||||
{
|
{
|
||||||
public boolean isFlaming;
|
public boolean isFlaming;
|
||||||
@@ -34,6 +40,7 @@
|
@@ -34,6 +43,7 @@
|
||||||
public float explosionSize;
|
public float explosionSize;
|
||||||
public List affectedBlockPositions = new ArrayList();
|
public List affectedBlockPositions = new ArrayList();
|
||||||
private Map field_77288_k = new HashMap();
|
private Map field_77288_k = new HashMap();
|
||||||
@ -21,7 +36,7 @@
|
|||||||
private static final String __OBFID = "CL_00000134";
|
private static final String __OBFID = "CL_00000134";
|
||||||
|
|
||||||
public Explosion(World p_i1948_1_, Entity p_i1948_2_, double p_i1948_3_, double p_i1948_5_, double p_i1948_7_, float p_i1948_9_)
|
public Explosion(World p_i1948_1_, Entity p_i1948_2_, double p_i1948_3_, double p_i1948_5_, double p_i1948_7_, float p_i1948_9_)
|
||||||
@@ -48,6 +55,12 @@
|
@@ -48,6 +58,12 @@
|
||||||
|
|
||||||
public void doExplosionA()
|
public void doExplosionA()
|
||||||
{
|
{
|
||||||
@ -34,7 +49,7 @@
|
|||||||
float f = this.explosionSize;
|
float f = this.explosionSize;
|
||||||
HashSet hashset = new HashSet();
|
HashSet hashset = new HashSet();
|
||||||
int i;
|
int i;
|
||||||
@@ -135,7 +148,15 @@
|
@@ -135,7 +151,15 @@
|
||||||
d7 /= d9;
|
d7 /= d9;
|
||||||
double d10 = (double)this.worldObj.getBlockDensity(vec3, entity.boundingBox);
|
double d10 = (double)this.worldObj.getBlockDensity(vec3, entity.boundingBox);
|
||||||
double d11 = (1.0D - d4) * d10;
|
double d11 = (1.0D - d4) * d10;
|
||||||
@ -45,13 +60,13 @@
|
|||||||
+ * (double) this.explosionSize + 1.0D))))
|
+ * (double) this.explosionSize + 1.0D))))
|
||||||
+ {
|
+ {
|
||||||
+ CraftEventFactory.entityDamage = null;
|
+ CraftEventFactory.entityDamage = null;
|
||||||
+ continue;
|
|
||||||
+ }
|
+ }
|
||||||
|
+ if (!MinecraftServer.cauldronConfig.allowTntPunishment.getValue()) continue;
|
||||||
+ // CraftBukkit end
|
+ // CraftBukkit end
|
||||||
double d8 = EnchantmentProtection.func_92092_a(entity, d11);
|
double d8 = EnchantmentProtection.func_92092_a(entity, d11);
|
||||||
entity.motionX += d5 * d8;
|
entity.motionX += d5 * d8;
|
||||||
entity.motionY += d6 * d8;
|
entity.motionY += d6 * d8;
|
||||||
@@ -174,6 +195,39 @@
|
@@ -174,6 +198,39 @@
|
||||||
|
|
||||||
if (this.isSmoking)
|
if (this.isSmoking)
|
||||||
{
|
{
|
||||||
@ -91,7 +106,7 @@
|
|||||||
iterator = this.affectedBlockPositions.iterator();
|
iterator = this.affectedBlockPositions.iterator();
|
||||||
|
|
||||||
while (iterator.hasNext())
|
while (iterator.hasNext())
|
||||||
@@ -209,7 +263,8 @@
|
@@ -209,7 +266,8 @@
|
||||||
{
|
{
|
||||||
if (block.canDropFromExplosion(this))
|
if (block.canDropFromExplosion(this))
|
||||||
{
|
{
|
||||||
@ -101,7 +116,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
block.onBlockExploded(this.worldObj, i, j, k, this);
|
block.onBlockExploded(this.worldObj, i, j, k, this);
|
||||||
@@ -232,7 +287,12 @@
|
@@ -232,7 +290,12 @@
|
||||||
|
|
||||||
if (block.getMaterial() == Material.air && block1.func_149730_j() && this.explosionRNG.nextInt(3) == 0)
|
if (block.getMaterial() == Material.air && block1.func_149730_j() && this.explosionRNG.nextInt(3) == 0)
|
||||||
{
|
{
|
||||||
|
@ -51,6 +51,7 @@ public class CauldronConfig extends ConfigBase
|
|||||||
// Server options
|
// Server options
|
||||||
public final BoolSetting infiniteWaterSource = new BoolSetting(this, "world-settings.default.infinite-water-source", true, "Vanilla water source behavior - is infinite");
|
public final BoolSetting infiniteWaterSource = new BoolSetting(this, "world-settings.default.infinite-water-source", true, "Vanilla water source behavior - is infinite");
|
||||||
public final BoolSetting flowingLavaDecay = new BoolSetting(this, "world-settings.default.flowing-lava-decay", false, "Lava behaves like vanilla water when source block is removed");
|
public final BoolSetting flowingLavaDecay = new BoolSetting(this, "world-settings.default.flowing-lava-decay", false, "Lava behaves like vanilla water when source block is removed");
|
||||||
|
public final BoolSetting allowTntPunishment = new BoolSetting(this, "world-settings.default.allow-tnt-punishment", true, "TNT ability to push other entities (including other TNTs)");
|
||||||
public final BoolSetting fakePlayerLogin = new BoolSetting(this, "fake-players.do-login", false, "Raise login events for fake players");
|
public final BoolSetting fakePlayerLogin = new BoolSetting(this, "fake-players.do-login", false, "Raise login events for fake players");
|
||||||
|
|
||||||
// Plug-in options
|
// Plug-in options
|
||||||
@ -95,6 +96,7 @@ public class CauldronConfig extends ConfigBase
|
|||||||
settings.put(fakePlayerLogin.path, fakePlayerLogin);
|
settings.put(fakePlayerLogin.path, fakePlayerLogin);
|
||||||
settings.put(remapPluginFile.path, remapPluginFile);
|
settings.put(remapPluginFile.path, remapPluginFile);
|
||||||
settings.put(userLogin.path, userLogin);
|
settings.put(userLogin.path, userLogin);
|
||||||
|
settings.put(allowTntPunishment.path, allowTntPunishment);
|
||||||
load();
|
load();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user