From 4cd1afdddeb794094f939de090c7ab2c035b6313 Mon Sep 17 00:00:00 2001 From: Byteflux Date: Tue, 14 Jul 2015 09:34:10 -0700 Subject: [PATCH] Various configurable toggles - Disable explosion knockback for players - Disable thunder logic - Disable ice and snow formation - Disable mood sounds --- .../0059-Disable-explosion-knockback.patch | 71 +++++++++++++++++++ .../0060-Disable-thunder.patch | 37 ++++++++++ .../0061-Disable-ice-and-snow.patch | 37 ++++++++++ .../0062-Disable-mood-sounds.patch | 37 ++++++++++ 4 files changed, 182 insertions(+) create mode 100644 Spigot-Server-Patches/0059-Disable-explosion-knockback.patch create mode 100644 Spigot-Server-Patches/0060-Disable-thunder.patch create mode 100644 Spigot-Server-Patches/0061-Disable-ice-and-snow.patch create mode 100644 Spigot-Server-Patches/0062-Disable-mood-sounds.patch diff --git a/Spigot-Server-Patches/0059-Disable-explosion-knockback.patch b/Spigot-Server-Patches/0059-Disable-explosion-knockback.patch new file mode 100644 index 0000000000..0d8e52e858 --- /dev/null +++ b/Spigot-Server-Patches/0059-Disable-explosion-knockback.patch @@ -0,0 +1,71 @@ +From 8fa94297f64a5c59b5b323bb17b3272a24676438 Mon Sep 17 00:00:00 2001 +From: Sudzzy +Date: Tue, 14 Jul 2015 09:20:44 -0700 +Subject: [PATCH] Disable explosion knockback + + +diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java +index 8090a0c..b2484a7 100644 +--- a/src/main/java/net/minecraft/server/EntityLiving.java ++++ b/src/main/java/net/minecraft/server/EntityLiving.java +@@ -778,7 +778,10 @@ public abstract class EntityLiving extends Entity { + } + } + +- if (flag) { ++ // PaperSpigot start - Disable explosion knockback ++ boolean knockbackCancelled = false; ++ if (flag && !(knockbackCancelled = world.paperSpigotConfig.disableExplosionKnockback && damagesource.isExplosion() && this instanceof EntityHuman)) { ++ // PaperSpigot end + this.world.broadcastEntityEffect(this, (byte) 2); + if (damagesource != DamageSource.DROWN) { + this.ac(); +@@ -800,6 +803,8 @@ public abstract class EntityLiving extends Entity { + } + } + ++ if (knockbackCancelled) this.world.broadcastEntityEffect(this, (byte) 2); // PaperSpigot ++ + String s; + + if (this.getHealth() <= 0.0F) { +diff --git a/src/main/java/net/minecraft/server/Explosion.java b/src/main/java/net/minecraft/server/Explosion.java +index 4afb8d7..f23245e 100644 +--- a/src/main/java/net/minecraft/server/Explosion.java ++++ b/src/main/java/net/minecraft/server/Explosion.java +@@ -140,7 +140,7 @@ public class Explosion { + continue; + } + // CraftBukkit end +- double d14 = EnchantmentProtection.a(entity, d13); ++ double d14 = entity instanceof EntityHuman && world.paperSpigotConfig.disableExplosionKnockback ? 0 : EnchantmentProtection.a(entity, d13); // PaperSpigot + + // PaperSpigot start - Fix cannons + /* +@@ -152,7 +152,7 @@ public class Explosion { + entity.g(d8 * d14, d9 * d14, d10 * d14); + // PaperSpigot end + +- if (entity instanceof EntityHuman && !((EntityHuman) entity).abilities.isInvulnerable) { ++ if (entity instanceof EntityHuman && !((EntityHuman) entity).abilities.isInvulnerable && !world.paperSpigotConfig.disableExplosionKnockback) { // PaperSpigot + this.k.put((EntityHuman) entity, new Vec3D(d8 * d13, d9 * d13, d10 * d13)); + } + } +diff --git a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java +index 20cf3ce..178f251 100644 +--- a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java ++++ b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java +@@ -360,4 +360,10 @@ public class PaperSpigotWorldConfig + lavaFlowSpeedNormal = getInt( "lava-flow-speed.normal", 30 ); + lavaFlowSpeedNether = getInt( "lava-flow-speed.nether", 10 ); + } ++ ++ public boolean disableExplosionKnockback; ++ private void disableExplosionKnockback() ++ { ++ disableExplosionKnockback = getBoolean( "disable-explosion-knockback", false ); ++ } + } +-- +1.9.5.msysgit.1 + diff --git a/Spigot-Server-Patches/0060-Disable-thunder.patch b/Spigot-Server-Patches/0060-Disable-thunder.patch new file mode 100644 index 0000000000..ff86faf500 --- /dev/null +++ b/Spigot-Server-Patches/0060-Disable-thunder.patch @@ -0,0 +1,37 @@ +From 10aeb7030c8694ef21eeb286494dd8e2dcd274e1 Mon Sep 17 00:00:00 2001 +From: Sudzzy +Date: Tue, 14 Jul 2015 09:26:41 -0700 +Subject: [PATCH] Disable thunder + + +diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java +index 59296d0..235f1c8 100644 +--- a/src/main/java/net/minecraft/server/WorldServer.java ++++ b/src/main/java/net/minecraft/server/WorldServer.java +@@ -422,7 +422,7 @@ public class WorldServer extends World implements IAsyncTaskHandler { + int i1; + BlockPosition blockposition; + +- if (this.random.nextInt(100000) == 0 && this.S() && this.R()) { ++ if (!this.paperSpigotConfig.disableThunder && this.random.nextInt(100000) == 0 && this.S() && this.R()) { // PaperSpigot - Disable thunder + this.m = this.m * 3 + 1013904223; + i1 = this.m >> 2; + blockposition = this.a(new BlockPosition(k + (i1 & 15), 0, l + (i1 >> 8 & 15))); +diff --git a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java +index 178f251..4ebd9dd 100644 +--- a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java ++++ b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java +@@ -366,4 +366,10 @@ public class PaperSpigotWorldConfig + { + disableExplosionKnockback = getBoolean( "disable-explosion-knockback", false ); + } ++ ++ public boolean disableThunder; ++ private void disableThunder() ++ { ++ disableThunder = getBoolean( "disable-thunder", false ); ++ } + } +-- +1.9.5.msysgit.1 + diff --git a/Spigot-Server-Patches/0061-Disable-ice-and-snow.patch b/Spigot-Server-Patches/0061-Disable-ice-and-snow.patch new file mode 100644 index 0000000000..0ab6b0170a --- /dev/null +++ b/Spigot-Server-Patches/0061-Disable-ice-and-snow.patch @@ -0,0 +1,37 @@ +From 4fbb05cc2918c6ffe6476a7cea7320107bb24bc7 Mon Sep 17 00:00:00 2001 +From: Sudzzy +Date: Tue, 14 Jul 2015 09:28:31 -0700 +Subject: [PATCH] Disable ice and snow + + +diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java +index 235f1c8..a6452bb 100644 +--- a/src/main/java/net/minecraft/server/WorldServer.java ++++ b/src/main/java/net/minecraft/server/WorldServer.java +@@ -432,7 +432,7 @@ public class WorldServer extends World implements IAsyncTaskHandler { + } + + this.methodProfiler.c("iceandsnow"); +- if (this.random.nextInt(16) == 0) { ++ if (!this.paperSpigotConfig.disableIceAndSnow && this.random.nextInt(16) == 0) { // PaperSpigot - Disable ice and snow + this.m = this.m * 3 + 1013904223; + i1 = this.m >> 2; + blockposition = this.q(new BlockPosition(k + (i1 & 15), 0, l + (i1 >> 8 & 15))); +diff --git a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java +index 4ebd9dd..03d3705 100644 +--- a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java ++++ b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java +@@ -372,4 +372,10 @@ public class PaperSpigotWorldConfig + { + disableThunder = getBoolean( "disable-thunder", false ); + } ++ ++ public boolean disableIceAndSnow; ++ private void disableIceAndSnow() ++ { ++ disableIceAndSnow = getBoolean( "disable-ice-and-snow", false ); ++ } + } +-- +1.9.5.msysgit.1 + diff --git a/Spigot-Server-Patches/0062-Disable-mood-sounds.patch b/Spigot-Server-Patches/0062-Disable-mood-sounds.patch new file mode 100644 index 0000000000..e1d589dc4f --- /dev/null +++ b/Spigot-Server-Patches/0062-Disable-mood-sounds.patch @@ -0,0 +1,37 @@ +From c90d97ad1e3d00db76616f1d49e415d2d86bd92b Mon Sep 17 00:00:00 2001 +From: Sudzzy +Date: Tue, 14 Jul 2015 09:30:28 -0700 +Subject: [PATCH] Disable mood sounds + + +diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java +index 294f54c..eacd4b8 100644 +--- a/src/main/java/net/minecraft/server/World.java ++++ b/src/main/java/net/minecraft/server/World.java +@@ -2232,7 +2232,7 @@ public abstract class World implements IBlockAccess { + + protected void a(int i, int j, Chunk chunk) { + this.methodProfiler.c("moodSound"); +- if (this.L == 0 && !this.isClientSide) { ++ if (!this.paperSpigotConfig.disableMoodSounds && this.L == 0 && !this.isClientSide) { // PaperSpigot - Disable mood sounds + this.m = this.m * 3 + 1013904223; + int k = this.m >> 2; + int l = k & 15; +diff --git a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java +index 03d3705..2371123 100644 +--- a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java ++++ b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java +@@ -378,4 +378,10 @@ public class PaperSpigotWorldConfig + { + disableIceAndSnow = getBoolean( "disable-ice-and-snow", false ); + } ++ ++ public boolean disableMoodSounds; ++ private void disableMoodSounds() ++ { ++ disableMoodSounds = getBoolean( "disable-mood-sounds", false ); ++ } + } +-- +1.9.5.msysgit.1 +