use of org.spongepowered.api.command.CommandManager in project ChangeSkin by games647.
the class ChangeSkinSponge method onInit.
@Listener
public void onInit(GameInitializationEvent initEvent) {
if (!initialized)
return;
CommandManager cmdManager = Sponge.getCommandManager();
// command and event register
cmdManager.register(this, injector.getInstance(SelectCommand.class).buildSpec(), "skin-select", "skinselect");
cmdManager.register(this, injector.getInstance(InfoCommand.class).buildSpec(), "skin-info");
cmdManager.register(this, injector.getInstance(UploadCommand.class).buildSpec(), "skin-upload");
cmdManager.register(this, injector.getInstance(SetCommand.class).buildSpec(), "changeskin", "setskin", "skin");
cmdManager.register(this, injector.getInstance(InvalidateCommand.class).buildSpec(), "skininvalidate", "skin-invalidate");
Sponge.getEventManager().registerListeners(this, injector.getInstance(LoginListener.class));
RawDataChannel pluginChannel = Sponge.getChannelRegistrar().createRawChannel(this, PomData.ARTIFACT_ID);
pluginChannel.addListener(injector.getInstance(BungeeListener.class));
}
use of org.spongepowered.api.command.CommandManager in project SpongeForge by SpongePowered.
the class SpongeMod method onServerStopped.
@Subscribe
public void onServerStopped(FMLServerStoppedEvent event) throws IOException {
try {
CommandManager service = this.game.getCommandManager();
service.getCommands().stream().filter(mapping -> mapping.getCallable() instanceof MinecraftCommandWrapper).forEach(service::removeMapping);
((SqlServiceImpl) this.game.getServiceManager().provideUnchecked(SqlService.class)).close();
} catch (Throwable t) {
this.controller.errorOccurred(this, t);
}
// used by client
WorldManager.unregisterAllWorldSettings();
}
use of org.spongepowered.api.command.CommandManager in project Nucleus by NucleusPowered.
the class InfoCommand method executeCommand.
@Override
public CommandResult executeCommand(CommandSource src, CommandContext args) throws Exception {
// Sponge versions
List<String> information = Lists.newArrayList();
String separator = "------------";
information.add(separator);
information.add("Nucleus Diagnostics");
information.add(separator);
information.add("This file contains information about Nucleus and the environment it runs in.");
information.add(separator);
information.add("Environment");
information.add(separator);
Platform platform = Sponge.getPlatform();
PluginContainer game = platform.getContainer(Platform.Component.GAME);
PluginContainer implementation = platform.getContainer(Platform.Component.IMPLEMENTATION);
PluginContainer api = platform.getContainer(Platform.Component.API);
information.add(String.format("Minecraft Version: %s %s", game.getName(), game.getVersion().orElse("unknown")));
information.add(String.format("Sponge Version: %s %s", implementation.getName(), implementation.getVersion().orElse("unknown")));
information.add(String.format("Sponge API Version: %s %s", api.getName(), api.getVersion().orElse("unknown")));
information.add("Nucleus Version: " + PluginInfo.VERSION + " (Git: " + PluginInfo.GIT_HASH + ")");
information.add(separator);
information.add("Plugins");
information.add(separator);
Sponge.getPluginManager().getPlugins().forEach(x -> information.add(x.getName() + " (" + x.getId() + ") version " + x.getVersion().orElse("unknown")));
information.add(separator);
information.add("Registered Commands");
information.add(separator);
final Map<String, String> commands = Maps.newHashMap();
final Map<String, String> plcmds = Maps.newHashMap();
final CommandManager manager = Sponge.getCommandManager();
manager.getPrimaryAliases().forEach(x -> {
Optional<? extends CommandMapping> ocm = manager.get(x);
if (ocm.isPresent()) {
Set<String> a = ocm.get().getAllAliases();
Optional<PluginContainer> optionalPC = manager.getOwner(ocm.get());
if (optionalPC.isPresent()) {
PluginContainer container = optionalPC.get();
String id = container.getId();
String info = " - " + container.getName() + " (" + id + ") version " + container.getVersion().orElse("unknown");
a.forEach(y -> {
if (y.startsWith(id + ":")) {
// /nucleus:<blah>
plcmds.put(y, "/" + y + info);
} else {
commands.put(y, "/" + y + info);
}
});
} else {
String info = " - unknown (plugin container not present)";
a.forEach(y -> commands.put(y, "/" + y + info));
}
} else {
commands.put(x, "/" + x + " - unknown (mapping not present)");
}
});
commands.entrySet().stream().sorted(Comparator.comparing(x -> x.getKey().toLowerCase())).forEachOrdered(x -> information.add(x.getValue()));
information.add(separator);
information.add("Namespaced commands");
information.add(separator);
plcmds.entrySet().stream().sorted(Comparator.comparing(x -> x.getKey().toLowerCase())).forEachOrdered(x -> information.add(x.getValue()));
information.add(separator);
information.add("Nucleus: Enabled Modules");
information.add(separator);
plugin.getModuleContainer().getModules().stream().sorted().forEach(information::add);
Set<String> disabled = plugin.getModuleContainer().getModules(ModuleContainer.ModuleStatusTristate.DISABLE);
if (!disabled.isEmpty()) {
information.add(separator);
information.add("Nucleus: Disabled Modules");
information.add(separator);
disabled.stream().sorted().forEach(information::add);
}
String fileName = "nucleus-info-" + DateTimeFormatter.BASIC_ISO_DATE.format(LocalDateTime.now()) + "-" + DateTimeFormatter.ofPattern("HHmmss").format(LocalDateTime.now()) + ".txt";
try (BufferedWriter fw = new BufferedWriter(new FileWriter(fileName, false))) {
for (String s : information) {
fw.write(s);
fw.newLine();
}
fw.flush();
} catch (Exception e) {
throw new TextMessageException(plugin.getMessageProvider().getTextMessageWithFormat("command.nucleus.info.fileerror"), e);
}
src.sendMessage(plugin.getMessageProvider().getTextMessageWithFormat("command.nucleus.info.saved", fileName));
return CommandResult.success();
}
Aggregations