@Override public String handshake() throws PyDebuggerException { final VersionCommand command = new VersionCommand(this, LOCAL_VERSION, SystemInfo.isUnix ? "UNIX" : "WIN"); command.execute(); String version = command.getRemoteVersion(); if (version != null) { version = version.trim(); } return version; }
/** * Handle the '/nocheatplus reload' command. * * @param sender the sender * @return true, if successful */ private void handleReloadCommand(final CommandSender sender) { final LogManager logManager = NCPAPIProvider.getNoCheatPlusAPI().getLogManager(); if (!sender.equals(Bukkit.getConsoleSender())) { sender.sendMessage(TAG + "Reloading configuration..."); } logManager.info(Streams.INIT, TAG + "Reloading configuration..."); // Do the actual reload. ConfigManager.cleanup(); ConfigManager.init(access); if (logManager instanceof INotifyReload) { // TODO: This is a band-aid. ((INotifyReload) logManager).onReload(); } // Remove all cached configs. DataManager.clearConfigs(); // There you have to add XConfig.clear() form now on. // Remove some checks data. // TODO: Better concept (INotifyReload). for (final CheckType checkType : new CheckType[] { CheckType.BLOCKBREAK, CheckType.FIGHT, }) { DataManager.clearData(checkType); } // Reset debug flags to default (temp, heavy). DataManager.restoreDefaultDebugFlags(); // Tell the registered listeners to adapt to new config, first sort them (!). Collections.sort(notifyReload, Order.cmpSetupOrder); for (final INotifyReload component : notifyReload) { component.onReload(); } // Say to the other plugins that we've reloaded the configuration. Bukkit.getPluginManager().callEvent(new NCPReloadEvent()); // Log reloading done. if (!sender.equals(Bukkit.getConsoleSender())) { sender.sendMessage(TAG + "Configuration reloaded!"); } logManager.info(Streams.INIT, TAG + "Configuration reloaded."); logManager.info( Streams.DEFAULT_FILE, StringUtil.join(VersionCommand.getVersionInfo(), "\n")); // Queued (!). }