diff --git a/Plugins/BungeeSigns/.classpath b/Plugins/BungeeSigns/.classpath
deleted file mode 100644
index fbeb69b51..000000000
--- a/Plugins/BungeeSigns/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
diff --git a/Plugins/BungeeSigns/.project b/Plugins/BungeeSigns/.project
deleted file mode 100644
index 61b31c543..000000000
--- a/Plugins/BungeeSigns/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
- Mineplex.Bungee.BungeeSigns
-
-
-
-
-
- org.eclipse.jdt.core.javabuilder
-
-
-
-
-
- org.eclipse.jdt.core.javanature
-
-
diff --git a/Plugins/BungeeSigns/.settings/org.eclipse.jdt.core.prefs b/Plugins/BungeeSigns/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 7341ab168..000000000
--- a/Plugins/BungeeSigns/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,11 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.7
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.7
diff --git a/Plugins/BungeeSigns/plugin.yml b/Plugins/BungeeSigns/plugin.yml
deleted file mode 100644
index ce1e6bc40..000000000
--- a/Plugins/BungeeSigns/plugin.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-name: BungeeSigns
-main: mineplex.bungee.BungeeSigns.BungeeSigns
-version: 1
-author: defek7
diff --git a/Plugins/Mineplex.Bungee.Mineplexer/.externalToolBuilders/Mineplexer.launch b/Plugins/Mineplex.Bungee.Mineplexer/.externalToolBuilders/Mineplexer2.launch
similarity index 97%
rename from Plugins/Mineplex.Bungee.Mineplexer/.externalToolBuilders/Mineplexer.launch
rename to Plugins/Mineplex.Bungee.Mineplexer/.externalToolBuilders/Mineplexer2.launch
index 3921867d6..bab52abb3 100644
--- a/Plugins/Mineplex.Bungee.Mineplexer/.externalToolBuilders/Mineplexer.launch
+++ b/Plugins/Mineplex.Bungee.Mineplexer/.externalToolBuilders/Mineplexer2.launch
@@ -10,7 +10,7 @@
-
+
diff --git a/Plugins/Mineplex.Bungee.Mineplexer/src/mineplex/bungee/Mineplexer.java b/Plugins/Mineplex.Bungee.Mineplexer/src/mineplex/bungee/Mineplexer.java
index 0fb592574..4c9cf2518 100644
--- a/Plugins/Mineplex.Bungee.Mineplexer/src/mineplex/bungee/Mineplexer.java
+++ b/Plugins/Mineplex.Bungee.Mineplexer/src/mineplex/bungee/Mineplexer.java
@@ -4,8 +4,8 @@ import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
-import mineplex.bungee.bungeeSigns.BungeeSigns;
import mineplex.bungee.lobbyBalancer.LobbyBalancer;
+import mineplex.bungee.motd.MotdManager;
import mineplex.bungee.playerCount.PlayerCount;
import net.md_5.bungee.api.plugin.Plugin;
@@ -14,9 +14,8 @@ public class Mineplexer extends Plugin
@Override
public void onEnable()
{
- new BungeeSigns(this);
-
//_dynamicServers = new GlobalServer(this);
+ new MotdManager(this);
new LobbyBalancer(this);
new PlayerCount(this);
diff --git a/Plugins/Mineplex.Bungee.Mineplexer/src/mineplex/bungee/bungeeSigns/BungeeSigns.java b/Plugins/Mineplex.Bungee.Mineplexer/src/mineplex/bungee/bungeeSigns/BungeeSigns.java
deleted file mode 100644
index 0b83dc262..000000000
--- a/Plugins/Mineplex.Bungee.Mineplexer/src/mineplex/bungee/bungeeSigns/BungeeSigns.java
+++ /dev/null
@@ -1,223 +0,0 @@
-package mineplex.bungee.bungeeSigns;
-
-import java.io.ByteArrayInputStream;
-import java.io.DataInput;
-import java.io.DataInputStream;
-import java.io.DataOutput;
-import java.io.DataOutputStream;
-import java.io.IOException;
-import java.net.ConnectException;
-import java.net.Socket;
-import java.net.SocketTimeoutException;
-
-import com.google.common.io.ByteArrayDataOutput;
-import com.google.common.io.ByteStreams;
-
-import net.md_5.bungee.api.config.ServerInfo;
-import net.md_5.bungee.api.connection.Connection;
-import net.md_5.bungee.api.event.PluginMessageEvent;
-import net.md_5.bungee.api.plugin.Listener;
-import net.md_5.bungee.api.plugin.Plugin;
-import net.md_5.bungee.event.EventHandler;
-import net.md_5.bungee.protocol.packet.PacketFAPluginMessage;
-
-public class BungeeSigns implements Listener
-{
- private Plugin _plugin;
-
- public BungeeSigns(Plugin plugin)
- {
- _plugin = plugin;
-
- _plugin.getProxy().getPluginManager().registerListener(_plugin, this);
- _plugin.getProxy().registerChannel("BungeeSigns");
- }
-
- @EventHandler
- public void ReceiveServerRequest(final PluginMessageEvent event)
- {
- if (event.getTag().equals("BungeeSigns"))
- {
- DataInputStream in = null;
-
- try
- {
- in = new DataInputStream(new ByteArrayInputStream(event.getData()));
- final ServerInfo serverInfo = _plugin.getProxy().getServerInfo(in.readUTF());
-
- in.close();
-
- if (serverInfo != null)
- {
- new Thread() {
- public void run()
- {
- SendServerInfo(serverInfo, event.getSender());
- }
- }.start();
- }
- }
- catch (IOException e)
- {
- System.out.println("[BungeeSigns] Error retrieving serverInfo.");
- }
- finally
- {
- try
- {
- if (in != null)
- {
- in.close();
- }
- }
- catch (Exception e)
- {
-
- }
- }
- }
- }
-
- protected void SendServerInfo(ServerInfo serverInfo, Connection sender)
- {
- Socket socket = null;
- DataInputStream dataInputStream = null;
- DataOutputStream dataOutputStream = null;
-
- try
- {
- socket = new Socket();
- socket.setSoTimeout(3000);
- socket.setTcpNoDelay(true);
- socket.setTrafficClass(18);
- socket.connect(serverInfo.getAddress(), 3000);
- dataInputStream = new DataInputStream(socket.getInputStream());
- dataOutputStream = new DataOutputStream(socket.getOutputStream());
-
- dataOutputStream.writeByte(254);
- dataOutputStream.writeByte(1);
- dataOutputStream.writeByte(254);
- writeString("MC|PingHost", dataOutputStream);
- dataOutputStream.writeShort(3 + 2 * serverInfo.getAddress().getHostString().length() + 4);
- dataOutputStream.writeByte(74);
- writeString(serverInfo.getAddress().getHostString(), dataOutputStream);
- dataOutputStream.writeInt(serverInfo.getAddress().getPort());
-
- if (dataInputStream.read() != 255)
- {
- return;
- }
-
- String var6 = readString(dataInputStream, 256);
-
- String[] var27;
-
- if (var6.startsWith("\u00a7") && var6.length() > 1)
- {
- var27 = var6.substring(1).split("\u0000");
-
- ByteArrayDataOutput out = ByteStreams.newDataOutput();
-
- out.writeUTF(serverInfo.getName());
- out.writeUTF(var27[3]);
- out.writeInt(Integer.parseInt(var27[4]));
- out.writeInt(Integer.parseInt(var27[5]));
-
- byte[] b = out.toByteArray();
-
- if (b.length != 0)
- {
- sender.unsafe().sendPacket(new PacketFAPluginMessage("BungeeSigns", b));
- }
- }
- }
- catch (SocketTimeoutException e)
- {
- ;
- }
- catch (ConnectException e)
- {
- ;
- }
- catch(IOException e)
- {
- System.out.println("[BungeeSigns] Error pinging " + serverInfo.getName() + "(" + serverInfo.getAddress().getHostString() + ":" + serverInfo.getAddress().getPort());
- }
- finally
- {
- try
- {
- if (dataInputStream != null)
- {
- dataInputStream.close();
- }
- }
- catch (Exception exception)
- {
- ;
- }
-
- try
- {
- if (dataOutputStream != null)
- {
- dataOutputStream.close();
- }
- }
- catch (Exception exception)
- {
- ;
- }
-
- try
- {
- if (socket != null)
- {
- socket.close();
- }
- }
- catch (Exception exception)
- {
- ;
- }
- }
- }
-
- public static void writeString(String par0Str, DataOutput par1DataOutput) throws IOException
- {
- if (par0Str.length() > 32767)
- {
- throw new IOException("String too big");
- }
- else
- {
- par1DataOutput.writeShort(par0Str.length());
- par1DataOutput.writeChars(par0Str);
- }
- }
-
- public static String readString(DataInput par0DataInput, int par1) throws IOException
- {
- short var2 = par0DataInput.readShort();
-
- if (var2 > par1)
- {
- throw new IOException("Received string length longer than maximum allowed (" + var2 + " > " + par1 + ")");
- }
- else if (var2 < 0)
- {
- throw new IOException("Received string length is less than zero! Weird string!");
- }
- else
- {
- StringBuilder var3 = new StringBuilder();
-
- for (int var4 = 0; var4 < var2; ++var4)
- {
- var3.append(par0DataInput.readChar());
- }
-
- return var3.toString();
- }
- }
-}
diff --git a/Plugins/Mineplex.Bungee.Mineplexer/src/mineplex/bungee/lobbyBalancer/LobbyBalancer.java b/Plugins/Mineplex.Bungee.Mineplexer/src/mineplex/bungee/lobbyBalancer/LobbyBalancer.java
index 19bf74191..f019ad137 100644
--- a/Plugins/Mineplex.Bungee.Mineplexer/src/mineplex/bungee/lobbyBalancer/LobbyBalancer.java
+++ b/Plugins/Mineplex.Bungee.Mineplexer/src/mineplex/bungee/lobbyBalancer/LobbyBalancer.java
@@ -27,7 +27,7 @@ public class LobbyBalancer implements Listener, Runnable
{
_plugin = plugin;
_repository = new LobbyBalancerRepository();
- _repository.initialize();
+ _repository.initialize(true);
loadLobbyServers();
diff --git a/Plugins/Mineplex.Bungee.Mineplexer/src/mineplex/bungee/lobbyBalancer/LobbyBalancerRepository.java b/Plugins/Mineplex.Bungee.Mineplexer/src/mineplex/bungee/lobbyBalancer/LobbyBalancerRepository.java
index b6a77c39d..b0dbfe263 100644
--- a/Plugins/Mineplex.Bungee.Mineplexer/src/mineplex/bungee/lobbyBalancer/LobbyBalancerRepository.java
+++ b/Plugins/Mineplex.Bungee.Mineplexer/src/mineplex/bungee/lobbyBalancer/LobbyBalancerRepository.java
@@ -13,12 +13,15 @@ public class LobbyBalancerRepository
private String _connectionString = "jdbc:mysql://sql.mineplex.com:3306/ServerStatus";
private String _userName = "root";
private String _password = "tAbechAk3wR7tuTh";
+ private boolean _us;
private static String CREATE_TABLE = "CREATE TABLE IF NOT EXISTS ServerStatus (id INT NOT NULL AUTO_INCREMENT, serverName VARCHAR(256), serverGroup VARCHAR(256), address VARCHAR(256), updated LONG, motd VARCHAR(256), players INT, maxPlayers INT, tps INT, ram INT, maxRam INT, PRIMARY KEY (id));";
- private static String RETRIEVE_SERVER_STATUSES = "SELECT serverName, address, motd, players, maxPlayers FROM ServerStatus WHERE TIME_TO_SEC(TIMEDIFF(now(), ServerStatus.updated)) < 10;";
+ private static String RETRIEVE_SERVER_STATUSES = "SELECT ServerStatus.serverName, ServerStatus.address, motd, players, maxPlayers FROM ServerStatus INNER JOIN DynamicServers ON ServerStatus.address LIKE CONCAT(DynamicServers.address, '%') WHERE DynamicServers.US = ? AND TIME_TO_SEC(TIMEDIFF(now(), ServerStatus.updated)) < 10;";
- public void initialize()
+ public void initialize(boolean us)
{
+ _us = us;
+
Connection connection = null;
PreparedStatement preparedStatement = null;
@@ -74,6 +77,8 @@ public class LobbyBalancerRepository
connection = DriverManager.getConnection(_connectionString, _userName, _password);
preparedStatement = connection.prepareStatement(RETRIEVE_SERVER_STATUSES);
+ preparedStatement.setBoolean(1, _us);
+
resultSet = preparedStatement.executeQuery();
while (resultSet.next())
diff --git a/Plugins/Mineplex.Bungee.Mineplexer/src/mineplex/bungee/playerCount/PlayerCountRepository.java b/Plugins/Mineplex.Bungee.Mineplexer/src/mineplex/bungee/playerCount/PlayerCountRepository.java
index c0b250116..fdfac5111 100644
--- a/Plugins/Mineplex.Bungee.Mineplexer/src/mineplex/bungee/playerCount/PlayerCountRepository.java
+++ b/Plugins/Mineplex.Bungee.Mineplexer/src/mineplex/bungee/playerCount/PlayerCountRepository.java
@@ -14,7 +14,7 @@ public class PlayerCountRepository
private String _password = "tAbechAk3wR7tuTh";
private static String CREATE_TABLE = "CREATE TABLE IF NOT EXISTS BungeeServers (id INT NOT NULL AUTO_INCREMENT, address VARCHAR(256), updated LONG, players INT, maxPlayers INT, ram INT, maxRam INT, PRIMARY KEY (id));";
- private static String INSERT_PLAYER_COUNT = "INSERT INTO BungeeServers values(default, ?, now(), ?, ?, ?, ?);";
+ private static String INSERT_PLAYER_COUNT = "INSERT INTO BungeeServers(address, updated, players, maxPlayers, ram, maxRam) values(?, now(), ?, ?, ?, ?);";
private static String UPDATE_PLAYER_COUNT = "UPDATE BungeeServers SET updated = now(), players = ?, maxPlayers = ?, ram = ?, maxRam = ? WHERE id = ?;";
private static String RETRIEVE_ID = "SELECT id FROM BungeeServers WHERE address = ?;";
private static String RETRIEVE_PLAYER_COUNT = "SELECT SUM(players) AS playerCount, SUM(maxPlayers) AS maxPlayerCount FROM BungeeServers WHERE TIME_TO_SEC(TIMEDIFF(now(), BungeeServers.updated)) < 10;";
diff --git a/Plugins/Mineplex.Core/src/mineplex/core/disguise/DisguiseManager.java b/Plugins/Mineplex.Core/src/mineplex/core/disguise/DisguiseManager.java
index c197d321c..f81a9de74 100644
--- a/Plugins/Mineplex.Core/src/mineplex/core/disguise/DisguiseManager.java
+++ b/Plugins/Mineplex.Core/src/mineplex/core/disguise/DisguiseManager.java
@@ -10,6 +10,7 @@ import java.util.Map.Entry;
import net.minecraft.server.v1_6_R3.ChunkAddEntityEvent;
import net.minecraft.server.v1_6_R3.EntityPlayer;
import net.minecraft.server.v1_6_R3.Packet;
+import net.minecraft.server.v1_6_R3.Packet18ArmAnimation;
import net.minecraft.server.v1_6_R3.Packet20NamedEntitySpawn;
import net.minecraft.server.v1_6_R3.Packet24MobSpawn;
import net.minecraft.server.v1_6_R3.Packet28EntityVelocity;
@@ -302,6 +303,15 @@ public class DisguiseManager extends MiniPlugin implements IPacketRunnable
return false;
}
}
+ else if (packet instanceof Packet18ArmAnimation)
+ {
+ int entityId = ((Packet18ArmAnimation)packet).a;
+
+ if (_spawnPacketMap.containsKey(entityId) && owner.getEntityId() != entityId)
+ {
+ return false;
+ }
+ }
else if (packet instanceof Packet40EntityMetadata)
{
int entityId = ((Packet40EntityMetadata)packet).a;
diff --git a/Plugins/Mineplex.Core/src/mineplex/core/status/ServerStatusRepository.java b/Plugins/Mineplex.Core/src/mineplex/core/status/ServerStatusRepository.java
index 1d99114ce..fb671030d 100644
--- a/Plugins/Mineplex.Core/src/mineplex/core/status/ServerStatusRepository.java
+++ b/Plugins/Mineplex.Core/src/mineplex/core/status/ServerStatusRepository.java
@@ -16,11 +16,11 @@ public class ServerStatusRepository
private String _password;
private static String CREATE_TABLE = "CREATE TABLE IF NOT EXISTS ServerStatus (id INT NOT NULL AUTO_INCREMENT, serverName VARCHAR(256), serverGroup VARCHAR(256), address VARCHAR(256), updated LONG, lastTimeWithPlayers LONG, motd VARCHAR(256), players INT, maxPlayers INT, tps INT, ram INT, maxRam INT, PRIMARY KEY (id));";
- private static String INSERT_PLAYER_COUNT = "INSERT INTO ServerStatus (serverName, serverGroup, address, updated, motd, players, maxPlayers, tps, ram, maxRam) values(default, ?, ?, ?, now(), 'Configuring server.', ?, ?, 0, ?, ?);";
+ private static String INSERT_PLAYER_COUNT = "INSERT INTO ServerStatus (serverName, serverGroup, address, updated, motd, players, maxPlayers, tps, ram, maxRam) values(?, ?, ?, now(), 'Configuring server.', ?, ?, 0, ?, ?);";
private static String UPDATE_PLAYER_COUNT_WITH_PLAYERS = "UPDATE ServerStatus SET updated = now(), serverName = ?, serverGroup = ?, motd = ?, players = ?, maxPlayers = ?, tps = ?, ram = ?, maxRam = ?, lastTimeWithPlayers = now() WHERE id = ?;";
private static String UPDATE_PLAYER_COUNT_WITHOUT_PLAYERS = "UPDATE ServerStatus SET updated = now(), serverName = ?, serverGroup = ?, motd = ?, players = ?, maxPlayers = ?, tps = ?, ram = ?, maxRam = ? WHERE id = ?;";
private static String RETRIEVE_ID = "SELECT id FROM ServerStatus WHERE address = ?;";
- private static String RETRIEVE_SERVER_STATUSES = "SELECT serverName, motd, players, maxPlayers FROM ServerStatus WHERE TIME_TO_SEC(TIMEDIFF(now(), ServerStatus.updated)) < 10;";
+ private static String RETRIEVE_SERVER_STATUSES = "SELECT serverName, motd, players, maxPlayers FROM ServerStatus INNER JOIN DynamicServers ON ServerStatus.address LIKE CONCAT(DynamicServers.address, '%') WHERE DynamicServers.US = 'true' AND TIME_TO_SEC(TIMEDIFF(now(), ServerStatus.updated)) < 10;";
private int _id = -1;
private String _serverName;
diff --git a/Plugins/Mineplex.ServerMonitor/src/mineplex/servermonitor/ServerMonitor.java b/Plugins/Mineplex.ServerMonitor/src/mineplex/servermonitor/ServerMonitor.java
index 14c212936..d95146856 100644
--- a/Plugins/Mineplex.ServerMonitor/src/mineplex/servermonitor/ServerMonitor.java
+++ b/Plugins/Mineplex.ServerMonitor/src/mineplex/servermonitor/ServerMonitor.java
@@ -79,6 +79,7 @@ public class ServerMonitor
int serversToAdd = Math.max(serverGroup.RequiredTotalServers - groupStatus.getTotalServers(), serverGroup.RequiredJoinableServers - groupStatus.getJoinableCount());
int serversToKill = groupStatus.EmptyServers.size() - serverGroup.RequiredJoinableServers;
+ int serverNum = groupStatus.getTotalServers() + 1;
if (serversToAdd > 0)
{
@@ -98,10 +99,10 @@ public class ServerMonitor
try
{
- process = new ProcessBuilder(new String[] {"/bin/sh", "-x", cmd, bestServer.Address, serverGroup.Prefix + "-" + (groupStatus.getTotalServers() + 1)}).start();
+ process = new ProcessBuilder(new String[] {"/bin/sh", "-x", cmd, bestServer.Address, serverGroup.ScriptName, serverGroup.Prefix + "-" + serverNum, "1"}).start();
process.waitFor();
BufferedReader reader=new BufferedReader(new InputStreamReader(process.getInputStream()));
- String line = reader.readLine();
+ String line = reader.readLine();
while(line != null)
{
@@ -124,6 +125,7 @@ public class ServerMonitor
bestServer.setServerGroupCount(serverGroup, bestServer.ServerGroupCount.containsKey(serverGroup.Name) ? (bestServer.ServerGroupCount.get(serverGroup.Name) + 1) : 1);
System.out.println("Sent start command to " + bestServer.Address + " for " + serverGroup.Prefix + "-" + (groupStatus.getTotalServers() + 1));
serversToAdd--;
+ serverNum++;
}
}
else if (serversToKill > 0)