Archiviert
13
0

Prepare for restart / crash detection rewrite.

Dieser Commit ist enthalten in:
md_5 2013-02-23 11:50:29 +11:00
Ursprung 24c14b8aef
Commit 421ce6cf7d
24 geänderte Dateien mit 95 neuen und 500 gelöschten Zeilen

Datei anzeigen

@ -1,6 +1,6 @@
From a07bdb7064b9f0e6408d06ee7e827711d198ddd6 Mon Sep 17 00:00:00 2001 From 39ee91305fceb9c3c57cfb73471b0e760af3af80 Mon Sep 17 00:00:00 2001
From: md_5 <md_5@live.com.au> From: md_5 <md_5@live.com.au>
Date: Sun, 3 Feb 2013 12:21:52 +1100 Date: Sat, 23 Feb 2013 11:47:02 +1100
Subject: [PATCH] Spigot changes. Subject: [PATCH] Spigot changes.
--- ---
@ -14,36 +14,27 @@ Subject: [PATCH] Spigot changes.
src/main/java/net/minecraft/server/BlockReed.java | 2 +- src/main/java/net/minecraft/server/BlockReed.java | 2 +-
.../java/net/minecraft/server/BlockSapling.java | 2 +- .../java/net/minecraft/server/BlockSapling.java | 2 +-
src/main/java/net/minecraft/server/BlockStem.java | 2 +- src/main/java/net/minecraft/server/BlockStem.java | 2 +-
.../net/minecraft/server/ChunkRegionLoader.java | 35 +++- .../net/minecraft/server/ChunkRegionLoader.java | 35 +++--
.../java/net/minecraft/server/ChunkSection.java | 31 +++- .../java/net/minecraft/server/ChunkSection.java | 31 +++-
src/main/java/net/minecraft/server/EntityItem.java | 3 +- src/main/java/net/minecraft/server/EntityItem.java | 3 +-
.../java/net/minecraft/server/EntitySquid.java | 4 - .../java/net/minecraft/server/EntitySquid.java | 4 -
.../java/net/minecraft/server/MinecraftServer.java | 3 + .../net/minecraft/server/PlayerConnection.java | 18 ++-
.../net/minecraft/server/PlayerConnection.java | 18 +-
src/main/java/net/minecraft/server/PlayerList.java | 10 +- src/main/java/net/minecraft/server/PlayerList.java | 10 +-
.../net/minecraft/server/ThreadLoginVerifier.java | 23 +++ .../net/minecraft/server/ThreadLoginVerifier.java | 23 +++
src/main/java/net/minecraft/server/World.java | 200 ++++++++++++++++++--- src/main/java/net/minecraft/server/World.java | 161 ++++++++++++++++++---
.../java/net/minecraft/server/WorldServer.java | 121 ++++++++++--- .../java/net/minecraft/server/WorldServer.java | 121 +++++++++++++---
.../java/org/bukkit/craftbukkit/CraftServer.java | 93 +++++++--- .../java/org/bukkit/craftbukkit/CraftServer.java | 45 +++---
.../java/org/bukkit/craftbukkit/CraftWorld.java | 76 +++++++- .../java/org/bukkit/craftbukkit/CraftWorld.java | 76 +++++++++-
src/main/java/org/bukkit/craftbukkit/Spigot.java | 23 +++ src/main/java/org/bukkit/craftbukkit/Spigot.java | 20 +++
.../craftbukkit/chunkio/ChunkIOProvider.java | 2 +- .../craftbukkit/chunkio/ChunkIOProvider.java | 2 +-
.../bukkit/craftbukkit/command/RestartCommand.java | 24 +++
.../org/bukkit/craftbukkit/entity/CraftPlayer.java | 7 + .../org/bukkit/craftbukkit/entity/CraftPlayer.java | 7 +
.../bukkit/craftbukkit/util/ExceptionHandler.java | 31 ++++ .../java/org/bukkit/craftbukkit/util/FlatMap.java | 34 +++++
.../bukkit/craftbukkit/util/ExceptionReporter.java | 26 +++
.../java/org/bukkit/craftbukkit/util/FlatMap.java | 34 ++++
.../org/bukkit/craftbukkit/util/LongHashSet.java | 11 +- .../org/bukkit/craftbukkit/util/LongHashSet.java | 11 +-
.../bukkit/craftbukkit/util/LongObjectHashMap.java | 5 + .../bukkit/craftbukkit/util/LongObjectHashMap.java | 5 +
.../bukkit/craftbukkit/util/WatchdogThread.java | 88 +++++++++ src/main/resources/configurations/bukkit.yml | 27 ++++
src/main/resources/configurations/bukkit.yml | 30 ++++ 28 files changed, 564 insertions(+), 99 deletions(-)
33 files changed, 828 insertions(+), 100 deletions(-)
create mode 100644 src/main/java/org/bukkit/craftbukkit/Spigot.java create mode 100644 src/main/java/org/bukkit/craftbukkit/Spigot.java
create mode 100644 src/main/java/org/bukkit/craftbukkit/command/RestartCommand.java
create mode 100644 src/main/java/org/bukkit/craftbukkit/util/ExceptionHandler.java
create mode 100644 src/main/java/org/bukkit/craftbukkit/util/ExceptionReporter.java
create mode 100644 src/main/java/org/bukkit/craftbukkit/util/FlatMap.java create mode 100644 src/main/java/org/bukkit/craftbukkit/util/FlatMap.java
create mode 100644 src/main/java/org/bukkit/craftbukkit/util/WatchdogThread.java
diff --git a/.gitignore b/.gitignore diff --git a/.gitignore b/.gitignore
index a689360..b97a549 100644 index a689360..b97a549 100644
@ -370,34 +361,6 @@ index 961d83a..188d477 100644
public void c() { public void c() {
super.c(); super.c();
this.e = this.d; this.e = this.d;
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 4bdf8aa..955a3ac 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -454,6 +454,7 @@ public abstract class MinecraftServer implements ICommandListener, Runnable, IMo
this.a(crashreport);
} finally {
+ org.bukkit.craftbukkit.util.WatchdogThread.stopping(); // Spigot
try {
this.stop();
this.isStopped = true;
@@ -605,6 +606,7 @@ public abstract class MinecraftServer implements ICommandListener, Runnable, IMo
}
this.methodProfiler.b();
+ org.bukkit.craftbukkit.util.WatchdogThread.tick(); // Spigot
}
public boolean getAllowNether() {
@@ -708,6 +710,7 @@ public abstract class MinecraftServer implements ICommandListener, Runnable, IMo
dedicatedserver.an();
}
*/
+ dedicatedserver.primaryThread.setUncaughtExceptionHandler(new org.bukkit.craftbukkit.util.ExceptionHandler()); // Spigot
dedicatedserver.primaryThread.start();
// Runtime.getRuntime().addShutdownHook(new ThreadShutdown(dedicatedserver));
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
index fac9ea5..43a24f5 100644 index fac9ea5..43a24f5 100644
--- a/src/main/java/net/minecraft/server/PlayerConnection.java --- a/src/main/java/net/minecraft/server/PlayerConnection.java
@ -506,7 +469,7 @@ index 0686ba0..58d30eb 100644
URL url = new URL("http://session.minecraft.net/game/checkserver.jsp?user=" + URLEncoder.encode(PendingConnection.d(this.pendingConnection), "UTF-8") + "&serverId=" + URLEncoder.encode(s, "UTF-8")); URL url = new URL("http://session.minecraft.net/game/checkserver.jsp?user=" + URLEncoder.encode(PendingConnection.d(this.pendingConnection), "UTF-8") + "&serverId=" + URLEncoder.encode(s, "UTF-8"));
BufferedReader bufferedreader = new BufferedReader(new InputStreamReader(url.openStream())); BufferedReader bufferedreader = new BufferedReader(new InputStreamReader(url.openStream()));
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index c3dc4a4..9906b9e 100644 index c3dc4a4..6c9857b 100644
--- a/src/main/java/net/minecraft/server/World.java --- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java
@@ -65,7 +65,7 @@ public abstract class World implements IBlockAccess { @@ -65,7 +65,7 @@ public abstract class World implements IBlockAccess {
@ -671,46 +634,7 @@ index c3dc4a4..9906b9e 100644
double d0 = 0.25D; double d0 = 0.25D;
List list = this.getEntities(entity, axisalignedbb.grow(d0, d0, d0)); List list = this.getEntities(entity, axisalignedbb.grow(d0, d0, d0));
@@ -1313,7 +1409,37 @@ public abstract class World implements IBlockAccess { @@ -1894,6 +1990,11 @@ public abstract class World implements IBlockAccess {
this.entityJoinedWorld(entity, true);
}
- public void entityJoinedWorld(Entity entity, boolean flag) {
+ // Spigot start
+ public int tickEntityExceptions = 0;
+ public void entityJoinedWorld(final Entity entity, final boolean flag) {
+ if (entity == null) {
+ return;
+ }
+ try {
+ tickEntity(entity, flag);
+ } catch (Exception e) {
+ try {
+ tickEntityExceptions++;
+ List<String> report = new ArrayList<String>();
+ report.add("Spigot has detected an unexpected exception while handling");
+ if (!(entity instanceof EntityPlayer)) {
+ report.add("entity " + entity.toString() + " (id: " + entity.id + ")");
+ report.add("Spigot will kill the entity from the game instead of crashing your server.");
+ entity.die();
+ } else {
+ report.add("player '" + ((EntityPlayer) entity).name + "'. They will be kicked instead of crashing your server.");
+ ((EntityPlayer) entity).getBukkitEntity().kickPlayer("The server experienced and error and was forced to kick you. Please re-login.");
+ }
+ org.bukkit.craftbukkit.util.ExceptionReporter.handle(e, report.toArray(new String[0]));
+ } catch (Throwable t) {
+ org.bukkit.craftbukkit.util.ExceptionReporter.handle(t, "Spigot has detected an unexpected exception while attempting to handle an exception (yes you read that correctly).");
+ Bukkit.shutdown();
+ }
+ }
+ }
+
+ public void tickEntity(Entity entity, boolean flag) {
+ // Spigot end
int i = MathHelper.floor(entity.locX);
int j = MathHelper.floor(entity.locZ);
byte b0 = 32;
@@ -1894,6 +2020,11 @@ public abstract class World implements IBlockAccess {
this.worldData.setWeatherDuration(1); this.worldData.setWeatherDuration(1);
} }
@ -722,7 +646,7 @@ index c3dc4a4..9906b9e 100644
protected void z() { protected void z() {
// this.chunkTickList.clear(); // CraftBukkit - removed // this.chunkTickList.clear(); // CraftBukkit - removed
this.methodProfiler.a("buildList"); this.methodProfiler.a("buildList");
@@ -1903,25 +2034,42 @@ public abstract class World implements IBlockAccess { @@ -1903,25 +2004,42 @@ public abstract class World implements IBlockAccess {
int j; int j;
int k; int k;
@ -779,7 +703,7 @@ index c3dc4a4..9906b9e 100644
this.methodProfiler.b(); this.methodProfiler.b();
if (this.N > 0) { if (this.N > 0) {
@@ -1929,7 +2077,7 @@ public abstract class World implements IBlockAccess { @@ -1929,7 +2047,7 @@ public abstract class World implements IBlockAccess {
} }
this.methodProfiler.a("playerCheckLight"); this.methodProfiler.a("playerCheckLight");
@ -788,24 +712,7 @@ index c3dc4a4..9906b9e 100644
i = this.random.nextInt(this.players.size()); i = this.random.nextInt(this.players.size());
entityhuman = (EntityHuman) this.players.get(i); entityhuman = (EntityHuman) this.players.get(i);
j = MathHelper.floor(entityhuman.locX) + this.random.nextInt(11) - 5; j = MathHelper.floor(entityhuman.locX) + this.random.nextInt(11) - 5;
@@ -1968,9 +2116,16 @@ public abstract class World implements IBlockAccess { @@ -2308,7 +2426,10 @@ public abstract class World implements IBlockAccess {
chunk.o();
}
+ // Spigot start
protected void g() {
+ try {
this.z();
}
+ catch (Exception e) {
+ org.bukkit.craftbukkit.util.ExceptionReporter.handle(e, "Spigot has detected an unexpected exception while ticking chunks");
+ }
+ }
+ // Spigot end
public boolean w(int i, int j, int k) {
return this.c(i, j, k, false);
@@ -2308,7 +2463,10 @@ public abstract class World implements IBlockAccess {
} }
public List getEntities(Entity entity, AxisAlignedBB axisalignedbb) { public List getEntities(Entity entity, AxisAlignedBB axisalignedbb) {
@ -817,7 +724,7 @@ index c3dc4a4..9906b9e 100644
int i = MathHelper.floor((axisalignedbb.a - 2.0D) / 16.0D); int i = MathHelper.floor((axisalignedbb.a - 2.0D) / 16.0D);
int j = MathHelper.floor((axisalignedbb.d + 2.0D) / 16.0D); int j = MathHelper.floor((axisalignedbb.d + 2.0D) / 16.0D);
int k = MathHelper.floor((axisalignedbb.c - 2.0D) / 16.0D); int k = MathHelper.floor((axisalignedbb.c - 2.0D) / 16.0D);
@@ -2317,12 +2475,12 @@ public abstract class World implements IBlockAccess { @@ -2317,12 +2438,12 @@ public abstract class World implements IBlockAccess {
for (int i1 = i; i1 <= j; ++i1) { for (int i1 = i; i1 <= j; ++i1) {
for (int j1 = k; j1 <= l; ++j1) { for (int j1 = k; j1 <= l; ++j1) {
if (this.isChunkLoaded(i1, j1)) { if (this.isChunkLoaded(i1, j1)) {
@ -1061,7 +968,7 @@ index 3f73ef9..7032c61 100644
+ // Spigot end + // Spigot end
} }
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index e7c0760..2b3c60a 100644 index e7c0760..257497e 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -146,7 +146,7 @@ public final class CraftServer implements Server { @@ -146,7 +146,7 @@ public final class CraftServer implements Server {
@ -1185,59 +1092,6 @@ index e7c0760..2b3c60a 100644
} catch (CommandException ex) { } catch (CommandException ex) {
player.sendMessage(ChatColor.RED + "An internal error occurred while attempting to tab-complete this command"); player.sendMessage(ChatColor.RED + "An internal error occurred while attempting to tab-complete this command");
getLogger().log(Level.SEVERE, "Exception when " + player.getName() + " attempted to tab complete " + message, ex); getLogger().log(Level.SEVERE, "Exception when " + player.getName() + " attempted to tab complete " + message, ex);
@@ -1341,4 +1346,52 @@ public final class CraftServer implements Server {
public CraftItemFactory getItemFactory() {
return CraftItemFactory.instance();
}
+
+ // Spigot start
+ public void restart() {
+ try {
+ String startupScript = configuration.getString("settings.restart-script-location", "");
+ File file = new File(startupScript);
+ if (file.isFile()) {
+ System.out.println("Attempting to restart with " + startupScript);
+
+ // Kick all players
+ for (Player p : this.getOnlinePlayers()) {
+ ((org.bukkit.craftbukkit.entity.CraftPlayer) p).kickPlayer("Server is restarting", true);
+ }
+ // Give the socket a chance to send the packets
+ try {
+ Thread.sleep(100);
+ } catch (InterruptedException ex) {
+ }
+ // Close the socket so we can rebind with the new process
+ this.getServer().ae().a();
+
+ // Give time for it to kick in
+ try {
+ Thread.sleep(100);
+ } catch (InterruptedException ex) {
+ }
+
+ // Actually shutdown
+ try {
+ this.getServer().stop();
+ } catch (Throwable t) {
+ }
+
+ String os = System.getProperty("os.name").toLowerCase();
+ if (os.contains("win")) {
+ Runtime.getRuntime().exec("cmd /c start " + file.getPath());
+ } else {
+ Runtime.getRuntime().exec(file.getPath());
+ }
+ System.exit(0);
+ } else {
+ System.out.println("Startup script '" + startupScript + "' does not exist!");
+ }
+ } catch (Exception ex) {
+ ex.printStackTrace();
+ }
+ }
+ // Spigot end
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index 6e364b1..45217cd 100644 index 6e364b1..45217cd 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@ -1327,21 +1181,18 @@ index 6e364b1..45217cd 100644
return getChunkAt(x >> 4, z >> 4).getBlock(x & 0xF, y & 0xFF, z & 0xF); return getChunkAt(x >> 4, z >> 4).getBlock(x & 0xF, y & 0xFF, z & 0xF);
diff --git a/src/main/java/org/bukkit/craftbukkit/Spigot.java b/src/main/java/org/bukkit/craftbukkit/Spigot.java diff --git a/src/main/java/org/bukkit/craftbukkit/Spigot.java b/src/main/java/org/bukkit/craftbukkit/Spigot.java
new file mode 100644 new file mode 100644
index 0000000..eab9abe index 0000000..4a4f949
--- /dev/null --- /dev/null
+++ b/src/main/java/org/bukkit/craftbukkit/Spigot.java +++ b/src/main/java/org/bukkit/craftbukkit/Spigot.java
@@ -0,0 +1,23 @@ @@ -0,0 +1,20 @@
+package org.bukkit.craftbukkit; +package org.bukkit.craftbukkit;
+ +
+import org.bukkit.command.SimpleCommandMap; +import org.bukkit.command.SimpleCommandMap;
+import org.bukkit.configuration.file.YamlConfiguration; +import org.bukkit.configuration.file.YamlConfiguration;
+ +
+public class Spigot { +public class Spigot {
+
+ public static void initialize(CraftServer server, SimpleCommandMap commandMap, YamlConfiguration configuration) { + public static void initialize(CraftServer server, SimpleCommandMap commandMap, YamlConfiguration configuration) {
+ commandMap.register("bukkit", new org.bukkit.craftbukkit.command.RestartCommand("restart"));
+
+ org.bukkit.craftbukkit.util.WatchdogThread.startThread(configuration.getInt("settings.timeout-time", 180), configuration.getBoolean("settings.restart-on-crash", false));
+
+ server.whitelistMessage = configuration.getString("settings.whitelist-message", server.whitelistMessage); + server.whitelistMessage = configuration.getString("settings.whitelist-message", server.whitelistMessage);
+ server.stopMessage = configuration.getString("settings.stop-message", server.stopMessage); + server.stopMessage = configuration.getString("settings.stop-message", server.stopMessage);
+ server.logCommands = configuration.getBoolean("settings.log-commands", true); + server.logCommands = configuration.getBoolean("settings.log-commands", true);
@ -1367,37 +1218,6 @@ index 48cf5ba..1d4764c 100644
return; return;
} }
diff --git a/src/main/java/org/bukkit/craftbukkit/command/RestartCommand.java b/src/main/java/org/bukkit/craftbukkit/command/RestartCommand.java
new file mode 100644
index 0000000..fba4b4a
--- /dev/null
+++ b/src/main/java/org/bukkit/craftbukkit/command/RestartCommand.java
@@ -0,0 +1,24 @@
+package org.bukkit.craftbukkit.command;
+
+import org.bukkit.Bukkit;
+import org.bukkit.command.Command;
+import org.bukkit.command.CommandSender;
+import org.bukkit.craftbukkit.CraftServer;
+
+public class RestartCommand extends Command {
+ public RestartCommand(String name) {
+ super(name);
+ this.description = "Restarts the server";
+ this.usageMessage = "/restart";
+ this.setPermission("bukkit.command.restart");
+ }
+
+ @Override
+ public boolean execute(CommandSender sender, String currentAlias, String[] args) {
+ if (!testPermission(sender)) return true;
+
+ ((CraftServer)Bukkit.getServer()).restart();
+
+ return true;
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index f8dbbee..c79f352 100644 index f8dbbee..c79f352 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@ -1420,75 +1240,6 @@ index f8dbbee..c79f352 100644
public void setCompassTarget(Location loc) { public void setCompassTarget(Location loc) {
if (getHandle().playerConnection == null) return; if (getHandle().playerConnection == null) return;
diff --git a/src/main/java/org/bukkit/craftbukkit/util/ExceptionHandler.java b/src/main/java/org/bukkit/craftbukkit/util/ExceptionHandler.java
new file mode 100644
index 0000000..7ee3665
--- /dev/null
+++ b/src/main/java/org/bukkit/craftbukkit/util/ExceptionHandler.java
@@ -0,0 +1,31 @@
+package org.bukkit.craftbukkit.util;
+
+import java.lang.Thread.UncaughtExceptionHandler;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import org.bukkit.Bukkit;
+import org.bukkit.craftbukkit.CraftServer;
+
+public class ExceptionHandler implements UncaughtExceptionHandler {
+
+ public void uncaughtException(Thread t, Throwable e) {
+ Logger log = ((CraftServer) Bukkit.getServer()).getLogger();
+ log.log(Level.SEVERE, "The server has crashed!");
+ log.log(Level.SEVERE, "Please report this to http://www.spigotmc.org/!");
+ log.log(Level.SEVERE, "Begin Exception Trace:");
+ log.log(Level.SEVERE, "");
+ StackTraceElement[] stack = e.getStackTrace();
+ for (int line = 0; line < stack.length; line++) {
+ log.log(Level.SEVERE, " " + stack[line].toString());
+ }
+ log.log(Level.SEVERE, "End Exception Trace:");
+ log.log(Level.SEVERE, "");
+ log.log(Level.SEVERE, "Begin Thread Stack Trace:");
+ stack = t.getStackTrace();
+ for (int line = 0; line < stack.length; line++) {
+ log.log(Level.SEVERE, " " + stack[line].toString());
+ }
+ log.log(Level.SEVERE, "End Exception Trace:");
+ log.log(Level.SEVERE, "");
+ }
+}
diff --git a/src/main/java/org/bukkit/craftbukkit/util/ExceptionReporter.java b/src/main/java/org/bukkit/craftbukkit/util/ExceptionReporter.java
new file mode 100644
index 0000000..a396f17
--- /dev/null
+++ b/src/main/java/org/bukkit/craftbukkit/util/ExceptionReporter.java
@@ -0,0 +1,26 @@
+package org.bukkit.craftbukkit.util;
+
+import org.bukkit.Bukkit;
+
+public final class ExceptionReporter {
+
+ public static void handle(Throwable t, String... messages) {
+ for (String message : messages) {
+ Bukkit.getLogger().severe(message);
+ }
+ Bukkit.getLogger().severe("Spigot recommends you report this to http://www.spigotmc.org/");
+ Bukkit.getLogger().severe("");
+ Bukkit.getLogger().severe("Spigot version: " + Bukkit.getBukkitVersion());
+ Bukkit.getLogger().severe("Exception Trace Begins:");
+ StackTraceElement[] stack = t.getStackTrace();
+ for (int line = 0; line < stack.length; line++) {
+ Bukkit.getLogger().severe(" " + stack[line].toString());
+ }
+ Bukkit.getLogger().severe("Exception Trace Ends.");
+ Bukkit.getLogger().severe("");
+ }
+
+ public static void handle(Throwable t) {
+ handle(t, "Spigot has encountered an unexpected exception!");
+ }
+}
diff --git a/src/main/java/org/bukkit/craftbukkit/util/FlatMap.java b/src/main/java/org/bukkit/craftbukkit/util/FlatMap.java diff --git a/src/main/java/org/bukkit/craftbukkit/util/FlatMap.java b/src/main/java/org/bukkit/craftbukkit/util/FlatMap.java
new file mode 100644 new file mode 100644
index 0000000..e8a7725 index 0000000..e8a7725
@ -1618,111 +1369,14 @@ index 01861cc..dbd33fa 100644
int index = (int) (keyIndex(key) & (BUCKET_SIZE - 1)); int index = (int) (keyIndex(key) & (BUCKET_SIZE - 1));
long[] inner = keys[index]; long[] inner = keys[index];
if (inner == null) { if (inner == null) {
diff --git a/src/main/java/org/bukkit/craftbukkit/util/WatchdogThread.java b/src/main/java/org/bukkit/craftbukkit/util/WatchdogThread.java
new file mode 100644
index 0000000..da6df8f
--- /dev/null
+++ b/src/main/java/org/bukkit/craftbukkit/util/WatchdogThread.java
@@ -0,0 +1,88 @@
+package org.bukkit.craftbukkit.util;
+
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.concurrent.atomic.AtomicLong;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import org.bukkit.Bukkit;
+import org.bukkit.craftbukkit.CraftServer;
+
+public class WatchdogThread extends Thread {
+
+ private static WatchdogThread instance;
+ private static final String LINE = "------------------------------";
+ private AtomicLong lastTick = new AtomicLong(System.currentTimeMillis());
+ private final long timeoutTime;
+ private final boolean restart;
+ private boolean stopping;
+
+ private WatchdogThread(long timeoutTime, boolean restart) {
+ super("Spigot Watchdog Thread");
+ this.timeoutTime = timeoutTime;
+ this.restart = restart;
+ }
+
+ public static void startThread(int timeoutTime, boolean restart) {
+ if (instance == null) {
+ instance = new WatchdogThread(timeoutTime * 1000L, restart);
+ instance.start();
+ }
+ instance.stopping = false;
+ }
+
+ public static void tick() {
+ instance.lastTick.set(System.currentTimeMillis());
+ }
+
+ public static void stopping() {
+ if (instance != null) {
+ instance.stopping = true;
+ }
+ }
+
+ @Override
+ public void run() {
+ while (!this.isInterrupted()) {
+ try {
+ sleep(10000);
+ } catch (InterruptedException ignore) {
+ }
+ if (stopping)
+ continue;
+ if (System.currentTimeMillis() > (lastTick.get() + timeoutTime)) {
+ Logger log = ((CraftServer) Bukkit.getServer()).getLogger();
+ log.log(Level.SEVERE, "The server has stopped responding!");
+ log.log(Level.SEVERE, "Please report this to http://www.spigotmc.org/!");
+ log.log(Level.SEVERE, "Spigot version: " + Bukkit.getBukkitVersion());
+ log.log(Level.SEVERE, "Begin Exception Trace For All Threads:");
+ Map<Thread, StackTraceElement[]> traces = Thread.getAllStackTraces();
+ Iterator<Entry<Thread, StackTraceElement[]>> i = traces.entrySet().iterator();
+ while (i.hasNext()) {
+ Entry<Thread, StackTraceElement[]> entry = i.next();
+ Thread thread = entry.getKey();
+ if (thread.getState() != State.WAITING) {
+ System.err.println(LINE);
+
+ log.log(Level.SEVERE, "Current Thread: " + thread.getName());
+ log.log(Level.SEVERE, " PID: " + thread.getId() + " | Alive: " + thread.isAlive() + " | State: " + thread.getState());
+ log.log(Level.SEVERE, " Stack:");
+ StackTraceElement[] stack = entry.getValue();
+ for (int line = 0; line < stack.length; line++) {
+ log.log(Level.SEVERE, " " + stack[line].toString());
+ }
+ }
+ }
+ System.err.println(LINE);
+
+ if (this.restart) {
+ ((CraftServer) Bukkit.getServer()).restart();
+ }
+
+ //Give up
+ this.interrupt();
+ }
+ }
+ }
+}
diff --git a/src/main/resources/configurations/bukkit.yml b/src/main/resources/configurations/bukkit.yml diff --git a/src/main/resources/configurations/bukkit.yml b/src/main/resources/configurations/bukkit.yml
index 61a95e3..5262ae1 100644 index 61a95e3..f44d5d0 100644
--- a/src/main/resources/configurations/bukkit.yml --- a/src/main/resources/configurations/bukkit.yml
+++ b/src/main/resources/configurations/bukkit.yml +++ b/src/main/resources/configurations/bukkit.yml
@@ -25,6 +25,36 @@ settings: @@ -25,6 +25,33 @@ settings:
query-plugins: true query-plugins: true
deprecated-verbose: default deprecated-verbose: default
shutdown-message: Server closed shutdown-message: Server closed
+ restart-script-location: start.bat
+ timeout-time: 180
+ restart-on-crash: false
+ filter-unsafe-ips: false + filter-unsafe-ips: false
+ whitelist-message: You are not white-listed on this server! + whitelist-message: You are not white-listed on this server!
+ log-commands: true + log-commands: true

Datei anzeigen

@ -1,4 +1,4 @@
From f303848293ac86066ccea4f00947253af6e9c8f0 Mon Sep 17 00:00:00 2001 From 8a6dee291c36ec103e28624da71583f6eb863dde Mon Sep 17 00:00:00 2001
From: md_5 <md_5@bigpond.com> From: md_5 <md_5@bigpond.com>
Date: Sat, 12 Jan 2013 19:57:45 +1100 Date: Sat, 12 Jan 2013 19:57:45 +1100
Subject: [PATCH] Per world view distance. Subject: [PATCH] Per world view distance.
@ -10,7 +10,7 @@ Subject: [PATCH] Per world view distance.
3 files changed, 7 insertions(+), 1 deletion(-) 3 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
index a42aa1e..842d722 100644 index 7032c61..4aa2a19 100644
--- a/src/main/java/net/minecraft/server/WorldServer.java --- a/src/main/java/net/minecraft/server/WorldServer.java
+++ b/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java
@@ -49,7 +49,7 @@ public class WorldServer extends World implements org.bukkit.BlockChangeDelegate @@ -49,7 +49,7 @@ public class WorldServer extends World implements org.bukkit.BlockChangeDelegate
@ -53,10 +53,10 @@ index 45217cd..94e07fe 100644
public int wheatGrowthModifier = 100; public int wheatGrowthModifier = 100;
public int cactusGrowthModifier = 100; public int cactusGrowthModifier = 100;
diff --git a/src/main/resources/configurations/bukkit.yml b/src/main/resources/configurations/bukkit.yml diff --git a/src/main/resources/configurations/bukkit.yml b/src/main/resources/configurations/bukkit.yml
index 55bfb77..9d6d613 100644 index f44d5d0..0c92b66 100644
--- a/src/main/resources/configurations/bukkit.yml --- a/src/main/resources/configurations/bukkit.yml
+++ b/src/main/resources/configurations/bukkit.yml +++ b/src/main/resources/configurations/bukkit.yml
@@ -52,6 +52,7 @@ world-settings: @@ -49,6 +49,7 @@ world-settings:
world: world:
growth-chunks-per-tick: 1000 growth-chunks-per-tick: 1000
world_nether: world_nether:

Datei anzeigen

@ -1,46 +0,0 @@
From 266474a8588a30de49a7c2a883dde257b7e001ee Mon Sep 17 00:00:00 2001
From: md_5 <md_5@bigpond.com>
Date: Thu, 10 Jan 2013 12:33:37 +1100
Subject: [PATCH] Update timeout time to new default value.
---
src/main/java/org/bukkit/craftbukkit/Spigot.java | 9 ++++++++-
src/main/resources/configurations/bukkit.yml | 2 +-
2 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/src/main/java/org/bukkit/craftbukkit/Spigot.java b/src/main/java/org/bukkit/craftbukkit/Spigot.java
index a53c7b0..30bc542 100644
--- a/src/main/java/org/bukkit/craftbukkit/Spigot.java
+++ b/src/main/java/org/bukkit/craftbukkit/Spigot.java
@@ -7,7 +7,14 @@ public class Spigot {
public static void initialize(CraftServer server, SimpleCommandMap commandMap, YamlConfiguration configuration) {
commandMap.register("bukkit", new org.bukkit.craftbukkit.command.RestartCommand("restart"));
- org.bukkit.craftbukkit.util.WatchdogThread.startThread(configuration.getInt("settings.timeout-time", 180), configuration.getBoolean("settings.restart-on-crash", false));
+ int timeout = configuration.getInt("settings.timeout-time", 300);
+ if (timeout == 180) {
+ timeout = 300;
+ server.getLogger().info("Migrating to new timeout time of 300");
+ configuration.set("settings.timeout-time", timeout);
+ server.saveConfig();
+ }
+ org.bukkit.craftbukkit.util.WatchdogThread.startThread(timeout, configuration.getBoolean("settings.restart-on-crash", false));
server.whitelistMessage = configuration.getString("settings.whitelist-message", server.whitelistMessage);
server.stopMessage = configuration.getString("settings.stop-message", server.stopMessage);
diff --git a/src/main/resources/configurations/bukkit.yml b/src/main/resources/configurations/bukkit.yml
index 5262ae1..55bfb77 100644
--- a/src/main/resources/configurations/bukkit.yml
+++ b/src/main/resources/configurations/bukkit.yml
@@ -26,7 +26,7 @@ settings:
deprecated-verbose: default
shutdown-message: Server closed
restart-script-location: start.bat
- timeout-time: 180
+ timeout-time: 300
restart-on-crash: false
filter-unsafe-ips: false
whitelist-message: You are not white-listed on this server!
--
1.8.1-rc2

Datei anzeigen

@ -1,4 +1,4 @@
From 25d363d1f0fdc54987a6d6bc6f06eb53c6129637 Mon Sep 17 00:00:00 2001 From b5b44a60c5a1f64ba4ce828bb5fa112e1552cd72 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co> From: Aikar <aikar@aikar.co>
Date: Fri, 11 Jan 2013 11:08:45 -0500 Date: Fri, 11 Jan 2013 11:08:45 -0500
Subject: [PATCH] Fix various crop growth modifier formula issues Subject: [PATCH] Fix various crop growth modifier formula issues

Datei anzeigen

@ -1,4 +1,4 @@
From c88bb483e5104872c4492f006b107625f9c91939 Mon Sep 17 00:00:00 2001 From 5403a45cb37298605612b7b059ea963a09afa453 Mon Sep 17 00:00:00 2001
From: Agaricus <agaricusb@yahoo.com> From: Agaricus <agaricusb@yahoo.com>
Date: Sun, 13 Jan 2013 03:41:38 -0800 Date: Sun, 13 Jan 2013 03:41:38 -0800
Subject: [PATCH] Add OldChunkLoader from mc-dev for diff visibility Subject: [PATCH] Add OldChunkLoader from mc-dev for diff visibility

Datei anzeigen

@ -1,4 +1,4 @@
From 6d940cd4bc4a1b7ba8e918f25711e916274adb4d Mon Sep 17 00:00:00 2001 From 69eceb5d0258629d174e17d5a8e3547e196e2138 Mon Sep 17 00:00:00 2001
From: Agaricus <agaricusb@yahoo.com> From: Agaricus <agaricusb@yahoo.com>
Date: Sun, 13 Jan 2013 03:49:07 -0800 Date: Sun, 13 Jan 2013 03:49:07 -0800
Subject: [PATCH] Fix mcRegion-to-Anvil conversion Subject: [PATCH] Fix mcRegion-to-Anvil conversion

Datei anzeigen

@ -1,4 +1,4 @@
From e9aa88610fc3b464adc357a0b6bd435032e41a7d Mon Sep 17 00:00:00 2001 From c202dc309048355e8243da6950dc27bbf2753ac9 Mon Sep 17 00:00:00 2001
From: md_5 <md_5@bigpond.com> From: md_5 <md_5@bigpond.com>
Date: Tue, 15 Jan 2013 15:05:02 +1100 Date: Tue, 15 Jan 2013 15:05:02 +1100
Subject: [PATCH] Update versioning check to correctly resolve api version. Subject: [PATCH] Update versioning check to correctly resolve api version.

Datei anzeigen

@ -1,4 +1,4 @@
From c11561f896f9b4445894ad7e1c69505d1b567597 Mon Sep 17 00:00:00 2001 From 2510ee47cc0bc0a9dc98effad61b9e8835192235 Mon Sep 17 00:00:00 2001
From: Ammar Askar <ammar@ammaraskar.com> From: Ammar Askar <ammar@ammaraskar.com>
Date: Fri, 18 Jan 2013 16:20:01 +0500 Date: Fri, 18 Jan 2013 16:20:01 +0500
Subject: [PATCH] Optimize packet used to unload chunks for the client Subject: [PATCH] Optimize packet used to unload chunks for the client

Datei anzeigen

@ -1,4 +1,4 @@
From 54137647a6488134d5268180e083f4ab05ae8215 Mon Sep 17 00:00:00 2001 From e82bcce15b5b93aaaf2eb09c47f44db1d735ff51 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co> From: Aikar <aikar@aikar.co>
Date: Sat, 19 Jan 2013 01:11:30 -0500 Date: Sat, 19 Jan 2013 01:11:30 -0500
Subject: [PATCH] Skip entity.move() if we are not moving anywhere. Subject: [PATCH] Skip entity.move() if we are not moving anywhere.
@ -8,7 +8,7 @@ Subject: [PATCH] Skip entity.move() if we are not moving anywhere.
1 file changed, 1 insertion(+) 1 file changed, 1 insertion(+)
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index 26b7a1f..2340fad 100644 index 71707ed..d0a58f8 100644
--- a/src/main/java/net/minecraft/server/Entity.java --- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java
@@ -423,6 +423,7 @@ public abstract class Entity { @@ -423,6 +423,7 @@ public abstract class Entity {

Datei anzeigen

@ -1,4 +1,4 @@
From 040e9d8a5a8437a06bbd4531fc788144defd447d Mon Sep 17 00:00:00 2001 From 66bf9228164154e0da57d1a8dbabc6837b2da2f8 Mon Sep 17 00:00:00 2001
From: Mike Primm <mike@primmhome.com> From: Mike Primm <mike@primmhome.com>
Date: Wed, 16 Jan 2013 15:27:22 -0600 Date: Wed, 16 Jan 2013 15:27:22 -0600
Subject: [PATCH] Alternate, sync-free-but-safe chunk reference cache Subject: [PATCH] Alternate, sync-free-but-safe chunk reference cache
@ -8,7 +8,7 @@ Subject: [PATCH] Alternate, sync-free-but-safe chunk reference cache
1 file changed, 6 insertions(+), 8 deletions(-) 1 file changed, 6 insertions(+), 8 deletions(-)
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 1e36467..e2426bc 100644 index b1dd29e..41f4f31 100644
--- a/src/main/java/net/minecraft/server/World.java --- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java
@@ -297,15 +297,13 @@ public abstract class World implements IBlockAccess { @@ -297,15 +297,13 @@ public abstract class World implements IBlockAccess {

Datei anzeigen

@ -1,4 +1,4 @@
From c7e5718f1f1357d6dccdde091ee8598abc120cc1 Mon Sep 17 00:00:00 2001 From ede0d69949d7d00980598f1944de83052162deb4 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co> From: Aikar <aikar@aikar.co>
Date: Thu, 10 Jan 2013 00:18:11 -0500 Date: Thu, 10 Jan 2013 00:18:11 -0500
Subject: [PATCH] Add Custom Timings to various points Subject: [PATCH] Add Custom Timings to various points
@ -210,7 +210,7 @@ index 43a24f5..7ca0acf 100644
/* CraftBukkit start - No longer needed as we have already handled it in server.dispatchServerCommand above. /* CraftBukkit start - No longer needed as we have already handled it in server.dispatchServerCommand above.
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index e2426bc..9b7bc02 100644 index 41f4f31..c914461 100644
--- a/src/main/java/net/minecraft/server/World.java --- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java
@@ -14,6 +14,7 @@ import java.util.concurrent.Callable; @@ -14,6 +14,7 @@ import java.util.concurrent.Callable;
@ -325,5 +325,5 @@ index 0000000..bb0c191
+ } + }
+} +}
-- --
1.8.1.1 1.8.1-rc2

Datei anzeigen

@ -1,4 +1,4 @@
From cde68c3d5bc4581749a7cf6afbd91a8213a2e1d5 Mon Sep 17 00:00:00 2001 From f36116f21a496382c52e7cd3f0f97820c183fc49 Mon Sep 17 00:00:00 2001
From: md_5 <md_5@live.com.au> From: md_5 <md_5@live.com.au>
Date: Fri, 25 Jan 2013 18:24:54 +1100 Date: Fri, 25 Jan 2013 18:24:54 +1100
Subject: [PATCH] Better + more flexible itemstack merging Subject: [PATCH] Better + more flexible itemstack merging
@ -40,7 +40,7 @@ index a7baa0f..5e3ac84 100644
} }
} else { } else {
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 9b7bc02..262290f 100644 index c914461..88007c3 100644
--- a/src/main/java/net/minecraft/server/World.java --- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java
@@ -923,31 +923,8 @@ public abstract class World implements IBlockAccess { @@ -923,31 +923,8 @@ public abstract class World implements IBlockAccess {

Datei anzeigen

@ -1,4 +1,4 @@
From 418300d476c22377bddb9789d3b434ac4a649a7e Mon Sep 17 00:00:00 2001 From 2bbaa8a04d59da56e08aa738dfc96b19c8f01db4 Mon Sep 17 00:00:00 2001
From: lishid <lishid@gmail.com> From: lishid <lishid@gmail.com>
Date: Sat, 16 Feb 2013 10:05:25 +1100 Date: Sat, 16 Feb 2013 10:05:25 +1100
Subject: [PATCH] Add oreobfuscator for Spigot. Subject: [PATCH] Add oreobfuscator for Spigot.
@ -123,7 +123,7 @@ index 5faee12..55f9ffa 100644
if (false) { // Never trigger if (false) { // Never trigger
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index a7785b7..204af22 100644 index 257497e..1a3cc03 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -163,6 +163,12 @@ public final class CraftServer implements Server { @@ -163,6 +163,12 @@ public final class CraftServer implements Server {
@ -305,10 +305,10 @@ index 0000000..3e74103
+ } + }
+} +}
diff --git a/src/main/java/org/bukkit/craftbukkit/Spigot.java b/src/main/java/org/bukkit/craftbukkit/Spigot.java diff --git a/src/main/java/org/bukkit/craftbukkit/Spigot.java b/src/main/java/org/bukkit/craftbukkit/Spigot.java
index 8dda8b8..2600de4 100644 index 4a4f949..3bfeb49 100644
--- a/src/main/java/org/bukkit/craftbukkit/Spigot.java --- a/src/main/java/org/bukkit/craftbukkit/Spigot.java
+++ b/src/main/java/org/bukkit/craftbukkit/Spigot.java +++ b/src/main/java/org/bukkit/craftbukkit/Spigot.java
@@ -23,6 +23,14 @@ public class Spigot { @@ -13,6 +13,14 @@ public class Spigot {
server.commandComplete = configuration.getBoolean("settings.command-complete", true); server.commandComplete = configuration.getBoolean("settings.command-complete", true);
server.spamGuardExclusions = configuration.getStringList("settings.spam-exclusions"); server.spamGuardExclusions = configuration.getStringList("settings.spam-exclusions");
@ -324,10 +324,10 @@ index 8dda8b8..2600de4 100644
server.getLogger().severe("[Spigot] You should not disable chunk-gc, unexpected behaviour may occur!"); server.getLogger().severe("[Spigot] You should not disable chunk-gc, unexpected behaviour may occur!");
} }
diff --git a/src/main/resources/configurations/bukkit.yml b/src/main/resources/configurations/bukkit.yml diff --git a/src/main/resources/configurations/bukkit.yml b/src/main/resources/configurations/bukkit.yml
index 9d6d613..3228d17 100644 index 0c92b66..78e9a66 100644
--- a/src/main/resources/configurations/bukkit.yml --- a/src/main/resources/configurations/bukkit.yml
+++ b/src/main/resources/configurations/bukkit.yml +++ b/src/main/resources/configurations/bukkit.yml
@@ -84,3 +84,9 @@ database: @@ -81,3 +81,9 @@ database:
driver: org.sqlite.JDBC driver: org.sqlite.JDBC
password: walrus password: walrus
url: jdbc:sqlite:{DIR}{NAME}.db url: jdbc:sqlite:{DIR}{NAME}.db

Datei anzeigen

@ -1,4 +1,4 @@
From e9079818151c8df92e2d927b0f4f3308d9cea113 Mon Sep 17 00:00:00 2001 From aedb805a7d9546c33994de3acee0da1814c0f6b5 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co> From: Aikar <aikar@aikar.co>
Date: Fri, 18 Jan 2013 19:31:14 -0500 Date: Fri, 18 Jan 2013 19:31:14 -0500
Subject: [PATCH] Reduce number of LivingEntity collision checks. Subject: [PATCH] Reduce number of LivingEntity collision checks.
@ -33,5 +33,5 @@ index b2481aa..bbbb008 100644
this.o(entity); this.o(entity);
} }
-- --
1.8.1.1 1.8.1-rc2

Datei anzeigen

@ -1,4 +1,4 @@
From 1c18e9b73bc9b0bce7ee99f0abf89b34b454b806 Mon Sep 17 00:00:00 2001 From 7a0b264ffa3d6c7d4110f3e25059cc3f1bffee88 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co> From: Aikar <aikar@aikar.co>
Date: Tue, 29 Jan 2013 13:25:53 -0500 Date: Tue, 29 Jan 2013 13:25:53 -0500
Subject: [PATCH] Only count entities in chunks being processed for the spawn Subject: [PATCH] Only count entities in chunks being processed for the spawn

Datei anzeigen

@ -1,4 +1,4 @@
From c990d9e10a9a8285c8d408c6cb665c1f1e640545 Mon Sep 17 00:00:00 2001 From 2a34593e2cd2cff381e8d6d6e1a1427221cd24c4 Mon Sep 17 00:00:00 2001
From: md_5 <md_5@live.com.au> From: md_5 <md_5@live.com.au>
Date: Sat, 2 Feb 2013 19:40:53 +1100 Date: Sat, 2 Feb 2013 19:40:53 +1100
Subject: [PATCH] Send maps a lot less often to combat the lag they cause. Subject: [PATCH] Send maps a lot less often to combat the lag they cause.
@ -24,7 +24,7 @@ index a026c4c..27a548f 100644
ItemStack i5 = i4.i(); ItemStack i5 = i4.i();
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 204af22..f00b28d 100644 index 1a3cc03..6c7fa4f 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -179,6 +179,7 @@ public final class CraftServer implements Server { @@ -179,6 +179,7 @@ public final class CraftServer implements Server {
@ -36,10 +36,10 @@ index 204af22..f00b28d 100644
static { static {
diff --git a/src/main/java/org/bukkit/craftbukkit/Spigot.java b/src/main/java/org/bukkit/craftbukkit/Spigot.java diff --git a/src/main/java/org/bukkit/craftbukkit/Spigot.java b/src/main/java/org/bukkit/craftbukkit/Spigot.java
index b124dab..c712b52 100644 index 3bfeb49..5827820 100644
--- a/src/main/java/org/bukkit/craftbukkit/Spigot.java --- a/src/main/java/org/bukkit/craftbukkit/Spigot.java
+++ b/src/main/java/org/bukkit/craftbukkit/Spigot.java +++ b/src/main/java/org/bukkit/craftbukkit/Spigot.java
@@ -22,6 +22,7 @@ public class Spigot { @@ -12,6 +12,7 @@ public class Spigot {
server.ipFilter = configuration.getBoolean("settings.filter-unsafe-ips", false); server.ipFilter = configuration.getBoolean("settings.filter-unsafe-ips", false);
server.commandComplete = configuration.getBoolean("settings.command-complete", true); server.commandComplete = configuration.getBoolean("settings.command-complete", true);
server.spamGuardExclusions = configuration.getStringList("settings.spam-exclusions"); server.spamGuardExclusions = configuration.getStringList("settings.spam-exclusions");
@ -48,10 +48,10 @@ index b124dab..c712b52 100644
server.orebfuscatorEnabled = configuration.getBoolean("orebfuscator.enable", false); server.orebfuscatorEnabled = configuration.getBoolean("orebfuscator.enable", false);
server.orebfuscatorEngineMode = configuration.getInt("orebfuscator.engine-mode", 1); server.orebfuscatorEngineMode = configuration.getInt("orebfuscator.engine-mode", 1);
diff --git a/src/main/resources/configurations/bukkit.yml b/src/main/resources/configurations/bukkit.yml diff --git a/src/main/resources/configurations/bukkit.yml b/src/main/resources/configurations/bukkit.yml
index 3228d17..3122a14 100644 index 78e9a66..548f7c1 100644
--- a/src/main/resources/configurations/bukkit.yml --- a/src/main/resources/configurations/bukkit.yml
+++ b/src/main/resources/configurations/bukkit.yml +++ b/src/main/resources/configurations/bukkit.yml
@@ -34,6 +34,7 @@ settings: @@ -31,6 +31,7 @@ settings:
command-complete: true command-complete: true
spam-exclusions: spam-exclusions:
- /skill - /skill

Datei anzeigen

@ -1,4 +1,4 @@
From c8578420f6c44d29e5f93dfbcee0b861c16794bd Mon Sep 17 00:00:00 2001 From 04cff8e45e1fe99b3679b15d672c41ac1de31ffb Mon Sep 17 00:00:00 2001
From: md_5 <md_5@live.com.au> From: md_5 <md_5@live.com.au>
Date: Sun, 3 Feb 2013 09:20:19 +1100 Date: Sun, 3 Feb 2013 09:20:19 +1100
Subject: [PATCH] Detect, remove and warn about null tile entities. Subject: [PATCH] Detect, remove and warn about null tile entities.
@ -8,7 +8,7 @@ Subject: [PATCH] Detect, remove and warn about null tile entities.
1 file changed, 7 insertions(+) 1 file changed, 7 insertions(+)
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 262290f..cd7ad64 100644 index 88007c3..9f05a52 100644
--- a/src/main/java/net/minecraft/server/World.java --- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java
@@ -1302,6 +1302,13 @@ public abstract class World implements IBlockAccess { @@ -1302,6 +1302,13 @@ public abstract class World implements IBlockAccess {

Datei anzeigen

@ -1,17 +1,17 @@
From c7b127737d0df2cfbbae9fa5abe6bbb85312139a Mon Sep 17 00:00:00 2001 From 5edc0ce11f85c023f0d9afb33dc152d0e26bd15f Mon Sep 17 00:00:00 2001
From: md_5 <md_5@live.com.au> From: md_5 <md_5@live.com.au>
Date: Sun, 3 Feb 2013 12:28:17 +1100 Date: Sun, 3 Feb 2013 12:28:17 +1100
Subject: [PATCH] Tick loop optimization - sleep for as long as possible. Subject: [PATCH] Tick loop optimization - sleep for as long as possible.
--- ---
.../java/net/minecraft/server/MinecraftServer.java | 50 +++++++++------------- .../java/net/minecraft/server/MinecraftServer.java | 50 +++++++++-------------
src/main/java/org/bukkit/craftbukkit/Spigot.java | 1 + src/main/java/org/bukkit/craftbukkit/Spigot.java | 2 +
.../craftbukkit/command/TicksPerSecondCommand.java | 35 +++++++++++++++ .../craftbukkit/command/TicksPerSecondCommand.java | 35 +++++++++++++++
3 files changed, 56 insertions(+), 30 deletions(-) 3 files changed, 57 insertions(+), 30 deletions(-)
create mode 100644 src/main/java/org/bukkit/craftbukkit/command/TicksPerSecondCommand.java create mode 100644 src/main/java/org/bukkit/craftbukkit/command/TicksPerSecondCommand.java
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 955a3ac..99a6cf4 100644 index 4bdf8aa..128016f 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java --- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -86,6 +86,12 @@ public abstract class MinecraftServer implements ICommandListener, Runnable, IMo @@ -86,6 +86,12 @@ public abstract class MinecraftServer implements ICommandListener, Runnable, IMo
@ -82,17 +82,18 @@ index 955a3ac..99a6cf4 100644
this.a((CrashReport) null); this.a((CrashReport) null);
} }
diff --git a/src/main/java/org/bukkit/craftbukkit/Spigot.java b/src/main/java/org/bukkit/craftbukkit/Spigot.java diff --git a/src/main/java/org/bukkit/craftbukkit/Spigot.java b/src/main/java/org/bukkit/craftbukkit/Spigot.java
index c712b52..582dbab 100644 index 5827820..1ead152 100644
--- a/src/main/java/org/bukkit/craftbukkit/Spigot.java --- a/src/main/java/org/bukkit/craftbukkit/Spigot.java
+++ b/src/main/java/org/bukkit/craftbukkit/Spigot.java +++ b/src/main/java/org/bukkit/craftbukkit/Spigot.java
@@ -6,6 +6,7 @@ import org.bukkit.configuration.file.YamlConfiguration; @@ -6,6 +6,8 @@ import org.bukkit.configuration.file.YamlConfiguration;
public class Spigot { public class Spigot {
public static void initialize(CraftServer server, SimpleCommandMap commandMap, YamlConfiguration configuration) {
commandMap.register("bukkit", new org.bukkit.craftbukkit.command.RestartCommand("restart"));
+ commandMap.register("bukkit", new org.bukkit.craftbukkit.command.TicksPerSecondCommand("tps"));
int timeout = configuration.getInt("settings.timeout-time", 300); public static void initialize(CraftServer server, SimpleCommandMap commandMap, YamlConfiguration configuration) {
if (timeout == 180) { + commandMap.register("bukkit", new org.bukkit.craftbukkit.command.TicksPerSecondCommand("tps"));
+
server.whitelistMessage = configuration.getString("settings.whitelist-message", server.whitelistMessage);
server.stopMessage = configuration.getString("settings.stop-message", server.stopMessage);
server.logCommands = configuration.getBoolean("settings.log-commands", true);
diff --git a/src/main/java/org/bukkit/craftbukkit/command/TicksPerSecondCommand.java b/src/main/java/org/bukkit/craftbukkit/command/TicksPerSecondCommand.java diff --git a/src/main/java/org/bukkit/craftbukkit/command/TicksPerSecondCommand.java b/src/main/java/org/bukkit/craftbukkit/command/TicksPerSecondCommand.java
new file mode 100644 new file mode 100644
index 0000000..f114a31 index 0000000..f114a31

Datei anzeigen

@ -1,4 +1,4 @@
From 4383e778b06659440cd8ce0e62366b035387c6d1 Mon Sep 17 00:00:00 2001 From affa8e15e1628d9210a4ace9cb14214cd19ec404 Mon Sep 17 00:00:00 2001
From: md_5 <md_5@live.com.au> From: md_5 <md_5@live.com.au>
Date: Thu, 14 Feb 2013 17:32:20 +1100 Date: Thu, 14 Feb 2013 17:32:20 +1100
Subject: [PATCH] Netty Subject: [PATCH] Netty
@ -271,7 +271,7 @@ index 0000000..f25af14
+} +}
diff --git a/src/main/java/org/spigotmc/netty/NettyNetworkManager.java b/src/main/java/org/spigotmc/netty/NettyNetworkManager.java diff --git a/src/main/java/org/spigotmc/netty/NettyNetworkManager.java b/src/main/java/org/spigotmc/netty/NettyNetworkManager.java
new file mode 100644 new file mode 100644
index 0000000..baca853 index 0000000..fe978fe
--- /dev/null --- /dev/null
+++ b/src/main/java/org/spigotmc/netty/NettyNetworkManager.java +++ b/src/main/java/org/spigotmc/netty/NettyNetworkManager.java
@@ -0,0 +1,229 @@ @@ -0,0 +1,229 @@

Datei anzeigen

@ -1,4 +1,4 @@
From 805e4bb891c7e5a8bcdec220fb952fec33cbc1dd Mon Sep 17 00:00:00 2001 From f097ee841d58b9a3051598d193d24c726331e668 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co> From: Aikar <aikar@aikar.co>
Date: Sat, 16 Feb 2013 19:45:09 +1100 Date: Sat, 16 Feb 2013 19:45:09 +1100
Subject: [PATCH] Entity Activation Range# This feature gives 3 new Subject: [PATCH] Entity Activation Range# This feature gives 3 new
@ -10,12 +10,12 @@ This change can have dramatic impact on gameplay if configured too low. Balance
--- ---
src/main/java/net/minecraft/server/Entity.java | 8 ++ src/main/java/net/minecraft/server/Entity.java | 8 ++
.../java/net/minecraft/server/EntityArrow.java | 2 +- .../java/net/minecraft/server/EntityArrow.java | 2 +-
src/main/java/net/minecraft/server/World.java | 10 +- src/main/java/net/minecraft/server/World.java | 3 +-
.../java/org/bukkit/craftbukkit/CraftWorld.java | 13 ++ .../java/org/bukkit/craftbukkit/CraftWorld.java | 13 ++
src/main/java/org/bukkit/craftbukkit/Spigot.java | 149 +++++++++++++++++++++ src/main/java/org/bukkit/craftbukkit/Spigot.java | 149 +++++++++++++++++++++
.../java/org/bukkit/event/WorldTimingsHandler.java | 2 + .../java/org/bukkit/event/WorldTimingsHandler.java | 2 +
src/main/resources/configurations/bukkit.yml | 3 + src/main/resources/configurations/bukkit.yml | 3 +
7 files changed, 185 insertions(+), 2 deletions(-) 7 files changed, 178 insertions(+), 2 deletions(-)
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index d0a58f8..9da5035 100644 index d0a58f8..9da5035 100644
@ -57,7 +57,7 @@ index 916b9dc..bdd18f6 100644
public int shake = 0; public int shake = 0;
public Entity shooter; public Entity shooter;
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index cd7ad64..53834a9 100644 index 9f05a52..b1ccf1f 100644
--- a/src/main/java/net/minecraft/server/World.java --- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java
@@ -1241,6 +1241,7 @@ public abstract class World implements IBlockAccess { @@ -1241,6 +1241,7 @@ public abstract class World implements IBlockAccess {
@ -68,21 +68,7 @@ index cd7ad64..53834a9 100644
timings.entityTick.startTiming(); // Spigot timings.entityTick.startTiming(); // Spigot
for (i = 0; i < this.entityList.size(); ++i) { for (i = 0; i < this.entityList.size(); ++i) {
entity = (Entity) this.entityList.get(i); entity = (Entity) this.entityList.get(i);
@@ -1405,6 +1406,13 @@ public abstract class World implements IBlockAccess { @@ -1404,7 +1405,7 @@ public abstract class World implements IBlockAccess {
if (entity == null) {
return;
}
+ if (!entity.isActivated && !org.bukkit.craftbukkit.Spigot.checkIfActive(entity)) {
+ if (entity.vehicle == null) {
+ entity.ticksLived++;
+ }
+ return;
+ }
+ entity.isActivated = entity.defaultActivationState;
try {
tickEntity(entity, flag);
} catch (Exception e) {
@@ -1434,7 +1442,7 @@ public abstract class World implements IBlockAccess {
int j = MathHelper.floor(entity.locZ); int j = MathHelper.floor(entity.locZ);
byte b0 = 32; byte b0 = 32;
@ -137,7 +123,7 @@ index 21bd64a..a083ae4 100644
public Block getBlockAt(int x, int y, int z) { public Block getBlockAt(int x, int y, int z) {
diff --git a/src/main/java/org/bukkit/craftbukkit/Spigot.java b/src/main/java/org/bukkit/craftbukkit/Spigot.java diff --git a/src/main/java/org/bukkit/craftbukkit/Spigot.java b/src/main/java/org/bukkit/craftbukkit/Spigot.java
index 6eeabec..2a5fd45 100644 index 1ead152..a5b05ed 100644
--- a/src/main/java/org/bukkit/craftbukkit/Spigot.java --- a/src/main/java/org/bukkit/craftbukkit/Spigot.java
+++ b/src/main/java/org/bukkit/craftbukkit/Spigot.java +++ b/src/main/java/org/bukkit/craftbukkit/Spigot.java
@@ -1,7 +1,10 @@ @@ -1,7 +1,10 @@
@ -150,8 +136,8 @@ index 6eeabec..2a5fd45 100644
+import java.util.List; +import java.util.List;
public class Spigot { public class Spigot {
public static void initialize(CraftServer server, SimpleCommandMap commandMap, YamlConfiguration configuration) {
@@ -36,5 +39,151 @@ public class Spigot { @@ -27,5 +30,151 @@ public class Spigot {
if (server.chunkGCPeriod == 0) { if (server.chunkGCPeriod == 0) {
server.getLogger().severe("[Spigot] You should not disable chunk-gc, unexpected behaviour may occur!"); server.getLogger().severe("[Spigot] You should not disable chunk-gc, unexpected behaviour may occur!");
} }
@ -323,10 +309,10 @@ index bb0c191..6a4a05e 100644
} }
} }
diff --git a/src/main/resources/configurations/bukkit.yml b/src/main/resources/configurations/bukkit.yml diff --git a/src/main/resources/configurations/bukkit.yml b/src/main/resources/configurations/bukkit.yml
index 3122a14..5933a88 100644 index 548f7c1..eea3265 100644
--- a/src/main/resources/configurations/bukkit.yml --- a/src/main/resources/configurations/bukkit.yml
+++ b/src/main/resources/configurations/bukkit.yml +++ b/src/main/resources/configurations/bukkit.yml
@@ -50,6 +50,9 @@ world-settings: @@ -47,6 +47,9 @@ world-settings:
sugar-growth-modifier: 100 sugar-growth-modifier: 100
tree-growth-modifier: 100 tree-growth-modifier: 100
mushroom-growth-modifier: 100 mushroom-growth-modifier: 100

Datei anzeigen

@ -1,4 +1,4 @@
From a5d69c6fac6168ba145722a1e79027428c015bc1 Mon Sep 17 00:00:00 2001 From 4210bd504bcd504a8557dd1e3c5cd584ea8086ad Mon Sep 17 00:00:00 2001
From: md_5 <md_5@live.com.au> From: md_5 <md_5@live.com.au>
Date: Sat, 16 Feb 2013 19:05:15 +1100 Date: Sat, 16 Feb 2013 19:05:15 +1100
Subject: [PATCH] Infrequently send tab list updates. Subject: [PATCH] Infrequently send tab list updates.
@ -36,7 +36,7 @@ index d13fa19..3fc66aa 100644
public void sendAll(Packet packet) { public void sendAll(Packet packet) {
diff --git a/src/main/java/org/bukkit/craftbukkit/Spigot.java b/src/main/java/org/bukkit/craftbukkit/Spigot.java diff --git a/src/main/java/org/bukkit/craftbukkit/Spigot.java b/src/main/java/org/bukkit/craftbukkit/Spigot.java
index 2a5fd45..e0ecf21 100644 index a5b05ed..8c67fc3 100644
--- a/src/main/java/org/bukkit/craftbukkit/Spigot.java --- a/src/main/java/org/bukkit/craftbukkit/Spigot.java
+++ b/src/main/java/org/bukkit/craftbukkit/Spigot.java +++ b/src/main/java/org/bukkit/craftbukkit/Spigot.java
@@ -7,6 +7,7 @@ import org.bukkit.configuration.file.YamlConfiguration; @@ -7,6 +7,7 @@ import org.bukkit.configuration.file.YamlConfiguration;
@ -44,10 +44,10 @@ index 2a5fd45..e0ecf21 100644
public class Spigot { public class Spigot {
+ public static boolean tabPing = false; + public static boolean tabPing = false;
public static void initialize(CraftServer server, SimpleCommandMap commandMap, YamlConfiguration configuration) { public static void initialize(CraftServer server, SimpleCommandMap commandMap, YamlConfiguration configuration) {
commandMap.register("bukkit", new org.bukkit.craftbukkit.command.RestartCommand("restart"));
commandMap.register("bukkit", new org.bukkit.craftbukkit.command.TicksPerSecondCommand("tps")); commandMap.register("bukkit", new org.bukkit.craftbukkit.command.TicksPerSecondCommand("tps"));
@@ -40,6 +41,7 @@ public class Spigot { @@ -31,6 +32,7 @@ public class Spigot {
server.getLogger().severe("[Spigot] You should not disable chunk-gc, unexpected behaviour may occur!"); server.getLogger().severe("[Spigot] You should not disable chunk-gc, unexpected behaviour may occur!");
} }
@ -56,10 +56,10 @@ index 2a5fd45..e0ecf21 100644
/** /**
diff --git a/src/main/resources/configurations/bukkit.yml b/src/main/resources/configurations/bukkit.yml diff --git a/src/main/resources/configurations/bukkit.yml b/src/main/resources/configurations/bukkit.yml
index 5933a88..8ddda07 100644 index eea3265..a35f3dd 100644
--- a/src/main/resources/configurations/bukkit.yml --- a/src/main/resources/configurations/bukkit.yml
+++ b/src/main/resources/configurations/bukkit.yml +++ b/src/main/resources/configurations/bukkit.yml
@@ -35,6 +35,7 @@ settings: @@ -32,6 +32,7 @@ settings:
spam-exclusions: spam-exclusions:
- /skill - /skill
map-send-interval: 10000 map-send-interval: 10000

Datei anzeigen

@ -1,4 +1,4 @@
From 67f4933a29bc5317157dbb033c8400ca26df6909 Mon Sep 17 00:00:00 2001 From f7fb19c794aab4eb7dcd6d052f367830714a79f3 Mon Sep 17 00:00:00 2001
From: Mike Primm <mike@primmhome.com> From: Mike Primm <mike@primmhome.com>
Date: Wed, 20 Feb 2013 23:07:53 -0500 Date: Wed, 20 Feb 2013 23:07:53 -0500
Subject: [PATCH] Optimize getTileEntities performance Subject: [PATCH] Optimize getTileEntities performance

Datei anzeigen

@ -1,4 +1,4 @@
From 58eaa4790c1875741e06017f81a32801cfc3f4ad Mon Sep 17 00:00:00 2001 From d5d64c9cc4c90075cca6aa720e5cab3109a4e5f1 Mon Sep 17 00:00:00 2001
From: shakytom <tom.roberts00@gmail.com> From: shakytom <tom.roberts00@gmail.com>
Date: Wed, 20 Feb 2013 22:34:38 -0500 Date: Wed, 20 Feb 2013 22:34:38 -0500
Subject: [PATCH] Improved tile entity lookup for chunk sending Subject: [PATCH] Improved tile entity lookup for chunk sending

Datei anzeigen

@ -1,4 +1,4 @@
From 9371abd26d6cac2503d48f67ce8a6580349027bd Mon Sep 17 00:00:00 2001 From ce3485e724f259f36bb13acbfdea7e7bb381b143 Mon Sep 17 00:00:00 2001
From: md_5 <md_5@live.com.au> From: md_5 <md_5@live.com.au>
Date: Sat, 23 Feb 2013 08:58:35 +1100 Date: Sat, 23 Feb 2013 08:58:35 +1100
Subject: [PATCH] Metrics. Rewrite the Metrics system to be closer to the Subject: [PATCH] Metrics. Rewrite the Metrics system to be closer to the
@ -11,7 +11,7 @@ Subject: [PATCH] Metrics. Rewrite the Metrics system to be closer to the
create mode 100644 src/main/java/org/spigotmc/Metrics.java create mode 100644 src/main/java/org/spigotmc/Metrics.java
diff --git a/src/main/java/org/bukkit/craftbukkit/Spigot.java b/src/main/java/org/bukkit/craftbukkit/Spigot.java diff --git a/src/main/java/org/bukkit/craftbukkit/Spigot.java b/src/main/java/org/bukkit/craftbukkit/Spigot.java
index e0ecf21..95ff3c1 100644 index 8c67fc3..5729cd6 100644
--- a/src/main/java/org/bukkit/craftbukkit/Spigot.java --- a/src/main/java/org/bukkit/craftbukkit/Spigot.java
+++ b/src/main/java/org/bukkit/craftbukkit/Spigot.java +++ b/src/main/java/org/bukkit/craftbukkit/Spigot.java
@@ -1,13 +1,19 @@ @@ -1,13 +1,19 @@
@ -31,10 +31,10 @@ index e0ecf21..95ff3c1 100644
public class Spigot { public class Spigot {
public static boolean tabPing = false; public static boolean tabPing = false;
+ private static Metrics metrics; + private static Metrics metrics;
public static void initialize(CraftServer server, SimpleCommandMap commandMap, YamlConfiguration configuration) { public static void initialize(CraftServer server, SimpleCommandMap commandMap, YamlConfiguration configuration) {
commandMap.register("bukkit", new org.bukkit.craftbukkit.command.RestartCommand("restart"));
commandMap.register("bukkit", new org.bukkit.craftbukkit.command.TicksPerSecondCommand("tps")); commandMap.register("bukkit", new org.bukkit.craftbukkit.command.TicksPerSecondCommand("tps"));
@@ -42,6 +48,15 @@ public class Spigot { @@ -33,6 +39,15 @@ public class Spigot {
} }
tabPing = configuration.getBoolean("settings.tab-ping", tabPing); tabPing = configuration.getBoolean("settings.tab-ping", tabPing);