Restructure PaperSpigot as a new set of modules
Allows us much greater control over the Spigot portion of the code and makes us more "proper" Credit to @Dmck2b for originally passing the idea along a while back
This commit is contained in:
43
Spigot-Server-Patches/Ability-to-disable-asynccatcher.patch
Normal file
43
Spigot-Server-Patches/Ability-to-disable-asynccatcher.patch
Normal file
@@ -0,0 +1,43 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Zach Brown <1254957+zachbr@users.noreply.github.com>
|
||||
Date: Sat, 12 Jul 2014 19:37:16 -0500
|
||||
Subject: [PATCH] Ability to disable asynccatcher
|
||||
|
||||
|
||||
diff --git a/src/main/java/org/github/paperspigot/PaperSpigotConfig.java b/src/main/java/org/github/paperspigot/PaperSpigotConfig.java
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
--- a/src/main/java/org/github/paperspigot/PaperSpigotConfig.java
|
||||
+++ b/src/main/java/org/github/paperspigot/PaperSpigotConfig.java
|
||||
@@ -0,0 +0,0 @@ public class PaperSpigotConfig
|
||||
config.addDefault( path, def );
|
||||
return config.getString( path, config.getString( path ) );
|
||||
}
|
||||
+
|
||||
+ public static boolean asyncCatcherFeature;
|
||||
+ private static void asyncCatcherFeature()
|
||||
+ {
|
||||
+ asyncCatcherFeature = getBoolean( "settings.async-plugin-bad-magic-catcher", true );
|
||||
+ if ( !asyncCatcherFeature ) {
|
||||
+ Bukkit.getLogger().log( Level.INFO, "Disabling async plugin bad ju-ju catcher, this might be bad depending on your plugins" );
|
||||
+ }
|
||||
+ }
|
||||
}
|
||||
diff --git a/src/main/java/org/spigotmc/AsyncCatcher.java b/src/main/java/org/spigotmc/AsyncCatcher.java
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
--- a/src/main/java/org/spigotmc/AsyncCatcher.java
|
||||
+++ b/src/main/java/org/spigotmc/AsyncCatcher.java
|
||||
@@ -0,0 +0,0 @@
|
||||
package org.spigotmc;
|
||||
|
||||
import net.minecraft.server.MinecraftServer;
|
||||
+import org.github.paperspigot.PaperSpigotConfig; // PaperSpigot
|
||||
|
||||
public class AsyncCatcher
|
||||
{
|
||||
|
||||
- public static boolean enabled = true;
|
||||
+ public static boolean enabled = PaperSpigotConfig.asyncCatcherFeature; // PaperSpigot - AsyncCatcher override feature
|
||||
|
||||
public static void catchOp(String reason)
|
||||
{
|
||||
--
|
||||
@@ -0,0 +1,35 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Zach Brown <1254957+zachbr@users.noreply.github.com>
|
||||
Date: Tue, 10 Jun 2014 18:22:19 -0500
|
||||
Subject: [PATCH] Add 1.8 recipes for stone variants
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/CraftingManager.java b/src/main/java/net/minecraft/server/CraftingManager.java
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
--- a/src/main/java/net/minecraft/server/CraftingManager.java
|
||||
+++ b/src/main/java/net/minecraft/server/CraftingManager.java
|
||||
@@ -0,0 +0,0 @@ public class CraftingManager {
|
||||
this.registerShapelessRecipe(new ItemStack(Items.FIREBALL, 3), new Object[] { Items.SULPHUR, Items.BLAZE_POWDER, new ItemStack(Items.COAL, 1, 1)});
|
||||
this.registerShapedRecipe(new ItemStack(Blocks.DAYLIGHT_DETECTOR), new Object[] { "GGG", "QQQ", "WWW", Character.valueOf('G'), Blocks.GLASS, Character.valueOf('Q'), Items.QUARTZ, Character.valueOf('W'), Blocks.WOOD_STEP});
|
||||
this.registerShapedRecipe(new ItemStack(Blocks.HOPPER), new Object[] { "I I", "ICI", " I ", Character.valueOf('I'), Items.IRON_INGOT, Character.valueOf('C'), Blocks.CHEST});
|
||||
+ // PaperSpigot start - Register moss stone and mossy and chiseled stone brick recipes
|
||||
+ this.registerShapelessRecipe(new ItemStack(Blocks.MOSSY_COBBLESTONE), new Object[] { Blocks.VINE, Blocks.COBBLESTONE});
|
||||
+ this.registerShapelessRecipe(new ItemStack(Blocks.SMOOTH_BRICK, 1, 1), new Object[] { Blocks.VINE, Blocks.SMOOTH_BRICK});
|
||||
+ this.registerShapelessRecipe(new ItemStack(Blocks.SMOOTH_BRICK, 1, 3), new Object[] { new ItemStack(Blocks.STEP, 1, 5), new ItemStack(Blocks.STEP, 1, 5)});
|
||||
+ // PaperSpigot end
|
||||
// Collections.sort(this.recipes, new RecipeSorter(this)); // CraftBukkit - moved below
|
||||
this.sort(); // CraftBukkit - call new sort method
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/RecipesFurnace.java b/src/main/java/net/minecraft/server/RecipesFurnace.java
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
--- a/src/main/java/net/minecraft/server/RecipesFurnace.java
|
||||
+++ b/src/main/java/net/minecraft/server/RecipesFurnace.java
|
||||
@@ -0,0 +0,0 @@ public class RecipesFurnace {
|
||||
this.registerRecipe(Blocks.EMERALD_ORE, new ItemStack(Items.EMERALD), 1.0F);
|
||||
this.a(Items.POTATO, new ItemStack(Items.POTATO_BAKED), 0.35F);
|
||||
this.registerRecipe(Blocks.NETHERRACK, new ItemStack(Items.NETHER_BRICK), 0.1F);
|
||||
+ this.registerRecipe(Blocks.SMOOTH_BRICK, new ItemStack(Blocks.SMOOTH_BRICK, 1, 2), 0.5F); // PaperSpigot - Register cracked stone brick recipe
|
||||
EnumFish[] aenumfish = EnumFish.values();
|
||||
int i = aenumfish.length;
|
||||
|
||||
--
|
||||
@@ -0,0 +1,55 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Suddenly <suddenly@suddenly.coffee>
|
||||
Date: Mon, 7 Jul 2014 04:11:34 +0100
|
||||
Subject: [PATCH] Add configurable despawn distances for living entities
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityInsentient.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityInsentient.java
|
||||
@@ -0,0 +0,0 @@ public abstract class EntityInsentient extends EntityLiving {
|
||||
double d2 = entityhuman.locZ - this.locZ;
|
||||
double d3 = d0 * d0 + d1 * d1 + d2 * d2;
|
||||
|
||||
- if (d3 > 16384.0D) { // CraftBukkit - remove isTypeNotPersistent() check
|
||||
+ if (d3 > this.world.paperSpigotConfig.hardDespawnDistance) { // CraftBukkit - remove isTypeNotPersistent() check // PaperSpigot - custom despawn distances
|
||||
this.die();
|
||||
}
|
||||
|
||||
- if (this.aU > 600 && this.random.nextInt(800) == 0 && d3 > 1024.0D) { // CraftBukkit - remove isTypeNotPersistent() check
|
||||
+ if (this.aU > 600 && this.random.nextInt(800) == 0 && d3 > this.world.paperSpigotConfig.softDespawnDistance) { // CraftBukkit - remove isTypeNotPersistent() check // PaperSpigot - custom despawn distances
|
||||
this.die();
|
||||
- } else if (d3 < 1024.0D) {
|
||||
+ } else if (d3 < this.world.paperSpigotConfig.softDespawnDistance) { // PaperSpigot - custom despawn distances
|
||||
this.aU = 0;
|
||||
}
|
||||
}
|
||||
diff --git a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
--- a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
|
||||
+++ b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
|
||||
@@ -0,0 +0,0 @@ public class PaperSpigotWorldConfig
|
||||
playerExhaustionAttack = getFloat( "player-exhaustion.attack", 0.3F );
|
||||
playerExhaustionRegeneration = getFloat( "player-exhaustion.regeneration", 3.0F );
|
||||
}
|
||||
+
|
||||
+ public Integer softDespawnDistance;
|
||||
+ public Integer hardDespawnDistance;
|
||||
+ private void despawnDistances()
|
||||
+ {
|
||||
+ softDespawnDistance = getInt( "despawn-ranges.soft", 32 ); // 32^2 = 1024, Minecraft Default
|
||||
+ hardDespawnDistance = getInt( "despawn-ranges.hard", 128 ); // 128^2 = 16384, Minecraft Default;
|
||||
+
|
||||
+ if ( softDespawnDistance > hardDespawnDistance)
|
||||
+ {
|
||||
+ softDespawnDistance = hardDespawnDistance;
|
||||
+ }
|
||||
+
|
||||
+ log( "Living Entity Despawn Ranges: Soft: " + softDespawnDistance + " Hard: " + hardDespawnDistance );
|
||||
+
|
||||
+ softDespawnDistance = softDespawnDistance*softDespawnDistance;
|
||||
+ hardDespawnDistance = hardDespawnDistance*hardDespawnDistance;
|
||||
+ }
|
||||
}
|
||||
--
|
||||
@@ -0,0 +1,36 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Dmck2b <itallhappenedverysuddenly@gmail.com>
|
||||
Date: Thu, 10 Jul 2014 16:57:10 +0100
|
||||
Subject: [PATCH] Allow for toggling of spawn chunks
|
||||
|
||||
Now with 100% more confirmed working by creator
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
--- a/src/main/java/net/minecraft/server/World.java
|
||||
+++ b/src/main/java/net/minecraft/server/World.java
|
||||
@@ -0,0 +0,0 @@ public abstract class World implements IBlockAccess {
|
||||
this.ticksPerAnimalSpawns = this.getServer().getTicksPerAnimalSpawns(); // CraftBukkit
|
||||
this.ticksPerMonsterSpawns = this.getServer().getTicksPerMonsterSpawns(); // CraftBukkit
|
||||
// CraftBukkit end
|
||||
+ this.keepSpawnInMemory = this.paperSpigotConfig.keepSpawnInMemory; // PaperSpigot
|
||||
// Spigot start
|
||||
this.chunkTickRadius = (byte) ( ( this.getServer().getViewDistance() < 7 ) ? this.getServer().getViewDistance() : 7 );
|
||||
this.chunkTickList = new net.minecraft.util.gnu.trove.map.hash.TLongShortHashMap( spigotConfig.chunksPerTick * 5, 0.7f, Long.MIN_VALUE, Short.MIN_VALUE );
|
||||
diff --git a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
--- a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
|
||||
+++ b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
|
||||
@@ -0,0 +0,0 @@ public class PaperSpigotWorldConfig
|
||||
softDespawnDistance = softDespawnDistance*softDespawnDistance;
|
||||
hardDespawnDistance = hardDespawnDistance*hardDespawnDistance;
|
||||
}
|
||||
+
|
||||
+ public boolean keepSpawnInMemory;
|
||||
+ private void keepSpawnInMemory()
|
||||
+ {
|
||||
+ keepSpawnInMemory = getBoolean( "keep-spawn-loaded", true );
|
||||
+ log( "Keep spawn chunk loaded: " + keepSpawnInMemory );
|
||||
+ }
|
||||
}
|
||||
--
|
||||
24
Spigot-Server-Patches/Allow-nerfed-mobs-to-jump.patch
Normal file
24
Spigot-Server-Patches/Allow-nerfed-mobs-to-jump.patch
Normal file
@@ -0,0 +1,24 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Zach Brown <1254957+zachbr@users.noreply.github.com>
|
||||
Date: Sun, 29 Jun 2014 13:32:36 -0500
|
||||
Subject: [PATCH] Allow nerfed mobs to jump
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityInsentient.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityInsentient.java
|
||||
@@ -0,0 +0,0 @@ public abstract class EntityInsentient extends EntityLiving {
|
||||
// Spigot Start
|
||||
if ( this.fromMobSpawner )
|
||||
{
|
||||
+ // PaperSpigot start - Allow nerfed mobs to jump
|
||||
+ this.world.methodProfiler.a("goalSelector");
|
||||
+ this.goalSelector.a();
|
||||
+ this.world.methodProfiler.c("jump");
|
||||
+ this.bm.b();
|
||||
+ // PaperSpigot end
|
||||
return;
|
||||
}
|
||||
// Spigot End
|
||||
--
|
||||
@@ -0,0 +1,51 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Zach Brown <1254957+zachbr@users.noreply.github.com>
|
||||
Date: Sat, 12 Jul 2014 19:36:18 -0500
|
||||
Subject: [PATCH] Allow undead horse types to be leashed
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityHorse.java b/src/main/java/net/minecraft/server/EntityHorse.java
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityHorse.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityHorse.java
|
||||
@@ -0,0 +0,0 @@ import java.util.List;
|
||||
|
||||
import org.bukkit.event.entity.EntityRegainHealthEvent.RegainReason; // CraftBukkit
|
||||
|
||||
+import org.github.paperspigot.PaperSpigotWorldConfig; // PaperSpigot
|
||||
+
|
||||
public class EntityHorse extends EntityAnimal implements IInventoryListener {
|
||||
|
||||
private static final IEntitySelector bu = new EntitySelectorHorse();
|
||||
@@ -0,0 +0,0 @@ public class EntityHorse extends EntityAnimal implements IInventoryListener {
|
||||
}
|
||||
|
||||
public boolean bM() {
|
||||
- return !this.cE() && super.bM();
|
||||
+ // PaperSpigot start - configurable undead horse leashing
|
||||
+ if (PaperSpigotWorldConfig.allowUndeadHorseLeashing) {
|
||||
+ return super.bM();
|
||||
+ } else {
|
||||
+ return !this.cE() && super.bM();
|
||||
+ }
|
||||
+ // PaperSpigot end
|
||||
}
|
||||
|
||||
protected void o(float f) {
|
||||
diff --git a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
--- a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
|
||||
+++ b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
|
||||
@@ -0,0 +0,0 @@ public class PaperSpigotWorldConfig
|
||||
config.addDefault( "world-settings.default." + path, def );
|
||||
return config.getString( "world-settings." + worldName + "." + path, config.getString( "world-settings.default." + path ) );
|
||||
}
|
||||
+
|
||||
+ public static boolean allowUndeadHorseLeashing;
|
||||
+ private void allowUndeadHorseLeashing()
|
||||
+ {
|
||||
+ allowUndeadHorseLeashing = getBoolean( "allow-undead-horse-leashing", true );
|
||||
+ log( "Allow undead horse types to be leashed: " + allowUndeadHorseLeashing );
|
||||
+ }
|
||||
}
|
||||
--
|
||||
68
Spigot-Server-Patches/Better-EULA-handling.patch
Normal file
68
Spigot-Server-Patches/Better-EULA-handling.patch
Normal file
@@ -0,0 +1,68 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Zach Brown <1254957+zachbr@users.noreply.github.com>
|
||||
Date: Tue, 8 Jul 2014 22:39:41 -0500
|
||||
Subject: [PATCH] Better EULA handling
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/DedicatedServer.java b/src/main/java/net/minecraft/server/DedicatedServer.java
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
--- a/src/main/java/net/minecraft/server/DedicatedServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/DedicatedServer.java
|
||||
@@ -0,0 +0,0 @@ import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
import java.util.concurrent.Callable;
|
||||
+import java.util.concurrent.TimeUnit; // PaperSpigot
|
||||
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
@@ -0,0 +0,0 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
|
||||
|
||||
i.info("Loading properties");
|
||||
this.propertyManager = new PropertyManager(this.options); // CraftBukkit - CLI argument support
|
||||
- this.n = new EULA(new File("eula.txt"));
|
||||
+ // PaperSpigot start - Display a EULA warning then continue
|
||||
+ File EULALock = new File( ".eula-lock");
|
||||
// Spigot Start
|
||||
boolean eulaAgreed = Boolean.getBoolean( "com.mojang.eula.agree" );
|
||||
if ( eulaAgreed )
|
||||
@@ -0,0 +0,0 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
|
||||
System.err.println( "You have used the Spigot command line EULA agreement flag." );
|
||||
System.err.println( "By using this setting you are indicating your agreement to Mojang's EULA (https://account.mojang.com/documents/minecraft_eula)." );
|
||||
System.err.println( "If you do not agree to the above EULA please stop your server and remove this flag immediately." );
|
||||
- }
|
||||
- // Spigot End
|
||||
- if (!this.n.a() && !eulaAgreed) {
|
||||
- i.info("You need to agree to the EULA in order to run the server. Go to eula.txt for more info.");
|
||||
- this.n.b();
|
||||
- return false;
|
||||
+ // Spigot End
|
||||
} else {
|
||||
+ if (!EULALock.exists()) {
|
||||
+ System.err.println("WARNING: By using this server you are indicating your agreement to Mojang's EULA (https://account.mojang.com/documents/minecraft_eula)");
|
||||
+ System.err.println("If you do not agree to the above EULA please stop this server and remove it from your system immediately.");
|
||||
+ System.err.println("The server will start in 10 seconds, you will only see this message and have to wait this one time.");
|
||||
+ try {
|
||||
+ EULALock.createNewFile();
|
||||
+ } catch (IOException e1) {
|
||||
+ System.err.println("Unable to create EULA lock file");
|
||||
+ e1.printStackTrace();
|
||||
+ }
|
||||
+ try {
|
||||
+ Thread.sleep(TimeUnit.SECONDS.toMillis(10));
|
||||
+ } catch (InterruptedException ex) {
|
||||
+ }
|
||||
+ }
|
||||
+ // PaperSpigot end
|
||||
if (this.N()) {
|
||||
this.c("127.0.0.1");
|
||||
} else {
|
||||
@@ -0,0 +0,0 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
|
||||
return true;
|
||||
}
|
||||
}
|
||||
+ return true; // PaperSpigot
|
||||
}
|
||||
|
||||
// CraftBukkit start
|
||||
--
|
||||
@@ -0,0 +1,56 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Zach Brown <1254957+zachbr@users.noreply.github.com>
|
||||
Date: Mon, 14 Jul 2014 01:20:46 -0500
|
||||
Subject: [PATCH] Configurable AI target selector delay
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityInsentient.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityInsentient.java
|
||||
@@ -0,0 +0,0 @@ public abstract class EntityInsentient extends EntityLiving {
|
||||
}
|
||||
}
|
||||
|
||||
+ // PaperSpigot start - Configurable AI delay
|
||||
+ private int aiTickDelay = org.github.paperspigot.PaperSpigotWorldConfig.aiTickDelay;
|
||||
+ private int lastRun = -1;
|
||||
+ // PaperSpigot end
|
||||
+
|
||||
protected void bn() {
|
||||
++this.aU;
|
||||
this.world.methodProfiler.a("checkDespawn");
|
||||
@@ -0,0 +0,0 @@ public abstract class EntityInsentient extends EntityLiving {
|
||||
this.world.methodProfiler.a("sensing");
|
||||
this.bq.a();
|
||||
this.world.methodProfiler.b();
|
||||
- this.world.methodProfiler.a("targetSelector");
|
||||
- this.targetSelector.a();
|
||||
- this.world.methodProfiler.b();
|
||||
+ // PaperSpigot start - Configurable AI delay
|
||||
+ if (aiTickDelay == 0 || lastRun == -1 || MinecraftServer.currentTick - lastRun >= aiTickDelay) {
|
||||
+ this.world.methodProfiler.a("targetSelector");
|
||||
+ this.targetSelector.a();
|
||||
+ this.world.methodProfiler.b();
|
||||
+ lastRun = MinecraftServer.currentTick;
|
||||
+ }
|
||||
+ // PaperSpigot stop
|
||||
this.world.methodProfiler.a("goalSelector");
|
||||
this.goalSelector.a();
|
||||
this.world.methodProfiler.b();
|
||||
diff --git a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
--- a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
|
||||
+++ b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
|
||||
@@ -0,0 +0,0 @@ public class PaperSpigotWorldConfig
|
||||
{
|
||||
tntHeightNerf = getDouble( "tnt-entity-height-nerf", 0 );
|
||||
}
|
||||
+
|
||||
+ public static int aiTickDelay;
|
||||
+ private void aiTickDelay()
|
||||
+ {
|
||||
+ aiTickDelay = getInt( "ai-tick-delay", 0 );
|
||||
+ }
|
||||
}
|
||||
--
|
||||
@@ -0,0 +1,41 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Zach Brown <1254957+zachbr@users.noreply.github.com>
|
||||
Date: Wed, 21 May 2014 15:35:12 -0500
|
||||
Subject: [PATCH] Configurable baby zombie movement speed
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityZombie.java b/src/main/java/net/minecraft/server/EntityZombie.java
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityZombie.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityZombie.java
|
||||
@@ -0,0 +0,0 @@ import org.bukkit.event.entity.EntityCombustEvent;
|
||||
import org.bukkit.event.entity.EntityTargetEvent;
|
||||
//CraftBukkit end
|
||||
|
||||
+import org.github.paperspigot.PaperSpigotWorldConfig; // PaperSpigot
|
||||
+
|
||||
public class EntityZombie extends EntityMonster {
|
||||
|
||||
protected static final IAttribute bp = (new AttributeRanged("zombie.spawnReinforcements", 0.0D, 0.0D, 1.0D)).a("Spawn Reinforcements Chance");
|
||||
private static final UUID bq = UUID.fromString("B9766B59-9566-4402-BC1F-2EE2A276D836");
|
||||
- private static final AttributeModifier br = new AttributeModifier(bq, "Baby speed boost", 0.5D, 1);
|
||||
+ private static final AttributeModifier br = new AttributeModifier(bq, "Baby speed boost", PaperSpigotWorldConfig.babyZombieMovementSpeed, 1); // PaperSpigot - Make baby zombie movement speed configurable
|
||||
private final PathfinderGoalBreakDoor bs = new PathfinderGoalBreakDoor(this);
|
||||
private int bt;
|
||||
private boolean bu = false;
|
||||
diff --git a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
--- a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
|
||||
+++ b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
|
||||
@@ -0,0 +0,0 @@ public class PaperSpigotWorldConfig
|
||||
cactusMaxHeight = getInt( "max-growth-height.cactus", 3 );
|
||||
reedMaxHeight = getInt ( "max-growth-height.reeds", 3 );
|
||||
}
|
||||
+
|
||||
+ public static double babyZombieMovementSpeed;
|
||||
+ private void babyZombieMovementSpeed()
|
||||
+ {
|
||||
+ babyZombieMovementSpeed = getDouble( "baby-zombie-movement-speed", 0.5D );
|
||||
+ }
|
||||
}
|
||||
--
|
||||
@@ -0,0 +1,67 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Zach Brown <1254957+zachbr@users.noreply.github.com>
|
||||
Date: Tue, 24 Jun 2014 07:44:59 -0500
|
||||
Subject: [PATCH] Configurable cactus and reed natural growth heights
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/BlockCactus.java b/src/main/java/net/minecraft/server/BlockCactus.java
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
--- a/src/main/java/net/minecraft/server/BlockCactus.java
|
||||
+++ b/src/main/java/net/minecraft/server/BlockCactus.java
|
||||
@@ -0,0 +0,0 @@ import java.util.Random;
|
||||
|
||||
import org.bukkit.craftbukkit.event.CraftEventFactory; // CraftBukkit
|
||||
|
||||
+import org.github.paperspigot.PaperSpigotWorldConfig; // PaperSpigot
|
||||
+
|
||||
public class BlockCactus extends Block {
|
||||
|
||||
protected BlockCactus() {
|
||||
@@ -0,0 +0,0 @@ public class BlockCactus extends Block {
|
||||
;
|
||||
}
|
||||
|
||||
- if (l < 3) {
|
||||
+ if (l < PaperSpigotWorldConfig.cactusMaxHeight) { // PaperSpigot - Configurable natural growth heights
|
||||
int i1 = world.getData(i, j, k);
|
||||
|
||||
if (i1 >= (byte) range(3, (world.growthOdds / world.spigotConfig.cactusModifier * 15) + 0.5F, 15)) { // Spigot
|
||||
diff --git a/src/main/java/net/minecraft/server/BlockReed.java b/src/main/java/net/minecraft/server/BlockReed.java
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
--- a/src/main/java/net/minecraft/server/BlockReed.java
|
||||
+++ b/src/main/java/net/minecraft/server/BlockReed.java
|
||||
@@ -0,0 +0,0 @@
|
||||
package net.minecraft.server;
|
||||
|
||||
+import org.github.paperspigot.PaperSpigotWorldConfig; // PaperSpigot
|
||||
+
|
||||
import java.util.Random;
|
||||
|
||||
public class BlockReed extends Block {
|
||||
@@ -0,0 +0,0 @@ public class BlockReed extends Block {
|
||||
;
|
||||
}
|
||||
|
||||
- if (l < 3) {
|
||||
+ if (l < PaperSpigotWorldConfig.reedMaxHeight) { // PaperSpigot - Configurable natural growth heights
|
||||
int i1 = world.getData(i, j, k);
|
||||
|
||||
if (i1 >= (byte) range(3, (world.growthOdds / world.spigotConfig.caneModifier * 15) + 0.5F, 15)) { // Spigot
|
||||
diff --git a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
--- a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
|
||||
+++ b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
|
||||
@@ -0,0 +0,0 @@ public class PaperSpigotWorldConfig
|
||||
{
|
||||
playerBlockingDamageMultiplier = getFloat( "player-blocking-damage-multiplier", 0.5F );
|
||||
}
|
||||
+
|
||||
+ public static int cactusMaxHeight;
|
||||
+ public static int reedMaxHeight;
|
||||
+ private void blockGrowthHeight()
|
||||
+ {
|
||||
+ cactusMaxHeight = getInt( "max-growth-height.cactus", 3 );
|
||||
+ reedMaxHeight = getInt ( "max-growth-height.reeds", 3 );
|
||||
+ }
|
||||
}
|
||||
--
|
||||
@@ -0,0 +1,44 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Zach Brown <1254957+zachbr@users.noreply.github.com>
|
||||
Date: Tue, 24 Jun 2014 07:39:37 -0500
|
||||
Subject: [PATCH] Configurable damage multiplier for PvP blocking
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityHuman.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityHuman.java
|
||||
@@ -0,0 +0,0 @@ import org.bukkit.event.player.PlayerDropItemEvent;
|
||||
import org.bukkit.event.player.PlayerItemConsumeEvent;
|
||||
// CraftBukkit end
|
||||
|
||||
+import org.github.paperspigot.PaperSpigotWorldConfig; // PaperSpigot
|
||||
+
|
||||
public abstract class EntityHuman extends EntityLiving implements ICommandListener {
|
||||
|
||||
public PlayerInventory inventory = new PlayerInventory(this);
|
||||
@@ -0,0 +0,0 @@ public abstract class EntityHuman extends EntityLiving implements ICommandListen
|
||||
// CraftBukkit end
|
||||
if (!this.isInvulnerable()) {
|
||||
if (!damagesource.ignoresArmor() && this.isBlocking() && f > 0.0F) {
|
||||
- f = (1.0F + f) * 0.5F;
|
||||
+ f = (1.0F + f) * PaperSpigotWorldConfig.playerBlockingDamageMultiplier; // PaperSpigot - Configurable PvP blocking damage multiplier
|
||||
}
|
||||
|
||||
f = this.applyArmorModifier(damagesource, f);
|
||||
diff --git a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
--- a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
|
||||
+++ b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
|
||||
@@ -0,0 +0,0 @@ public class PaperSpigotWorldConfig
|
||||
squidMinSpawnHeight = getDouble( "squid-spawn-height.minimum", 45.0D );
|
||||
squidMaxSpawnHeight = getDouble( "squid-spawn-height.maximum", 63.0D );
|
||||
}
|
||||
+
|
||||
+ public static float playerBlockingDamageMultiplier;
|
||||
+ private void playerBlockingDamageMultiplier()
|
||||
+ {
|
||||
+ playerBlockingDamageMultiplier = getFloat( "player-blocking-damage-multiplier", 0.5F );
|
||||
+ }
|
||||
}
|
||||
--
|
||||
46
Spigot-Server-Patches/Configurable-fishing-time-ranges.patch
Normal file
46
Spigot-Server-Patches/Configurable-fishing-time-ranges.patch
Normal file
@@ -0,0 +1,46 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Zach Brown <1254957+zachbr@users.noreply.github.com>
|
||||
Date: Sun, 29 Jun 2014 13:22:09 -0500
|
||||
Subject: [PATCH] Configurable fishing time ranges
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityFishingHook.java b/src/main/java/net/minecraft/server/EntityFishingHook.java
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityFishingHook.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityFishingHook.java
|
||||
@@ -0,0 +0,0 @@ import org.bukkit.entity.Fish;
|
||||
import org.bukkit.event.player.PlayerFishEvent;
|
||||
// CraftBukkit end
|
||||
|
||||
+import org.github.paperspigot.PaperSpigotWorldConfig; // PaperSpigot
|
||||
+
|
||||
public class EntityFishingHook extends Entity {
|
||||
|
||||
private static final List d = Arrays.asList(new PossibleFishingResult[] { (new PossibleFishingResult(new ItemStack(Items.LEATHER_BOOTS), 10)).a(0.9F), new PossibleFishingResult(new ItemStack(Items.LEATHER), 10), new PossibleFishingResult(new ItemStack(Items.BONE), 10), new PossibleFishingResult(new ItemStack(Items.POTION), 10), new PossibleFishingResult(new ItemStack(Items.STRING), 5), (new PossibleFishingResult(new ItemStack(Items.FISHING_ROD), 2)).a(0.9F), new PossibleFishingResult(new ItemStack(Items.BOWL), 10), new PossibleFishingResult(new ItemStack(Items.STICK), 5), new PossibleFishingResult(new ItemStack(Items.INK_SACK, 10, 0), 1), new PossibleFishingResult(new ItemStack(Blocks.TRIPWIRE_SOURCE), 10), new PossibleFishingResult(new ItemStack(Items.ROTTEN_FLESH), 10)});
|
||||
@@ -0,0 +0,0 @@ public class EntityFishingHook extends Entity {
|
||||
this.az = MathHelper.nextInt(this.random, 20, 80);
|
||||
}
|
||||
} else {
|
||||
- this.ay = MathHelper.nextInt(this.random, 100, 900);
|
||||
+ this.ay = MathHelper.nextInt(this.random, PaperSpigotWorldConfig.fishingMinTicks, PaperSpigotWorldConfig.fishingMaxTicks); // PaperSpigot - configurable fishing time range
|
||||
this.ay -= EnchantmentManager.getLureEnchantmentLevel(this.owner) * 20 * 5;
|
||||
}
|
||||
}
|
||||
diff --git a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
--- a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
|
||||
+++ b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
|
||||
@@ -0,0 +0,0 @@ public class PaperSpigotWorldConfig
|
||||
InvertedDaylightDetectors = getBoolean( "inverted-daylight-detectors", false );
|
||||
log( "Inverted Redstone Lamps: " + InvertedDaylightDetectors );
|
||||
}
|
||||
+
|
||||
+ public static int fishingMinTicks = 100;
|
||||
+ public static int fishingMaxTicks = 900;
|
||||
+ private void fishingTickRange()
|
||||
+ {
|
||||
+ fishingMinTicks = getInt( "fishing-time-range.MinimumTicks", fishingMinTicks );
|
||||
+ fishingMaxTicks = getInt( "fishing-time-range.MaximumTicks", fishingMaxTicks );
|
||||
+ }
|
||||
}
|
||||
--
|
||||
@@ -0,0 +1,47 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Zach Brown <1254957+zachbr@users.noreply.github.com>
|
||||
Date: Wed, 9 Jul 2014 17:38:48 -0500
|
||||
Subject: [PATCH] Configurable nerf for TNT cannons
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityTNTPrimed.java b/src/main/java/net/minecraft/server/EntityTNTPrimed.java
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityTNTPrimed.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityTNTPrimed.java
|
||||
@@ -0,0 +0,0 @@
|
||||
package net.minecraft.server;
|
||||
|
||||
import org.bukkit.event.entity.ExplosionPrimeEvent; // CraftBukkit
|
||||
+import org.github.paperspigot.PaperSpigotWorldConfig;
|
||||
|
||||
public class EntityTNTPrimed extends Entity {
|
||||
|
||||
@@ -0,0 +0,0 @@ public class EntityTNTPrimed extends Entity {
|
||||
this.motY *= -0.5D;
|
||||
}
|
||||
|
||||
+ // PaperSpigot start - Configurable nerf for TNT cannons
|
||||
+ if (this.locY > PaperSpigotWorldConfig.tntHeightNerf && PaperSpigotWorldConfig.tntHeightNerf != 0) {
|
||||
+ this.die();
|
||||
+ }
|
||||
+ // PaperSpigot end
|
||||
+
|
||||
if (this.fuseTicks-- <= 0) {
|
||||
// CraftBukkit start - Need to reverse the order of the explosion and the entity death so we have a location for the event
|
||||
if (!this.world.isStatic) {
|
||||
diff --git a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
--- a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
|
||||
+++ b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
|
||||
@@ -0,0 +0,0 @@ public class PaperSpigotWorldConfig
|
||||
keepSpawnInMemory = getBoolean( "keep-spawn-loaded", true );
|
||||
log( "Keep spawn chunk loaded: " + keepSpawnInMemory );
|
||||
}
|
||||
+
|
||||
+ public static double tntHeightNerf;
|
||||
+ private void tntHeightNerf()
|
||||
+ {
|
||||
+ tntHeightNerf = getDouble( "tnt-entity-height-nerf", 0 );
|
||||
+ }
|
||||
}
|
||||
--
|
||||
45
Spigot-Server-Patches/Configurable-squid-spawn-ranges.patch
Normal file
45
Spigot-Server-Patches/Configurable-squid-spawn-ranges.patch
Normal file
@@ -0,0 +1,45 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Zach Brown <1254957+zachbr@users.noreply.github.com>
|
||||
Date: Mon, 19 May 2014 19:30:58 -0500
|
||||
Subject: [PATCH] Configurable squid spawn ranges
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/EntitySquid.java b/src/main/java/net/minecraft/server/EntitySquid.java
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntitySquid.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntitySquid.java
|
||||
@@ -0,0 +0,0 @@ package net.minecraft.server;
|
||||
|
||||
import org.bukkit.craftbukkit.TrigMath; // CraftBukkit
|
||||
|
||||
+import org.github.paperspigot.PaperSpigotWorldConfig; // PaperSpigot
|
||||
+
|
||||
public class EntitySquid extends EntityWaterAnimal {
|
||||
|
||||
public float bp;
|
||||
@@ -0,0 +0,0 @@ public class EntitySquid extends EntityWaterAnimal {
|
||||
}
|
||||
|
||||
public boolean canSpawn() {
|
||||
- return this.locY > 45.0D && this.locY < 63.0D && super.canSpawn();
|
||||
+ return this.locY > PaperSpigotWorldConfig.squidMinSpawnHeight && this.locY < PaperSpigotWorldConfig.squidMaxSpawnHeight && super.canSpawn(); // PaperSpigot - Configurable squid spawn height range
|
||||
}
|
||||
}
|
||||
diff --git a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
--- a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
|
||||
+++ b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
|
||||
@@ -0,0 +0,0 @@ public class PaperSpigotWorldConfig
|
||||
allowUndeadHorseLeashing = getBoolean( "allow-undead-horse-leashing", true );
|
||||
log( "Allow undead horse types to be leashed: " + allowUndeadHorseLeashing );
|
||||
}
|
||||
+
|
||||
+ public static double squidMinSpawnHeight;
|
||||
+ public static double squidMaxSpawnHeight;
|
||||
+ private void squidSpawnHeight()
|
||||
+ {
|
||||
+ squidMinSpawnHeight = getDouble( "squid-spawn-height.minimum", 45.0D );
|
||||
+ squidMaxSpawnHeight = getDouble( "squid-spawn-height.maximum", 63.0D );
|
||||
+ }
|
||||
}
|
||||
--
|
||||
@@ -0,0 +1,29 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: T00thpick1 <t00thpick1dirko@gmail.com>
|
||||
Date: Mon, 23 Jun 2014 21:37:24 -0500
|
||||
Subject: [PATCH] Do not remove player in world change
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
--- a/src/main/java/net/minecraft/server/PlayerList.java
|
||||
+++ b/src/main/java/net/minecraft/server/PlayerList.java
|
||||
@@ -0,0 +0,0 @@ public abstract class PlayerList {
|
||||
entityplayer.r().getTracker().untrackPlayer(entityplayer);
|
||||
// entityplayer.r().getTracker().untrackEntity(entityplayer); // CraftBukkit
|
||||
entityplayer.r().getPlayerChunkMap().removePlayer(entityplayer);
|
||||
- this.players.remove(entityplayer);
|
||||
+ // this.players.remove(entityplayer); // PaperSpigot -- Fixes BUKKIT-4561 and BUKKIT-4082 and BUKKIT-2094
|
||||
this.server.getWorldServer(entityplayer.dimension).removeEntity(entityplayer);
|
||||
ChunkCoordinates chunkcoordinates = entityplayer.getBed();
|
||||
boolean flag1 = entityplayer.isRespawnForced();
|
||||
@@ -0,0 +0,0 @@ public abstract class PlayerList {
|
||||
if (!entityplayer.playerConnection.isDisconnected()) {
|
||||
worldserver.getPlayerChunkMap().addPlayer(entityplayer1);
|
||||
worldserver.addEntity(entityplayer1);
|
||||
- this.players.add(entityplayer1);
|
||||
+ // this.players.add(entityplayer1); // PaperSpigot -- Fixes BUKKIT-4561 and BUKKIT-4082 and BUKKIT-2094
|
||||
}
|
||||
// Added from changeDimension
|
||||
this.updateClient(entityplayer1); // Update health, etc...
|
||||
--
|
||||
82
Spigot-Server-Patches/Don-t-tick-chests.patch
Normal file
82
Spigot-Server-Patches/Don-t-tick-chests.patch
Normal file
@@ -0,0 +1,82 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Iceee <andrew@opticgaming.tv>
|
||||
Date: Fri, 11 Jul 2014 01:31:43 -0500
|
||||
Subject: [PATCH] Don't tick chests
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/TileEntityChest.java b/src/main/java/net/minecraft/server/TileEntityChest.java
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
--- a/src/main/java/net/minecraft/server/TileEntityChest.java
|
||||
+++ b/src/main/java/net/minecraft/server/TileEntityChest.java
|
||||
@@ -0,0 +0,0 @@ public class TileEntityChest extends TileEntity implements IInventory {
|
||||
}
|
||||
|
||||
public void h() {
|
||||
+ // PaperSpigot start - Don't tick chests at all, period
|
||||
+ /*
|
||||
super.h();
|
||||
if (this.world == null) return; // CraftBukkit
|
||||
this.i();
|
||||
@@ -0,0 +0,0 @@ public class TileEntityChest extends TileEntity implements IInventory {
|
||||
this.m = 0.0F;
|
||||
}
|
||||
}
|
||||
+ */
|
||||
}
|
||||
|
||||
public boolean c(int i, int j) {
|
||||
@@ -0,0 +0,0 @@ public class TileEntityChest extends TileEntity implements IInventory {
|
||||
if (this.world == null) return; // CraftBukkit
|
||||
this.world.playBlockAction(this.x, this.y, this.z, this.q(), 1, this.o);
|
||||
|
||||
+ // PaperSpigot start - Move chest open sound handling down here
|
||||
+ this.i();
|
||||
+ double d0;
|
||||
+
|
||||
+ if (this.o > 0 && this.m == 0.0F && this.i == null && this.k == null) {
|
||||
+ double d1 = (double) this.x + 0.5D;
|
||||
+
|
||||
+ d0 = (double) this.z + 0.5D;
|
||||
+ if (this.l != null) {
|
||||
+ d0 += 0.5D;
|
||||
+ }
|
||||
+
|
||||
+ if (this.j != null) {
|
||||
+ d1 += 0.5D;
|
||||
+ }
|
||||
+
|
||||
+ this.world.makeSound(d1, (double) this.y + 0.5D, d0, "random.chestopen", 0.5F, this.world.random.nextFloat() * 0.1F + 0.9F);
|
||||
+ }
|
||||
+ // PaperSpigot end
|
||||
+
|
||||
// CraftBukkit start - Call redstone event
|
||||
if (this.q() == Blocks.TRAPPED_CHEST) {
|
||||
int newPower = Math.max(0, Math.min(15, this.o));
|
||||
@@ -0,0 +0,0 @@ public class TileEntityChest extends TileEntity implements IInventory {
|
||||
if (this.world == null) return; // CraftBukkit
|
||||
this.world.playBlockAction(this.x, this.y, this.z, this.q(), 1, this.o);
|
||||
|
||||
+ // PaperSpigot start - Move chest close sound handling down here
|
||||
+ this.i();
|
||||
+ double d0;
|
||||
+
|
||||
+ if (this.o == 0 && this.i == null && this.k == null) {
|
||||
+ d0 = (double) this.x + 0.5D;
|
||||
+ double d2 = (double) this.z + 0.5D;
|
||||
+
|
||||
+ if (this.l != null) {
|
||||
+ d2 += 0.5D;
|
||||
+ }
|
||||
+
|
||||
+ if (this.j != null) {
|
||||
+ d0 += 0.5D;
|
||||
+ }
|
||||
+
|
||||
+ this.world.makeSound(d0, (double) this.y + 0.5D, d2, "random.chestclosed", 0.5F, this.world.random.nextFloat() * 0.1F + 0.9F);
|
||||
+ }
|
||||
+ // PaperSpigot end
|
||||
+
|
||||
// CraftBukkit start - Call redstone event
|
||||
if (this.q() == Blocks.TRAPPED_CHEST) {
|
||||
int newPower = Math.max(0, Math.min(15, this.o));
|
||||
--
|
||||
19
Spigot-Server-Patches/Fix-Null-Tile-Entity-Worlds.patch
Normal file
19
Spigot-Server-Patches/Fix-Null-Tile-Entity-Worlds.patch
Normal file
@@ -0,0 +1,19 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: "Evan A. Haskell" <eah2119@gmail.com>
|
||||
Date: Thu, 26 Jun 2014 18:37:29 -0400
|
||||
Subject: [PATCH] Fix Null Tile Entity Worlds
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
--- a/src/main/java/net/minecraft/server/World.java
|
||||
+++ b/src/main/java/net/minecraft/server/World.java
|
||||
@@ -0,0 +0,0 @@ public abstract class World implements IBlockAccess {
|
||||
}
|
||||
}
|
||||
|
||||
+ tileentity.a(this); // PaperSpigot - No null worlds
|
||||
this.a.add(tileentity);
|
||||
} else {
|
||||
this.tileEntityList.add(tileentity);
|
||||
--
|
||||
26
Spigot-Server-Patches/Fix-directional-TNT-bias.patch
Normal file
26
Spigot-Server-Patches/Fix-directional-TNT-bias.patch
Normal file
@@ -0,0 +1,26 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Zach Brown <1254957+zachbr@users.noreply.github.com>
|
||||
Date: Fri, 11 Jul 2014 03:54:06 -0500
|
||||
Subject: [PATCH] Fix directional TNT bias
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityTNTPrimed.java b/src/main/java/net/minecraft/server/EntityTNTPrimed.java
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityTNTPrimed.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityTNTPrimed.java
|
||||
@@ -0,0 +0,0 @@ public class EntityTNTPrimed extends Entity {
|
||||
public EntityTNTPrimed(World world, double d0, double d1, double d2, EntityLiving entityliving) {
|
||||
this(world);
|
||||
this.setPosition(d0, d1, d2);
|
||||
- float f = (float) (Math.random() * 3.1415927410125732D * 2.0D);
|
||||
+ //float f = (float) (Math.random() * 3.1415927410125732D * 2.0D); // PaperSpigot - Fix directional TNT bias
|
||||
|
||||
- this.motX = (double) (-((float) Math.sin((double) f)) * 0.02F);
|
||||
+ this.motX = 0; // PaperSpigot - Fix directional TNT bias //(double) (-((float) Math.sin((double) f)) * 0.02F);
|
||||
this.motY = 0.20000000298023224D;
|
||||
- this.motZ = (double) (-((float) Math.cos((double) f)) * 0.02F);
|
||||
+ this.motZ = 0; // PaperSpigot - Fix directional TNT bias //(double) (-((float) Math.cos((double) f)) * 0.02F);
|
||||
this.fuseTicks = 80;
|
||||
this.lastX = d0;
|
||||
this.lastY = d1;
|
||||
--
|
||||
32
Spigot-Server-Patches/Fix-redstone-lag-issues.patch
Normal file
32
Spigot-Server-Patches/Fix-redstone-lag-issues.patch
Normal file
@@ -0,0 +1,32 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Iceee <andrew@opticgaming.tv>
|
||||
Date: Thu, 12 Jun 2014 13:37:35 -0500
|
||||
Subject: [PATCH] Fix redstone lag issues
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
--- a/src/main/java/net/minecraft/server/WorldServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/WorldServer.java
|
||||
@@ -0,0 +0,0 @@ public class WorldServer extends World {
|
||||
if (i != this.M.size()) {
|
||||
throw new IllegalStateException("TickNextTick list out of synch");
|
||||
} else {
|
||||
+ /* PaperSpigot start - Fix redstone lag issues
|
||||
if (i > 1000) {
|
||||
// CraftBukkit start - If the server has too much to process over time, try to alleviate that
|
||||
if (i > 20 * 1000) {
|
||||
@@ -0,0 +0,0 @@ public class WorldServer extends World {
|
||||
i = 1000;
|
||||
}
|
||||
// CraftBukkit end
|
||||
+ } */
|
||||
+
|
||||
+ if (i > 10000) {
|
||||
+ i = 10000;
|
||||
}
|
||||
+ // PaperSpigot end
|
||||
|
||||
this.methodProfiler.a("cleaning");
|
||||
|
||||
--
|
||||
@@ -0,0 +1,47 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Zach Brown <1254957+zachbr@users.noreply.github.com>
|
||||
Date: Tue, 24 Jun 2014 22:55:30 -0500
|
||||
Subject: [PATCH] Fix zombie sieges and their spawn mechanics
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/VillageSiege.java b/src/main/java/net/minecraft/server/VillageSiege.java
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
--- a/src/main/java/net/minecraft/server/VillageSiege.java
|
||||
+++ b/src/main/java/net/minecraft/server/VillageSiege.java
|
||||
@@ -0,0 +0,0 @@ public class VillageSiege {
|
||||
return;
|
||||
}
|
||||
}
|
||||
+
|
||||
+ // PaperSpigot start - Siege manager initial state is -1
|
||||
+ if (this.c == -1) {
|
||||
+ return;
|
||||
+ }
|
||||
+ // PaperSpigot end
|
||||
}
|
||||
|
||||
if (!this.b) {
|
||||
@@ -0,0 +0,0 @@ public class VillageSiege {
|
||||
|
||||
while (true) {
|
||||
if (i < 10) {
|
||||
- this.g = chunkcoordinates.x + (int) ((double) (MathHelper.cos(this.world.random.nextFloat() * 3.1415927F * 2.0F) * f) * 0.9D);
|
||||
+ // PaperSpigot start - Zombies should spawn near the perimeter of the village not in the center of it
|
||||
+ float angle = this.world.random.nextFloat() * (float) Math.PI * 2.0F;
|
||||
+ this.g = chunkcoordinates.x + (int) ((double) (MathHelper.cos(angle) * f) * 0.9D);
|
||||
this.h = chunkcoordinates.y;
|
||||
- this.i = chunkcoordinates.z + (int) ((double) (MathHelper.sin(this.world.random.nextFloat() * 3.1415927F * 2.0F) * f) * 0.9D);
|
||||
+ this.i = chunkcoordinates.z + (int) ((double) (MathHelper.sin(angle) * f) * 0.9D);
|
||||
+ // PaperSpigot end
|
||||
flag = false;
|
||||
Iterator iterator1 = this.world.villages.getVillages().iterator();
|
||||
|
||||
@@ -0,0 +0,0 @@ public class VillageSiege {
|
||||
// CraftBukkit - add Return
|
||||
return Vec3D.a((double) i1, (double) j1, (double) k1);
|
||||
}
|
||||
+
|
||||
}
|
||||
|
||||
return null;
|
||||
--
|
||||
@@ -0,0 +1,69 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: gsand <gsandowns@gmail.com>
|
||||
Date: Sun, 6 Jul 2014 02:46:20 -0500
|
||||
Subject: [PATCH] Inverted Daylight Detector Toggle
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/BlockDaylightDetector.java b/src/main/java/net/minecraft/server/BlockDaylightDetector.java
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
--- a/src/main/java/net/minecraft/server/BlockDaylightDetector.java
|
||||
+++ b/src/main/java/net/minecraft/server/BlockDaylightDetector.java
|
||||
@@ -0,0 +0,0 @@
|
||||
package net.minecraft.server;
|
||||
|
||||
+import org.github.paperspigot.PaperSpigotWorldConfig; // PaperSpigot
|
||||
+
|
||||
import java.util.Random;
|
||||
|
||||
public class BlockDaylightDetector extends BlockContainer {
|
||||
@@ -0,0 +0,0 @@ public class BlockDaylightDetector extends BlockContainer {
|
||||
f += (6.2831855F - f) * 0.2F;
|
||||
}
|
||||
|
||||
- i1 = Math.round((float) i1 * MathHelper.cos(f));
|
||||
- if (i1 < 0) {
|
||||
- i1 = 0;
|
||||
- }
|
||||
+ // PaperSpigot start - Inverted Daylight Detectors
|
||||
+ if (PaperSpigotWorldConfig.InvertedDaylightDetectors) {
|
||||
+ i1 = Math.round((float) i1 * MathHelper.cos(f) * -1 + 15);
|
||||
+ if (i1 < 10) {
|
||||
+ i1 = 0;
|
||||
+ }
|
||||
|
||||
- if (i1 > 15) {
|
||||
- i1 = 15;
|
||||
+ if (i1 > 9) {
|
||||
+ i1 = 15;
|
||||
+ }
|
||||
+ } else {
|
||||
+ i1 = Math.round((float) i1 * MathHelper.cos(f));
|
||||
+ if (i1 < 0) {
|
||||
+ i1 = 0;
|
||||
+ }
|
||||
+
|
||||
+ if (i1 > 15) {
|
||||
+ i1 = 15;
|
||||
+ }
|
||||
}
|
||||
+ // PaperSpigot end
|
||||
|
||||
if (l != i1) {
|
||||
i1 = org.bukkit.craftbukkit.event.CraftEventFactory.callRedstoneChange(world, i, j, k, l, i1).getNewCurrent(); // CraftBukkit - Call BlockRedstoneEvent
|
||||
diff --git a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
--- a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
|
||||
+++ b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
|
||||
@@ -0,0 +0,0 @@ public class PaperSpigotWorldConfig
|
||||
{
|
||||
babyZombieMovementSpeed = getDouble( "baby-zombie-movement-speed", 0.5D );
|
||||
}
|
||||
+
|
||||
+ public static boolean InvertedDaylightDetectors;
|
||||
+ private void InvertedDaylightDetectors()
|
||||
+ {
|
||||
+ InvertedDaylightDetectors = getBoolean( "inverted-daylight-detectors", false );
|
||||
+ log( "Inverted Redstone Lamps: " + InvertedDaylightDetectors );
|
||||
+ }
|
||||
}
|
||||
--
|
||||
@@ -0,0 +1,64 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Zach Brown <1254957+zachbr@users.noreply.github.com>
|
||||
Date: Sun, 18 May 2014 16:35:38 -0500
|
||||
Subject: [PATCH] Invisible players don't have rights
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityArrow.java b/src/main/java/net/minecraft/server/EntityArrow.java
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityArrow.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityArrow.java
|
||||
@@ -0,0 +0,0 @@ package net.minecraft.server;
|
||||
import java.util.List;
|
||||
|
||||
// CraftBukkit start
|
||||
+import org.bukkit.craftbukkit.entity.CraftPlayer; // PaperSpigot
|
||||
import org.bukkit.entity.LivingEntity;
|
||||
import org.bukkit.event.entity.EntityCombustByEntityEvent;
|
||||
import org.bukkit.event.player.PlayerPickupItemEvent;
|
||||
@@ -0,0 +0,0 @@ public class EntityArrow extends Entity implements IProjectile {
|
||||
float f2;
|
||||
float f3;
|
||||
|
||||
+ // PaperSpigot start - Allow projectiles and arrows to pass through players the shooter can't see
|
||||
+ if(movingobjectposition != null && movingobjectposition.entity instanceof EntityPlayer && shooter != null && shooter instanceof EntityPlayer) {
|
||||
+ CraftPlayer playerBlocking = ((EntityPlayer) movingobjectposition.entity).getBukkitEntity();
|
||||
+ CraftPlayer playerShooter = ((EntityPlayer)shooter).getBukkitEntity();
|
||||
+ if(!playerShooter.canSee(playerBlocking)) {
|
||||
+ movingobjectposition = null;
|
||||
+ }
|
||||
+ }
|
||||
+ // PaperSpigot end
|
||||
+
|
||||
if (movingobjectposition != null) {
|
||||
org.bukkit.craftbukkit.event.CraftEventFactory.callProjectileHitEvent(this); // CraftBukkit - Call event
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
--- a/src/main/java/net/minecraft/server/World.java
|
||||
+++ b/src/main/java/net/minecraft/server/World.java
|
||||
@@ -0,0 +0,0 @@ import java.util.concurrent.Callable;
|
||||
// CraftBukkit start
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.block.BlockState;
|
||||
+import org.bukkit.craftbukkit.entity.CraftPlayer; // PaperSpigot
|
||||
import org.bukkit.craftbukkit.util.CraftMagicNumbers;
|
||||
import org.bukkit.craftbukkit.util.LongHashSet;
|
||||
import org.bukkit.craftbukkit.SpigotTimings; // Spigot
|
||||
@@ -0,0 +0,0 @@ public abstract class World implements IBlockAccess {
|
||||
|
||||
for (int i = 0; i < list.size(); ++i) {
|
||||
Entity entity1 = (Entity) list.get(i);
|
||||
+ // PaperSpigot start - Allow block placement when the player can't see an invisible player
|
||||
+ if (entity != null && entity instanceof EntityPlayer && entity1 != null && entity1 instanceof EntityPlayer) {
|
||||
+ CraftPlayer placer = ((EntityPlayer)entity).getBukkitEntity();
|
||||
+ CraftPlayer blocking = ((EntityPlayer)entity1).getBukkitEntity();
|
||||
+ if(!placer.canSee(blocking)) {
|
||||
+ continue;
|
||||
+ }
|
||||
+ }
|
||||
+ // PaperSpigot end
|
||||
|
||||
if (!entity1.dead && entity1.k && entity1 != entity) {
|
||||
return false;
|
||||
--
|
||||
@@ -0,0 +1,61 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Zach Brown <1254957+zachbr@users.noreply.github.com>
|
||||
Date: Fri, 30 May 2014 19:42:50 -0500
|
||||
Subject: [PATCH] Make destroyed boats drop the boat item
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityBoat.java b/src/main/java/net/minecraft/server/EntityBoat.java
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityBoat.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityBoat.java
|
||||
@@ -0,0 +0,0 @@ public class EntityBoat extends Entity {
|
||||
if (!destroyEvent.isCancelled()) {
|
||||
this.die();
|
||||
|
||||
- for (k = 0; k < 3; ++k) {
|
||||
- this.a(Item.getItemOf(Blocks.WOOD), 1, 0.0F);
|
||||
- }
|
||||
+ // PaperSpigot start - Boats should drop boats!!!11
|
||||
+ //for (k = 0; k < 3; ++k) {
|
||||
+ // this.a(Item.getItemOf(Blocks.WOOD), 1, 0.0F);
|
||||
+ //}
|
||||
+
|
||||
+ //for (k = 0; k < 2; ++k) {
|
||||
+ // this.a(Items.STICK, 1, 0.0F);
|
||||
+ //}
|
||||
|
||||
- for (k = 0; k < 2; ++k) {
|
||||
- this.a(Items.STICK, 1, 0.0F);
|
||||
+ for (k = 0; k < 1; ++k) {
|
||||
+ this.a(Items.BOAT, 1, 0.0F);
|
||||
}
|
||||
+ // PaperSpigot end
|
||||
}
|
||||
// CraftBukkit end
|
||||
}
|
||||
@@ -0,0 +0,0 @@ public class EntityBoat extends Entity {
|
||||
|
||||
int l;
|
||||
|
||||
- for (l = 0; l < 3; ++l) {
|
||||
- this.a(Item.getItemOf(Blocks.WOOD), 1, 0.0F);
|
||||
- }
|
||||
+ // PaperSpigot start - Boats should drop boats!!!11
|
||||
+ //for (l = 0; l < 3; ++l) {
|
||||
+ // this.a(Item.getItemOf(Blocks.WOOD), 1, 0.0F);
|
||||
+ //}
|
||||
+
|
||||
+ //for (l = 0; l < 2; ++l) {
|
||||
+ // this.a(Items.STICK, 1, 0.0F);
|
||||
+ //}
|
||||
|
||||
- for (l = 0; l < 2; ++l) {
|
||||
- this.a(Items.STICK, 1, 0.0F);
|
||||
+ for (l = 0; l < 1; ++l) {
|
||||
+ this.a(Items.BOAT, 1, 0.0F);
|
||||
}
|
||||
+ // PaperSpigot end
|
||||
}
|
||||
// CraftBukkit end
|
||||
}
|
||||
--
|
||||
59
Spigot-Server-Patches/POM-changes.patch
Normal file
59
Spigot-Server-Patches/POM-changes.patch
Normal file
@@ -0,0 +1,59 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Zach Brown <1254957+zachbr@users.noreply.github.com>
|
||||
Date: Mon, 21 Jul 2014 15:36:01 -0500
|
||||
Subject: [PATCH] POM changes
|
||||
|
||||
|
||||
diff --git a/pom.xml b/pom.xml
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
--- a/pom.xml
|
||||
+++ b/pom.xml
|
||||
@@ -0,0 +0,0 @@
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
- <groupId>org.spigotmc</groupId>
|
||||
- <artifactId>spigot</artifactId>
|
||||
+ <groupId>org.github.paperspigot</groupId>
|
||||
+ <artifactId>paperspigot</artifactId>
|
||||
<packaging>jar</packaging>
|
||||
<version>1.7.10-R0.1-SNAPSHOT</version>
|
||||
- <name>Spigot</name>
|
||||
- <url>http://www.spigotmc.org</url>
|
||||
+ <name>PaperSpigot</name>
|
||||
+ <url>https://github.com/PaperSpigot/Spigot</url>
|
||||
|
||||
<properties>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
@@ -0,0 +0,0 @@
|
||||
</properties>
|
||||
|
||||
<parent>
|
||||
- <groupId>org.spigotmc</groupId>
|
||||
- <artifactId>spigot-parent</artifactId>
|
||||
+ <groupId>org.github.paperspigot</groupId>
|
||||
+ <artifactId>paperspigot-parent</artifactId>
|
||||
<version>dev-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
@@ -0,0 +0,0 @@
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
- <groupId>org.spigotmc</groupId>
|
||||
- <artifactId>spigot-api</artifactId>
|
||||
+ <groupId>org.github.paperspigot</groupId>
|
||||
+ <artifactId>paperspigot-api</artifactId>
|
||||
<version>${project.version}</version>
|
||||
<type>jar</type>
|
||||
<scope>compile</scope>
|
||||
@@ -0,0 +0,0 @@
|
||||
<artifactId>gitdescribe-maven-plugin</artifactId>
|
||||
<version>1.3</version>
|
||||
<configuration>
|
||||
- <outputPrefix>git-Spigot-</outputPrefix>
|
||||
+ <outputPrefix>git-PaperSpigot-</outputPrefix>
|
||||
<outputPostfix></outputPostfix>
|
||||
</configuration>
|
||||
<executions>
|
||||
--
|
||||
292
Spigot-Server-Patches/PaperSpigot-config-files.patch
Normal file
292
Spigot-Server-Patches/PaperSpigot-config-files.patch
Normal file
@@ -0,0 +1,292 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Zach Brown <1254957+zachbr@users.noreply.github.com>
|
||||
Date: Sat, 12 Jul 2014 19:32:01 -0500
|
||||
Subject: [PATCH] PaperSpigot config files
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/DedicatedServer.java b/src/main/java/net/minecraft/server/DedicatedServer.java
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
--- a/src/main/java/net/minecraft/server/DedicatedServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/DedicatedServer.java
|
||||
@@ -0,0 +0,0 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
|
||||
org.spigotmc.SpigotConfig.init();
|
||||
org.spigotmc.SpigotConfig.registerCommands();
|
||||
// Spigot end
|
||||
+ // PaperSpigot start
|
||||
+ org.github.paperspigot.PaperSpigotConfig.init();
|
||||
+ org.github.paperspigot.PaperSpigotConfig.registerCommands();
|
||||
+ // PaperSpigot stop
|
||||
|
||||
i.info("Generating keypair");
|
||||
this.a(MinecraftEncryption.b());
|
||||
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
--- a/src/main/java/net/minecraft/server/World.java
|
||||
+++ b/src/main/java/net/minecraft/server/World.java
|
||||
@@ -0,0 +0,0 @@ public abstract class World implements IBlockAccess {
|
||||
public boolean keepSpawnInMemory = true;
|
||||
public ChunkGenerator generator;
|
||||
public final org.spigotmc.SpigotWorldConfig spigotConfig; // Spigot
|
||||
+ public final org.github.paperspigot.PaperSpigotWorldConfig paperSpigotConfig; // PaperSpigot
|
||||
|
||||
public final SpigotTimings.WorldTimingsHandler timings; // Spigot
|
||||
|
||||
@@ -0,0 +0,0 @@ public abstract class World implements IBlockAccess {
|
||||
// Changed signature - added gen and env
|
||||
public World(IDataManager idatamanager, String s, WorldSettings worldsettings, WorldProvider worldprovider, MethodProfiler methodprofiler, ChunkGenerator gen, org.bukkit.World.Environment env) {
|
||||
this.spigotConfig = new org.spigotmc.SpigotWorldConfig( s ); // Spigot
|
||||
+ this.paperSpigotConfig = new org.github.paperspigot.PaperSpigotWorldConfig( s ); // PaperSpigot
|
||||
this.generator = gen;
|
||||
this.world = new CraftWorld((WorldServer) this, gen, env);
|
||||
this.ticksPerAnimalSpawns = this.getServer().getTicksPerAnimalSpawns(); // CraftBukkit
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
@@ -0,0 +0,0 @@ public final class CraftServer implements Server {
|
||||
}
|
||||
|
||||
org.spigotmc.SpigotConfig.init(); // Spigot
|
||||
+ org.github.paperspigot.PaperSpigotConfig.init(); // PaperSpigot
|
||||
for (WorldServer world : console.worlds) {
|
||||
world.difficulty = difficulty;
|
||||
world.setSpawnFlags(monsters, animals);
|
||||
@@ -0,0 +0,0 @@ public final class CraftServer implements Server {
|
||||
world.ticksPerMonsterSpawns = this.getTicksPerMonsterSpawns();
|
||||
}
|
||||
world.spigotConfig.init(); // Spigot
|
||||
+ world.paperSpigotConfig.init(); // PaperSpigot
|
||||
}
|
||||
|
||||
pluginManager.clearPlugins();
|
||||
commandMap.clearCommands();
|
||||
resetRecipes();
|
||||
org.spigotmc.SpigotConfig.registerCommands(); // Spigot
|
||||
+ org.github.paperspigot.PaperSpigotConfig.registerCommands(); // PaperSpigot
|
||||
|
||||
overrideAllCommandBlockCommands = commandsConfiguration.getStringList("command-block-overrides").contains("*");
|
||||
|
||||
diff --git a/src/main/java/org/github/paperspigot/PaperSpigotConfig.java b/src/main/java/org/github/paperspigot/PaperSpigotConfig.java
|
||||
new file mode 100644
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
|
||||
--- /dev/null
|
||||
+++ b/src/main/java/org/github/paperspigot/PaperSpigotConfig.java
|
||||
@@ -0,0 +0,0 @@
|
||||
+package org.github.paperspigot;
|
||||
+
|
||||
+import com.google.common.base.Throwables;
|
||||
+import java.io.File;
|
||||
+import java.io.IOException;
|
||||
+import java.lang.reflect.InvocationTargetException;
|
||||
+import java.lang.reflect.Method;
|
||||
+import java.lang.reflect.Modifier;
|
||||
+import java.util.HashMap;
|
||||
+import java.util.List;
|
||||
+import java.util.Map;
|
||||
+import java.util.logging.Level;
|
||||
+import net.minecraft.server.MinecraftServer;
|
||||
+import org.bukkit.Bukkit;
|
||||
+import org.bukkit.command.Command;
|
||||
+import org.bukkit.configuration.InvalidConfigurationException;
|
||||
+import org.bukkit.configuration.file.YamlConfiguration;
|
||||
+
|
||||
+public class PaperSpigotConfig
|
||||
+{
|
||||
+
|
||||
+ private static final File CONFIG_FILE = new File( "paper.yml" );
|
||||
+ private static final String HEADER = "This is the main configuration file for PaperSpigot.\n"
|
||||
+ + "As you can see, there's tons to configure. Some options may impact gameplay, so use\n"
|
||||
+ + "with caution, and make sure you know what each option does before configuring.\n"
|
||||
+ + "\n"
|
||||
+ + "If you need help with the configuration or have any questions related to PaperSpigot,\n"
|
||||
+ + "join us at the IRC.\n"
|
||||
+ + "\n"
|
||||
+ + "IRC: #paperspigot @ irc.spi.gt ( http://irc.spi.gt/iris/?channels=PaperSpigot )\n";
|
||||
+ /*========================================================================*/
|
||||
+ static YamlConfiguration config;
|
||||
+ static int version;
|
||||
+ static Map<String, Command> commands;
|
||||
+ /*========================================================================*/
|
||||
+
|
||||
+ public static void init()
|
||||
+ {
|
||||
+ config = new YamlConfiguration();
|
||||
+ try
|
||||
+ {
|
||||
+ config.load ( CONFIG_FILE );
|
||||
+ } catch ( IOException ex )
|
||||
+ {
|
||||
+ } catch ( InvalidConfigurationException ex )
|
||||
+ {
|
||||
+ Bukkit.getLogger().log( Level.SEVERE, "Could not load paper.yml, please correct your syntax errors", ex );
|
||||
+ throw Throwables.propagate( ex );
|
||||
+ }
|
||||
+ config.options().header( HEADER );
|
||||
+ config.options().copyDefaults( true );
|
||||
+
|
||||
+ commands = new HashMap<String, Command>();
|
||||
+
|
||||
+ version = getInt( "config-version", 6 );
|
||||
+ set( "config-version", 6 );
|
||||
+ readConfig( PaperSpigotConfig.class, null );
|
||||
+ }
|
||||
+
|
||||
+ public static void registerCommands()
|
||||
+ {
|
||||
+ for ( Map.Entry<String, Command> entry : commands.entrySet() )
|
||||
+ {
|
||||
+ MinecraftServer.getServer().server.getCommandMap().register( entry.getKey(), "PaperSpigot", entry.getValue() );
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ static void readConfig(Class<?> clazz, Object instance)
|
||||
+ {
|
||||
+ for ( Method method : clazz.getDeclaredMethods() )
|
||||
+ {
|
||||
+ if ( Modifier.isPrivate( method.getModifiers() ) )
|
||||
+ {
|
||||
+ if ( method.getParameterTypes().length == 0 && method.getReturnType() == Void.TYPE )
|
||||
+ {
|
||||
+ try
|
||||
+ {
|
||||
+ method.setAccessible( true );
|
||||
+ method.invoke( instance );
|
||||
+ } catch ( InvocationTargetException ex )
|
||||
+ {
|
||||
+ throw Throwables.propagate( ex.getCause() );
|
||||
+ } catch ( Exception ex )
|
||||
+ {
|
||||
+ Bukkit.getLogger().log( Level.SEVERE, "Error invoking " + method, ex );
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ try
|
||||
+ {
|
||||
+ config.save( CONFIG_FILE );
|
||||
+ } catch ( IOException ex )
|
||||
+ {
|
||||
+ Bukkit.getLogger().log( Level.SEVERE, "Could not save " + CONFIG_FILE, ex );
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ private static void set(String path, Object val)
|
||||
+ {
|
||||
+ config.set( path, val );
|
||||
+ }
|
||||
+
|
||||
+ private static boolean getBoolean(String path, boolean def)
|
||||
+ {
|
||||
+ config.addDefault( path, def );
|
||||
+ return config.getBoolean( path, config.getBoolean( path ) );
|
||||
+ }
|
||||
+
|
||||
+ private static float getFloat(String path, int def)
|
||||
+ {
|
||||
+ config.addDefault( path, def );
|
||||
+ return config.getFloat( path, config.getFloat( path ) );
|
||||
+ }
|
||||
+
|
||||
+ private static int getInt(String path, int def)
|
||||
+ {
|
||||
+ config.addDefault( path, def );
|
||||
+ return config.getInt( path, config.getInt( path ) );
|
||||
+ }
|
||||
+
|
||||
+ private static <T> List getList(String path, T def)
|
||||
+ {
|
||||
+ config.addDefault( path, def );
|
||||
+ return (List<T>) config.getList( path, config.getList( path ) );
|
||||
+ }
|
||||
+
|
||||
+ private static String getString(String path, String def)
|
||||
+ {
|
||||
+ config.addDefault( path, def );
|
||||
+ return config.getString( path, config.getString( path ) );
|
||||
+ }
|
||||
+}
|
||||
diff --git a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
|
||||
new file mode 100644
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
|
||||
--- /dev/null
|
||||
+++ b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
|
||||
@@ -0,0 +0,0 @@
|
||||
+package org.github.paperspigot;
|
||||
+
|
||||
+import java.util.List;
|
||||
+import org.bukkit.Bukkit;
|
||||
+import org.bukkit.configuration.file.YamlConfiguration;
|
||||
+
|
||||
+public class PaperSpigotWorldConfig
|
||||
+{
|
||||
+
|
||||
+ private final String worldName;
|
||||
+ private final YamlConfiguration config;
|
||||
+ private boolean verbose;
|
||||
+
|
||||
+ public PaperSpigotWorldConfig(String worldName)
|
||||
+ {
|
||||
+ this.worldName = worldName;
|
||||
+ this.config = PaperSpigotConfig.config;
|
||||
+ init();
|
||||
+ }
|
||||
+
|
||||
+ public void init()
|
||||
+ {
|
||||
+ this.verbose = getBoolean( "verbose", true );
|
||||
+
|
||||
+ log( "-------- World Settings For [" + worldName + "] --------" );
|
||||
+ PaperSpigotConfig.readConfig( PaperSpigotWorldConfig.class, this );
|
||||
+ }
|
||||
+
|
||||
+ private void log(String s)
|
||||
+ {
|
||||
+ if ( verbose )
|
||||
+ {
|
||||
+ Bukkit.getLogger().info( s );
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ private void set(String path, Object val)
|
||||
+ {
|
||||
+ config.set( "world-settings.default." + path, val );
|
||||
+ }
|
||||
+
|
||||
+ private boolean getBoolean(String path, boolean def)
|
||||
+ {
|
||||
+ config.addDefault( "world-settings.default." + path, def );
|
||||
+ return config.getBoolean( "world-settings." + worldName + "." + path, config.getBoolean( "world-settings.default." + path ) );
|
||||
+ }
|
||||
+
|
||||
+ private double getDouble(String path, double def)
|
||||
+ {
|
||||
+ config.addDefault( "world-settings.default." + path, def );
|
||||
+ return config.getDouble( "world-settings." + worldName + "." + path, config.getDouble( "world-settings.default." + path ) );
|
||||
+ }
|
||||
+
|
||||
+ private int getInt(String path, int def)
|
||||
+ {
|
||||
+ config.addDefault( "world-settings.default." + path, def );
|
||||
+ return config.getInt( "world-settings." + worldName + "." + path, config.getInt( "world-settings.default." + path ) );
|
||||
+ }
|
||||
+
|
||||
+ private float getFloat(String path, float def)
|
||||
+ {
|
||||
+ config.addDefault( "world-settings.default." + path, def );
|
||||
+ return config.getFloat( "world-settings." + worldName + "." + path, config.getFloat( "world-settings.default." + path ) );
|
||||
+ }
|
||||
+
|
||||
+ private <T> List getList(String path, T def)
|
||||
+ {
|
||||
+ config.addDefault( "world-settings.default." + path, def );
|
||||
+ return (List<T>) config.getList( "world-settings." + worldName + "." + path, config.getList( "world-settings.default." + path ) );
|
||||
+ }
|
||||
+
|
||||
+ private String getString(String path, String def)
|
||||
+ {
|
||||
+ config.addDefault( "world-settings.default." + path, def );
|
||||
+ return config.getString( "world-settings." + worldName + "." + path, config.getString( "world-settings.default." + path ) );
|
||||
+ }
|
||||
+}
|
||||
--
|
||||
132
Spigot-Server-Patches/Player-Exhaustion-Multipliers.patch
Normal file
132
Spigot-Server-Patches/Player-Exhaustion-Multipliers.patch
Normal file
@@ -0,0 +1,132 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: gsand <gsandowns@gmail.com>
|
||||
Date: Tue, 8 Jul 2014 21:41:43 -0500
|
||||
Subject: [PATCH] Player Exhaustion Multipliers
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/Block.java b/src/main/java/net/minecraft/server/Block.java
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
--- a/src/main/java/net/minecraft/server/Block.java
|
||||
+++ b/src/main/java/net/minecraft/server/Block.java
|
||||
@@ -0,0 +0,0 @@ import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
|
||||
+import org.github.paperspigot.PaperSpigotWorldConfig; // PaperSpigot
|
||||
+
|
||||
public class Block {
|
||||
|
||||
public static final RegistryMaterials REGISTRY = new RegistryBlocks("air");
|
||||
@@ -0,0 +0,0 @@ public class Block {
|
||||
|
||||
public void a(World world, EntityHuman entityhuman, int i, int j, int k, int l) {
|
||||
entityhuman.a(StatisticList.MINE_BLOCK_COUNT[getId(this)], 1);
|
||||
- entityhuman.applyExhaustion(0.025F);
|
||||
+ entityhuman.a( PaperSpigotWorldConfig.playerExhaustionBlockBreak ); // PaperSpigot - Configurable block breaking exhaustion
|
||||
if (this.E() && EnchantmentManager.hasSilkTouchEnchantment(entityhuman)) {
|
||||
ItemStack itemstack = this.j(l);
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityHuman.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityHuman.java
|
||||
@@ -0,0 +0,0 @@ public abstract class EntityHuman extends EntityLiving implements ICommandListen
|
||||
}
|
||||
}
|
||||
|
||||
- this.applyExhaustion(0.3F);
|
||||
+ this.a( PaperSpigotWorldConfig.playerExhaustionAttack ); // PaperSpigot - Configurable attack exhaustion
|
||||
} else if (flag1) {
|
||||
entity.extinguish();
|
||||
}
|
||||
@@ -0,0 +0,0 @@ public abstract class EntityHuman extends EntityLiving implements ICommandListen
|
||||
super.bj();
|
||||
this.a(StatisticList.r, 1);
|
||||
if (this.isSprinting()) {
|
||||
- this.applyExhaustion(0.8F);
|
||||
+ this.a( PaperSpigotWorldConfig.playerExhaustionSprintJumping ); // PaperSpigot - Configurable sprint jumping exhaustion
|
||||
} else {
|
||||
- this.applyExhaustion(0.2F);
|
||||
+ this.a( PaperSpigotWorldConfig.playerExhaustionJumping ); // PaperSpigot - Configurable jumping exhaustion
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +0,0 @@ public abstract class EntityHuman extends EntityLiving implements ICommandListen
|
||||
i = Math.round(MathHelper.sqrt(d0 * d0 + d1 * d1 + d2 * d2) * 100.0F);
|
||||
if (i > 0) {
|
||||
this.a(StatisticList.m, i);
|
||||
- this.applyExhaustion(0.015F * (float) i * 0.01F);
|
||||
+ this.a( PaperSpigotWorldConfig.playerExhaustionSwimming * (float) i * 0.01F); // PaperSpigot - Configurable swimming exhaustion
|
||||
}
|
||||
} else if (this.M()) {
|
||||
i = Math.round(MathHelper.sqrt(d0 * d0 + d2 * d2) * 100.0F);
|
||||
if (i > 0) {
|
||||
this.a(StatisticList.i, i);
|
||||
- this.applyExhaustion(0.015F * (float) i * 0.01F);
|
||||
+ this.a( PaperSpigotWorldConfig.playerExhaustionSwimming * (float) i * 0.01F); // PaperSpigot - Configurable swimming (diving) exhaustion
|
||||
}
|
||||
} else if (this.h_()) {
|
||||
if (d1 > 0.0D) {
|
||||
@@ -0,0 +0,0 @@ public abstract class EntityHuman extends EntityLiving implements ICommandListen
|
||||
if (i > 0) {
|
||||
this.a(StatisticList.h, i);
|
||||
if (this.isSprinting()) {
|
||||
- this.applyExhaustion(0.099999994F * (float) i * 0.01F);
|
||||
+ this.a( PaperSpigotWorldConfig.playerExhaustionSprinting * (float) i * 0.01F); // PaperSpigot - Configurable sprinting exhaustion
|
||||
} else {
|
||||
- this.applyExhaustion(0.01F * (float) i * 0.01F);
|
||||
+ this.a( PaperSpigotWorldConfig.playerExhaustionWalking * (float) i * 0.01F); // PaperSpigot - Configurable walking exhaustion
|
||||
}
|
||||
}
|
||||
} else {
|
||||
diff --git a/src/main/java/net/minecraft/server/FoodMetaData.java b/src/main/java/net/minecraft/server/FoodMetaData.java
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
--- a/src/main/java/net/minecraft/server/FoodMetaData.java
|
||||
+++ b/src/main/java/net/minecraft/server/FoodMetaData.java
|
||||
@@ -0,0 +0,0 @@
|
||||
package net.minecraft.server;
|
||||
|
||||
+import org.github.paperspigot.PaperSpigotWorldConfig; // PaperSpigot
|
||||
+
|
||||
public class FoodMetaData {
|
||||
|
||||
// CraftBukkit start - All made public
|
||||
@@ -0,0 +0,0 @@ public class FoodMetaData {
|
||||
if (this.foodTickTimer >= 80) {
|
||||
// CraftBukkit - added RegainReason
|
||||
entityhuman.heal(1.0F, org.bukkit.event.entity.EntityRegainHealthEvent.RegainReason.SATIATED);
|
||||
- this.a(3.0F);
|
||||
+ this.a( PaperSpigotWorldConfig.playerExhaustionRegeneration ); // PaperSpigot - Configurable regeneration exhaustion
|
||||
this.foodTickTimer = 0;
|
||||
}
|
||||
} else if (this.foodLevel <= 0) {
|
||||
diff --git a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
--- a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
|
||||
+++ b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
|
||||
@@ -0,0 +0,0 @@ public class PaperSpigotWorldConfig
|
||||
fishingMinTicks = getInt( "fishing-time-range.MinimumTicks", fishingMinTicks );
|
||||
fishingMaxTicks = getInt( "fishing-time-range.MaximumTicks", fishingMaxTicks );
|
||||
}
|
||||
+
|
||||
+ public static float playerExhaustionWalking;
|
||||
+ public static float playerExhaustionSwimming;
|
||||
+ public static float playerExhaustionBlockBreak;
|
||||
+ public static float playerExhaustionSprinting;
|
||||
+ public static float playerExhaustionJumping;
|
||||
+ public static float playerExhaustionSprintJumping;
|
||||
+ public static float playerExhaustionAttack;
|
||||
+ public static float playerExhaustionRegeneration;
|
||||
+ private void playerExhaustion()
|
||||
+ {
|
||||
+ playerExhaustionWalking = getFloat( "player-exhaustion.walking", 0.01F );
|
||||
+ playerExhaustionSwimming = getFloat( "player-exhaustion.swimming", 0.015F );
|
||||
+ playerExhaustionBlockBreak = getFloat( "player-exhaustion.block-break", 0.025F );
|
||||
+ playerExhaustionSprinting = getFloat( "player-exhaustion.sprinting", 0.1F );
|
||||
+ playerExhaustionJumping = getFloat( "player-exhaustion.jumping", 0.2F );
|
||||
+ playerExhaustionSprintJumping = getFloat( "player-exhaustion.sprint-jumping", 0.8F );
|
||||
+ playerExhaustionAttack = getFloat( "player-exhaustion.attack", 0.3F );
|
||||
+ playerExhaustionRegeneration = getFloat( "player-exhaustion.regeneration", 3.0F );
|
||||
+ }
|
||||
}
|
||||
--
|
||||
@@ -0,0 +1,103 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Aikar <aikar@aikar.co>
|
||||
Date: Sat, 17 May 2014 02:12:39 -0500
|
||||
Subject: [PATCH] Teleport passenger/vehicle with player
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
--- a/src/main/java/net/minecraft/server/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/server/Entity.java
|
||||
@@ -0,0 +0,0 @@ public abstract class Entity {
|
||||
static boolean isLevelAtLeast(NBTTagCompound tag, int level) {
|
||||
return tag.hasKey("Bukkit.updateLevel") && tag.getInt("Bukkit.updateLevel") >= level;
|
||||
}
|
||||
+ // PaperSpigot start
|
||||
+ public void retrack() {
|
||||
+ final EntityTracker entityTracker = ((WorldServer) world).getTracker();
|
||||
+ entityTracker.untrackEntity(this);
|
||||
+ entityTracker.track(this);
|
||||
+ }
|
||||
+ // PaperSpigot end
|
||||
// CraftBukkit end
|
||||
|
||||
private static int entityCount;
|
||||
@@ -0,0 +0,0 @@ public abstract class Entity {
|
||||
// minecraftserver.getPlayerList().a(this, j, worldserver, worldserver1);
|
||||
boolean before = worldserver1.chunkProviderServer.forceChunkLoad;
|
||||
worldserver1.chunkProviderServer.forceChunkLoad = true;
|
||||
- worldserver1.getMinecraftServer().getPlayerList().repositionEntity(this, exit, portal);
|
||||
+ //worldserver1.getMinecraftServer().getPlayerList().repositionEntity(this, exit, portal); // PaperSpigot - no... this entity is dead
|
||||
worldserver1.chunkProviderServer.forceChunkLoad = before;
|
||||
// CraftBukkit end
|
||||
this.world.methodProfiler.c("reloading");
|
||||
@@ -0,0 +0,0 @@ public abstract class Entity {
|
||||
|
||||
if (entity != null) {
|
||||
entity.a(this, true);
|
||||
+ // PaperSpigot start - move entity to new location
|
||||
+ exit.getBlock(); // force load
|
||||
+ entity.setLocation(exit.getX(), exit.getY(), exit.getZ(), exit.getYaw(), exit.getPitch());
|
||||
+ // PaperSpigot end
|
||||
/* CraftBukkit start - We need to do this...
|
||||
if (j == 1 && i == 1) {
|
||||
ChunkCoordinates chunkcoordinates = worldserver1.getSpawn();
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
@@ -0,0 +0,0 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||
if (event.isCancelled()) {
|
||||
return false;
|
||||
}
|
||||
-
|
||||
+
|
||||
+ // PaperSpigot start
|
||||
// Spigot Start
|
||||
- eject();
|
||||
- leaveVehicle();
|
||||
+ //eject();
|
||||
+ //leaveVehicle();
|
||||
// Spigot End
|
||||
|
||||
+ // PaperSpigot start
|
||||
+ Entity vehicle = entity.vehicle;
|
||||
+ Entity passenger = entity.passenger;
|
||||
+ if (vehicle != null) {
|
||||
+ vehicle.passenger = null;
|
||||
+ vehicle.teleportTo(location, false);
|
||||
+ vehicle = vehicle.getBukkitEntity().getHandle();
|
||||
+ entity.vehicle = vehicle;
|
||||
+ vehicle.passenger = entity;
|
||||
+ }
|
||||
+
|
||||
+ if (passenger != null) {
|
||||
+ passenger.vehicle = null;
|
||||
+ passenger.teleportTo(location, false);
|
||||
+ passenger = passenger.getBukkitEntity().getHandle();
|
||||
+ entity.passenger = passenger;
|
||||
+ entity.vehicle = entity;
|
||||
+ }
|
||||
+ // PaperSpigot end
|
||||
+
|
||||
// Update the From Location
|
||||
from = event.getFrom();
|
||||
// Grab the new To Location dependent on whether the event was cancelled.
|
||||
@@ -0,0 +0,0 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||
} else {
|
||||
server.getHandle().moveToWorld(entity, toWorld.dimension, true, to, true);
|
||||
}
|
||||
+
|
||||
+ // PaperSpigot start
|
||||
+ if (vehicle != null) {
|
||||
+ vehicle.retrack();
|
||||
+ //entity.retrack();
|
||||
+ }
|
||||
+ if (passenger != null) {
|
||||
+ passenger.retrack();
|
||||
+ }
|
||||
+ // PaperSpigot end
|
||||
return true;
|
||||
}
|
||||
|
||||
--
|
||||
@@ -0,0 +1,44 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Zach Brown <1254957+zachbr@users.noreply.github.com>
|
||||
Date: Wed, 16 Jul 2014 14:11:08 -0500
|
||||
Subject: [PATCH] Toggle for player interact limiter
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
|
||||
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
|
||||
@@ -0,0 +0,0 @@ import org.bukkit.inventory.InventoryView;
|
||||
import org.bukkit.util.NumberConversions;
|
||||
// CraftBukkit end
|
||||
|
||||
+import org.github.paperspigot.PaperSpigotConfig; // PaperSpigot
|
||||
+
|
||||
public class PlayerConnection implements PacketPlayInListener {
|
||||
|
||||
private static final Logger c = LogManager.getLogger();
|
||||
@@ -0,0 +0,0 @@ public class PlayerConnection implements PacketPlayInListener {
|
||||
|
||||
public void a(PacketPlayInBlockPlace packetplayinblockplace) {
|
||||
boolean throttled = false;
|
||||
- if (lastPlace != -1 && packetplayinblockplace.timestamp - lastPlace < 5) {
|
||||
+ if (lastPlace != -1 && packetplayinblockplace.timestamp - lastPlace < 5 && PaperSpigotConfig.interactLimitEnabled) {
|
||||
throttled = true;
|
||||
} else
|
||||
{
|
||||
diff --git a/src/main/java/org/github/paperspigot/PaperSpigotConfig.java b/src/main/java/org/github/paperspigot/PaperSpigotConfig.java
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
--- a/src/main/java/org/github/paperspigot/PaperSpigotConfig.java
|
||||
+++ b/src/main/java/org/github/paperspigot/PaperSpigotConfig.java
|
||||
@@ -0,0 +0,0 @@ public class PaperSpigotConfig
|
||||
Bukkit.getLogger().log( Level.INFO, "Disabling async plugin bad ju-ju catcher, this might be bad depending on your plugins" );
|
||||
}
|
||||
}
|
||||
+
|
||||
+ public static boolean interactLimitEnabled;
|
||||
+ private static void interactLimitEnabled()
|
||||
+ {
|
||||
+ interactLimitEnabled = getBoolean( "settings.limit-player-interactions", true );
|
||||
+ }
|
||||
}
|
||||
--
|
||||
Reference in New Issue
Block a user