Static GCM

keep-around/d31701866686f66088b78de2e29736ae36e55a68
Pingex aka Raphaël 9 years ago
parent c5b33ad415
commit 0eac4cd14a

@ -38,7 +38,7 @@ public class DiscordCommandableFramework
ClientBuilder builder = new ClientBuilder(); ClientBuilder builder = new ClientBuilder();
if(Configuration.isConnectionToken()) builder.withToken(Configuration.CONNECTION_TOKEN); if(Configuration.isConnectionToken()) builder.withToken(Configuration.CONNECTION_TOKEN);
else builder.withLogin(Configuration.CONNECTION_USERNAME, Configuration.CONNECTION_PASSWORD); else builder.withLogin(Configuration.CONNECTION_USERNAME, Configuration.CONNECTION_PASSWORD);
GatewayConnectionsManager.getInstance().registerConnection(builder); GatewayConnectionsManager.registerConnection(builder);
// Run plugins // Run plugins
PluginLoader.getInstance().bulkRunPlugins(); PluginLoader.getInstance().bulkRunPlugins();

@ -19,45 +19,23 @@ public class GatewayConnectionsManager
/** /**
* Main datastore * Main datastore
*/ */
private Set<IDiscordClient> connectionsDatastore; private static Set<IDiscordClient> connectionsDatastore = new HashSet<>();
/** /**
* List of registered listeners for each connection, as we can't access registered listeners in IDC dispatcher. * List of registered listeners for each connection, as we can't access registered listeners in IDC dispatcher.
*/ */
private Map<IDiscordClient, Set<Object>> registeredListeners; private static Map<IDiscordClient, Set<Object>> registeredListeners = new HashMap<>();
/**
* Singleton unique instance
*/
private static final GatewayConnectionsManager INSTANCE = new GatewayConnectionsManager();
/** /**
* Logger * Logger
*/ */
private static final Logger LOGGER = LogManager.getLogger(GatewayConnectionsManager.class); private static final Logger LOGGER = LogManager.getLogger(GatewayConnectionsManager.class);
/**
* Get singleton instance
*/
public static GatewayConnectionsManager getInstance()
{
return INSTANCE;
}
/**
* Private constructor, to enforce singleton
*/
private GatewayConnectionsManager()
{
connectionsDatastore = new HashSet<>();
registeredListeners = new HashMap<>();
}
/** /**
* Registers a connection and login automatically * Registers a connection and login automatically
* @param builder Filled and builder ready for log in * @param builder Filled and builder ready for log in
*/ */
public void registerConnection(ClientBuilder builder) public static void registerConnection(ClientBuilder builder)
{ {
LOGGER.info("Registering new connection"); LOGGER.info("Registering new connection");
builder.withReconnects(); // Makes the connections auto-reconnects on dropped connection. builder.withReconnects(); // Makes the connections auto-reconnects on dropped connection.
@ -77,7 +55,7 @@ public class GatewayConnectionsManager
* Logout and unregister specified connection * Logout and unregister specified connection
* @param client Target connection * @param client Target connection
*/ */
public void unregisterConnection(IDiscordClient client) public static void unregisterConnection(IDiscordClient client)
{ {
LOGGER.info("Unregistering connection with user #" + client.getOurUser().getID()); LOGGER.info("Unregistering connection with user #" + client.getOurUser().getID());
@ -91,7 +69,7 @@ public class GatewayConnectionsManager
* @param target Target conection, must be registered * @param target Target conection, must be registered
* @param refListeners Reference listeners list * @param refListeners Reference listeners list
*/ */
public void updateListeners(IDiscordClient target, Set<Class<?>> refListeners) public static void updateListeners(IDiscordClient target, Set<Class<?>> refListeners)
{ {
LOGGER.debug("Updating listeners for target " + target.getOurUser().getID()); LOGGER.debug("Updating listeners for target " + target.getOurUser().getID());
@ -123,7 +101,7 @@ public class GatewayConnectionsManager
* Update all connections listeners * Update all connections listeners
* @param refListeners Reference listeners list * @param refListeners Reference listeners list
*/ */
public void updateAllListeners(Set<Class<?>> refListeners) public static void updateAllListeners(Set<Class<?>> refListeners)
{ {
for(IDiscordClient i : connectionsDatastore) updateListeners(i, refListeners); for(IDiscordClient i : connectionsDatastore) updateListeners(i, refListeners);
} }
@ -132,7 +110,7 @@ public class GatewayConnectionsManager
* Reconnect a disconnected gateway connection * Reconnect a disconnected gateway connection
* @param target Disconnected connection * @param target Disconnected connection
*/ */
public void reconnect(IDiscordClient target) public static void reconnect(IDiscordClient target)
{ {
if(!connectionsDatastore.contains(target)) return; if(!connectionsDatastore.contains(target)) return;

@ -92,7 +92,7 @@ public class EventManager
*/ */
public void updateConnectionsHandlers() public void updateConnectionsHandlers()
{ {
GatewayConnectionsManager.getInstance().updateAllListeners(collectAllHandlers()); GatewayConnectionsManager.updateAllListeners(collectAllHandlers());
} }
/** /**
@ -100,6 +100,6 @@ public class EventManager
*/ */
public void updateConnectionHandlers(IDiscordClient target) public void updateConnectionHandlers(IDiscordClient target)
{ {
GatewayConnectionsManager.getInstance().updateListeners(target, collectAllHandlers()); GatewayConnectionsManager.updateListeners(target, collectAllHandlers());
} }
} }