Various configurable toggles

- Disable explosion knockback for players
- Disable thunder logic
- Disable ice and snow formation
- Disable mood sounds
This commit is contained in:
Byteflux 2015-07-14 09:34:10 -07:00
parent c17e209dc1
commit 4cd1afddde
4 changed files with 182 additions and 0 deletions

View file

@ -0,0 +1,71 @@
From 8fa94297f64a5c59b5b323bb17b3272a24676438 Mon Sep 17 00:00:00 2001
From: Sudzzy <originmc@outlook.com>
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

View file

@ -0,0 +1,37 @@
From 10aeb7030c8694ef21eeb286494dd8e2dcd274e1 Mon Sep 17 00:00:00 2001
From: Sudzzy <originmc@outlook.com>
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

View file

@ -0,0 +1,37 @@
From 4fbb05cc2918c6ffe6476a7cea7320107bb24bc7 Mon Sep 17 00:00:00 2001
From: Sudzzy <originmc@outlook.com>
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

View file

@ -0,0 +1,37 @@
From c90d97ad1e3d00db76616f1d49e415d2d86bd92b Mon Sep 17 00:00:00 2001
From: Sudzzy <originmc@outlook.com>
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