public AddressedPluginMessage(MessageClientAddress recipient, PluginMessage message) { this(TimoCloudAPI.getMessageAPI().getOwnAddress(), recipient, message); }
/** * @return Whether the TimoCloud API is available */ public static boolean isEnabled() { return getUniversalAPI() != null; }
private void setState(String state) { TimoCloudAPI.getBukkitAPI().getThisServer().setState(state); }
break; case "API_DATA": { ((TimoCloudUniversalAPICordImplementation) TimoCloudAPI.getUniversalAPI()).setData((Map<String, Object>) data); break; try { EventType eventType = EnumUtil.valueOf(EventType.class, (String) message.get("eventType")); ((EventManager) TimoCloudAPI.getEventAPI()).callEvent(((TimoCloudUniversalAPIBasicImplementation) TimoCloudAPI.getUniversalAPI()).getObjectMapper().readValue((String) data, EventUtil.getClassByEventType(eventType))); } catch (Exception e) { System.err.println("Error while parsing event from json: "); case "PLUGIN_MESSAGE": { AddressedPluginMessage addressedPluginMessage = PluginMessageSerializer.deserialize((Map) data); ((TimoCloudMessageAPIBasicImplementation) TimoCloudAPI.getMessageAPI()).onMessage(addressedPluginMessage); break;
private void makeInstances() throws Exception { instance = this; this.fileManager = new CoreFileManager(); try { createLogger(); } catch (Exception e) { System.err.println("Error while creating logger. Aborting."); e.printStackTrace(); System.exit(1); } fileManager.load(); this.socketServerHandler = new CoreSocketServerHandler(); this.socketServer = new CoreSocketServer(); this.stringHandler = new CoreStringHandler(); this.instanceManager = new CoreInstanceManager(); this.templateManager = new TemplateManager(); this.commandManager = new CommandManager(); this.eventManager = new CoreEventManager(); this.cloudFlareManager = new CloudFlareManager(); this.pluginManager = new PluginManager(); this.pluginMessageManager = new PluginMessageManager(); APIInstanceUtil.setUniversalInstance(new TimoCloudUniversalAPICoreImplementation()); APIInstanceUtil.setCoreInstance(new TimoCloudCoreAPIImplementation()); APIInstanceUtil.setEventInstance(new EventManager()); APIInstanceUtil.setMessageInstance(new TimoCloudMessageAPICoreImplementation()); TimoCloudAPI.getEventAPI().registerListener(getEventManager()); TimoCloudAPI.getEventAPI().registerListener(getCloudFlareManager()); }
@Override public void execute(CommandSender sender, String[] strings) { for (ServerGroupObject serverGroupObject : TimoCloudAPI.getBungeeAPI().getThisProxy().getGroup().getServerGroups()) { for (ServerObject serverObject : serverGroupObject.getServers()) { sender.sendMessage( new TextComponent(ChatColor.translateAlternateColorCodes('&', "&a[" + serverObject.getName() + "] &e(" + serverObject.getOnlinePlayerCount() + "): &r" + serverObject.getOnlinePlayers().stream().map(PlayerObject::getName).sorted(String.CASE_INSENSITIVE_ORDER).collect(Collectors.joining(", ")))) ); } } sender.sendMessage(new TextComponent(ChatColor.RESET + "Total players online: " + TimoCloudAPI.getBungeeAPI().getThisProxy().getGroup().getOnlinePlayerCount())); } }
break; case "API_DATA": ((TimoCloudUniversalAPIBukkitImplementation) TimoCloudAPI.getUniversalAPI()).setData((Map<String, Object>) data); break; case "EVENT_FIRED": try { EventType eventType = EnumUtil.valueOf(EventType.class, (String) message.get("eventType")); ((EventManager) TimoCloudAPI.getEventAPI()).callEvent(((TimoCloudUniversalAPIBasicImplementation) TimoCloudAPI.getUniversalAPI()).getObjectMapper().readValue((String) data, EventUtil.getClassByEventType(eventType))); } catch (Exception e) { System.err.println("Error while parsing event from json: "); case "PLUGIN_MESSAGE": { AddressedPluginMessage addressedPluginMessage = PluginMessageSerializer.deserialize((Map) data); ((TimoCloudMessageAPIBasicImplementation) TimoCloudAPI.getMessageAPI()).onMessage(addressedPluginMessage); break;
public void fireEvent(Event event) { Message message = Message.create() .setType("EVENT_FIRED") .set("eventType", event.getType().name()) .setData(eventToJSON(event)); for (Communicatable communicatable : TimoCloudCore.getInstance().getInstanceManager().getAllCommunicatableInstances()) { if (communicatable instanceof Base) continue; // Bases do not support events communicatable.sendMessage(message); } ((EventManager) TimoCloudAPI.getEventAPI()).callEvent(event); }
@EventHandler public void onProxyPingEvent(ProxyPingEvent event) { ProxyObject proxyObject = TimoCloudAPI.getBungeeAPI().getThisProxy(); ServerPing serverPing = event.getResponse(); serverPing.setPlayers(new ServerPing.Players( proxyObject.getGroup().getMaxPlayerCount(), proxyObject.getGroup().getOnlinePlayerCount(), serverPing.getPlayers().getSample() )); serverPing.setDescriptionComponent(new TextComponent(ChatColor.translateAlternateColorCodes('&', proxyObject.getGroup().getMotd()))); } }
private ObjectMapper getObjectMapper() { return ((TimoCloudUniversalAPIBasicImplementation) TimoCloudAPI.getUniversalAPI()).getObjectMapper(); } }
break; case "API_DATA": ((TimoCloudUniversalAPIBungeeImplementation) TimoCloudAPI.getUniversalAPI()).setData((Map<String, Object>) data); break; case "EVENT_FIRED": try { EventType eventType = EnumUtil.valueOf(EventType.class, (String) message.get("eventType")); ((EventManager) TimoCloudAPI.getEventAPI()).callEvent(((TimoCloudUniversalAPIBasicImplementation) TimoCloudAPI.getUniversalAPI()).getObjectMapper().readValue((String) data, EventUtil.getClassByEventType(eventType))); } catch (Exception e) { System.err.println("Error while parsing event from json: "); case "PLUGIN_MESSAGE": { AddressedPluginMessage addressedPluginMessage = PluginMessageSerializer.deserialize((Map) data); ((TimoCloudMessageAPIBasicImplementation) TimoCloudAPI.getMessageAPI()).onMessage(addressedPluginMessage); break;
@Override public void sendPluginMessage(PluginMessage message) { TimoCloudAPI.getMessageAPI().sendMessageToCord(message, getName()); } }
@Override public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { if (!sender.hasPermission("timocloud.command.bukkit")) { BukkitMessageManager.noPermission(sender); return false; } if (args.length < 2) { sendHelp(sender); return false; } if (args[0].equalsIgnoreCase("setstate")) { TimoCloudAPI.getBukkitAPI().getThisServer().setState(args[1]); BukkitMessageManager.sendMessage(sender, "&aState has successfully been set to &e" + args[1]); } return false; }
@Override public ServerGroupObject getGroup() { return TimoCloudAPI.getUniversalAPI().getServerGroup(group); }
@Override public void sendPluginMessage(PluginMessage message) { TimoCloudAPI.getMessageAPI().sendMessage(new AddressedPluginMessage(getMessageAddress(), message)); }
public void setStateByPlayerCount() { int cur = TimoCloudBukkit.getInstance().getOnlinePlayersAmount(); String currentState = TimoCloudAPI.getBukkitAPI().getThisServer().getState(); if (!currentState.equals(lastStateSet)) stateBefore = currentState; if (!TimoCloudBukkit.getInstance().getFileManager().getConfig().getStringList("PlayersToState.enabledWhileStates").contains(stateBefore)) return; double percentage = (double) cur / (double) TimoCloudBukkit.getInstance().getMaxPlayersAmount() * 100; String state = null; List<Double> steps = new ArrayList<>(); Map<Double, String> states = new HashMap<>(); for (String step : TimoCloudBukkit.getInstance().getFileManager().getConfig().getConfigurationSection("PlayersToState.percentages").getKeys(false)) { try { Double d = NumberFormat.getInstance(Locale.GERMAN).parse(step).doubleValue(); steps.add(d); states.put(d, TimoCloudBukkit.getInstance().getFileManager().getConfig().getString("PlayersToState.percentages." + step)); } catch (Exception e) { } } Collections.sort(steps); for (double step : steps) { if (percentage >= step) state = states.get(step); } if (state == null) { setState(stateBefore); } else { setState(state); lastStateSet = state; } }
@Override public List<ServerGroupObject> getServerGroups() { return serverGroups.stream().map(serverGroup -> TimoCloudAPI.getUniversalAPI().getServerGroup(serverGroup)).collect(Collectors.toList()); }
@Override public void sendPluginMessage(PluginMessage message) { TimoCloudAPI.getMessageAPI().sendMessage(new AddressedPluginMessage(getMessageAddress(), message)); }
public ServerObject getServer() { return TimoCloudAPI.getUniversalAPI().getServer(server); }
switch (message.getRecipient().getType()) { case CORE: // Message is addressed to us, call the event ((TimoCloudMessageAPIBasicImplementation) TimoCloudAPI.getMessageAPI()).onMessage(message); return; case SERVER: