Revert the revert of the revert.
This commit is contained in:
parent
d1be64d7e7
commit
e02bcd8b84
@ -5,6 +5,7 @@ import java.util.Iterator;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map.Entry;
|
import java.util.Map.Entry;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
import java.util.concurrent.atomic.AtomicInteger;
|
||||||
|
|
||||||
import mineplex.core.MiniPlugin;
|
import mineplex.core.MiniPlugin;
|
||||||
import mineplex.core.account.command.UpdateRank;
|
import mineplex.core.account.command.UpdateRank;
|
||||||
@ -48,8 +49,8 @@ public class CoreClientManager extends MiniPlugin
|
|||||||
|
|
||||||
private Object _clientLock = new Object();
|
private Object _clientLock = new Object();
|
||||||
|
|
||||||
private static int _clientsConnecting = 0;
|
private static AtomicInteger _clientsConnecting = new AtomicInteger(0);
|
||||||
private static int _clientsProcessing = 0;
|
private static AtomicInteger _clientsProcessing = new AtomicInteger(0);
|
||||||
|
|
||||||
public CoreClientManager(JavaPlugin plugin, String webServer)
|
public CoreClientManager(JavaPlugin plugin, String webServer)
|
||||||
{
|
{
|
||||||
@ -124,14 +125,16 @@ public class CoreClientManager extends MiniPlugin
|
|||||||
|
|
||||||
public int getPlayerCountIncludingConnecting()
|
public int getPlayerCountIncludingConnecting()
|
||||||
{
|
{
|
||||||
return Bukkit.getOnlinePlayers().size() + _clientsConnecting;
|
return Bukkit.getOnlinePlayers().size() + Math.max(0, _clientsConnecting.get());
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler(priority = EventPriority.LOWEST)
|
@EventHandler(priority = EventPriority.LOWEST)
|
||||||
public void AsyncLogin(AsyncPlayerPreLoginEvent event)
|
public void AsyncLogin(AsyncPlayerPreLoginEvent event)
|
||||||
{
|
{
|
||||||
_clientsConnecting++;
|
try
|
||||||
while (_clientsProcessing >= 5)
|
{
|
||||||
|
_clientsConnecting.incrementAndGet();
|
||||||
|
while (_clientsProcessing.get() >= 5)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@ -143,24 +146,20 @@ public class CoreClientManager extends MiniPlugin
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
_clientsProcessing++;
|
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
_clientsProcessing.incrementAndGet();
|
||||||
LoadClient(Add(event.getName()), event.getUniqueId(), event.getAddress().getHostAddress());
|
LoadClient(Add(event.getName()), event.getUniqueId(), event.getAddress().getHostAddress());
|
||||||
}
|
}
|
||||||
catch(Exception exception)
|
catch(Exception exception)
|
||||||
{
|
{
|
||||||
Logger.Instance.log(exception);
|
Logger.Instance.log(exception);
|
||||||
|
|
||||||
event.disallow(Result.KICK_OTHER, "Error retrieving information from web, please retry in a minute.");
|
event.disallow(Result.KICK_OTHER, "Error retrieving information from web, please retry in a minute.");
|
||||||
|
|
||||||
System.out.println(exception.getMessage());
|
System.out.println(exception.getMessage());
|
||||||
}
|
}
|
||||||
finally
|
finally
|
||||||
{
|
{
|
||||||
_clientsProcessing--;
|
_clientsProcessing.decrementAndGet();
|
||||||
_clientsConnecting--;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Bukkit.hasWhitelist() && !Get(event.getName()).GetRank().Has(Rank.MODERATOR))
|
if (Bukkit.hasWhitelist() && !Get(event.getName()).GetRank().Has(Rank.MODERATOR))
|
||||||
@ -176,6 +175,11 @@ public class CoreClientManager extends MiniPlugin
|
|||||||
event.disallow(Result.KICK_WHITELIST, "You are not whitelisted my friend.");
|
event.disallow(Result.KICK_WHITELIST, "You are not whitelisted my friend.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
_clientsConnecting.decrementAndGet();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void loadClientByName(final String playerName, final Runnable runnable)
|
public void loadClientByName(final String playerName, final Runnable runnable)
|
||||||
{
|
{
|
||||||
@ -436,6 +440,18 @@ public class CoreClientManager extends MiniPlugin
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void debug(UpdateEvent event)
|
||||||
|
{
|
||||||
|
if (event.getType() != UpdateType.SLOWER)
|
||||||
|
return;
|
||||||
|
|
||||||
|
System.out.println("=====");
|
||||||
|
System.out.println("Connecting : " + _clientsConnecting.get());
|
||||||
|
System.out.println("Processing : " + _clientsProcessing.get());
|
||||||
|
System.out.println("=====");
|
||||||
|
}
|
||||||
|
|
||||||
public void addStoredProcedureLoginProcessor(ILoginProcessor processor)
|
public void addStoredProcedureLoginProcessor(ILoginProcessor processor)
|
||||||
{
|
{
|
||||||
_loginProcessors.put(processor.getName(), processor);
|
_loginProcessors.put(processor.getName(), processor);
|
||||||
|
Loading…
Reference in New Issue
Block a user