use of io.github.nucleuspowered.nucleus.internal.command.ReturnMessageException in project Nucleus by NucleusPowered.
the class EnableWorldCommand method executeCommand.
@Override
public CommandResult executeCommand(CommandSource src, CommandContext args) throws Exception {
WorldProperties worldProperties = args.<WorldProperties>getOne(worldKey).get();
if (worldProperties.isEnabled()) {
throw new ReturnMessageException(plugin.getMessageProvider().getTextMessageWithFormat("command.world.enable.alreadyenabled", worldProperties.getWorldName()));
}
worldProperties.setEnabled(true);
src.sendMessage(plugin.getMessageProvider().getTextMessageWithFormat("command.world.enable.success", worldProperties.getWorldName()));
return CommandResult.success();
}
use of io.github.nucleuspowered.nucleus.internal.command.ReturnMessageException in project Nucleus by NucleusPowered.
the class LoadWorldCommand method executeCommand.
@Override
public CommandResult executeCommand(CommandSource src, CommandContext args) throws Exception {
WorldProperties worldProperties = args.<WorldProperties>getOne(worldKey).get();
if (!worldProperties.isEnabled() && !args.hasAny("e")) {
// Not enabled, cannot load.
if (plugin.getPermissionRegistry().getPermissionsForNucleusCommand(EnableWorldCommand.class).testBase(src)) {
throw new ReturnMessageException(plugin.getMessageProvider().getTextMessageWithFormat("command.world.load.notenabled.enable", worldProperties.getWorldName()));
}
throw new ReturnMessageException(plugin.getMessageProvider().getTextMessageWithFormat("command.world.load.notenabled.noenable", worldProperties.getWorldName()));
}
if (Sponge.getServer().getWorld(worldProperties.getUniqueId()).isPresent()) {
throw new ReturnMessageException(plugin.getMessageProvider().getTextMessageWithFormat("command.world.load.alreadyloaded", worldProperties.getWorldName()));
}
worldProperties.setEnabled(true);
src.sendMessage(plugin.getMessageProvider().getTextMessageWithFormat("command.world.load.start", worldProperties.getWorldName()));
Optional<World> optional = Sponge.getServer().loadWorld(worldProperties);
if (optional.isPresent()) {
src.sendMessage(plugin.getMessageProvider().getTextMessageWithFormat("command.world.load.loaded", worldProperties.getWorldName()));
return CommandResult.success();
}
throw new ReturnMessageException(plugin.getMessageProvider().getTextMessageWithFormat("command.world.load.fail", worldProperties.getWorldName()));
}
use of io.github.nucleuspowered.nucleus.internal.command.ReturnMessageException in project Nucleus by NucleusPowered.
the class VanishCommand method executeCommand.
@Override
public CommandResult executeCommand(CommandSource src, CommandContext args) throws Exception {
User ou = getUserFromArgs(User.class, src, player, args);
if (ou.getPlayer().isPresent()) {
return onPlayer(src, args, ou.getPlayer().get());
}
if (!permissions.testSuffix(ou, "persist")) {
throw new ReturnMessageException(plugin.getMessageProvider().getTextMessageWithFormat("command.vanish.noperm", ou.getName()));
}
VanishUserDataModule uss = Nucleus.getNucleus().getUserDataManager().getUnchecked(ou).get(VanishUserDataModule.class);
uss.setVanished(args.<Boolean>getOne(b).orElse(!uss.isVanished()));
src.sendMessage(plugin.getMessageProvider().getTextMessageWithFormat("command.vanish.successuser", ou.getName(), uss.isVanished() ? plugin.getMessageProvider().getMessageWithFormat("command.vanish.vanished") : plugin.getMessageProvider().getMessageWithFormat("command.vanish.visible")));
return CommandResult.success();
}
use of io.github.nucleuspowered.nucleus.internal.command.ReturnMessageException in project Nucleus by NucleusPowered.
the class TeleportWorldCommand method executeCommand.
@Override
public CommandResult executeCommand(final CommandSource src, CommandContext args) throws Exception {
Player player = getUserFromArgs(Player.class, src, playerKey, args, "command.world.player");
WorldProperties worldProperties = args.<WorldProperties>getOne(world).get();
if (!worldProperties.isEnabled()) {
throw new ReturnMessageException(plugin.getMessageProvider().getTextMessageWithFormat("command.world.teleport.notenabled", worldProperties.getWorldName()));
}
World world = Sponge.getServer().loadWorld(worldProperties.getUniqueId()).orElseThrow(() -> ReturnMessageException.fromKey("command.world.teleport.failed", worldProperties.getWorldName()));
Vector3d pos = worldProperties.getSpawnPosition().toDouble();
if (!player.transferToWorld(world, pos)) {
throw ReturnMessageException.fromKey("command.world.teleport.failed", worldProperties.getWorldName());
}
// Rotate.
Nucleus.getNucleus().getWorldDataManager().getWorld(worldProperties.getUniqueId()).ifPresent(x -> x.get(SpawnWorldDataModule.class).getSpawnRotation().ifPresent(y -> new Transform<World>(world, pos, y)));
if (src instanceof Player && ((Player) src).getUniqueId().equals(player.getUniqueId())) {
src.sendMessage(plugin.getMessageProvider().getTextMessageWithFormat("command.world.teleport.success", worldProperties.getWorldName()));
} else {
src.sendMessage(plugin.getMessageProvider().getTextMessageWithFormat("command.world.teleport.successplayer", plugin.getNameUtil().getSerialisedName(player), worldProperties.getWorldName()));
player.sendMessage(plugin.getMessageProvider().getTextMessageWithFormat("command.world.teleport.success", worldProperties.getWorldName()));
}
return CommandResult.success();
}
use of io.github.nucleuspowered.nucleus.internal.command.ReturnMessageException in project Nucleus by NucleusPowered.
the class UnloadWorldCommand method executeCommand.
@Override
public CommandResult executeCommand(CommandSource src, CommandContext args) throws Exception {
WorldProperties worldProperties = args.<WorldProperties>getOne(worldKey).get();
Optional<WorldProperties> transferWorld = args.getOne(transferWorldKey);
boolean disable = args.hasAny("d");
Optional<World> worldOptional = Sponge.getServer().getWorld(worldProperties.getUniqueId());
if (!worldOptional.isPresent()) {
// Not loaded.
if (disable) {
disable(worldProperties, src, plugin.getMessageProvider(), false);
}
throw new ReturnMessageException(plugin.getMessageProvider().getTextMessageWithFormat("command.world.unload.alreadyunloaded", worldProperties.getWorldName()));
}
World world = worldOptional.get();
List<Player> playerCollection = Sponge.getServer().getOnlinePlayers().stream().filter(x -> x.getWorld().equals(world)).collect(Collectors.toList());
if (playerCollection.isEmpty() || (transferWorld.isPresent() && transferWorld.get().isEnabled())) {
if (!playerCollection.isEmpty()) {
// Transfer World is present and enabled.
playerCollection.forEach(x -> x.transferToWorld(transferWorld.get().getUniqueId(), transferWorld.get().getSpawnPosition().toDouble()));
Sponge.getScheduler().createSyncExecutor(plugin).schedule(() -> unloadWorld(src, world, plugin.getMessageProvider(), disable), 40, TimeUnit.MILLISECONDS);
// Well, this bit succeeded, at least.
return CommandResult.success();
} else if (unloadWorld(src, world, plugin.getMessageProvider(), disable)) {
return CommandResult.success();
} else {
return CommandResult.empty();
}
}
throw new ReturnMessageException(plugin.getMessageProvider().getTextMessageWithFormat("command.world.unload.players", worldProperties.getWorldName()));
}
Aggregations