/** * Used to get the time and inform */ private void getWorldsTime(final CommandSender sender, final Collection<World> worlds) { if (worlds.size() == 1) { final Iterator<World> iter = worlds.iterator(); sender.sendMessage(DescParseTickFormat.format(iter.next().getTime())); return; } for (World world : worlds) { sender.sendMessage(_("timeWorldCurrent", world.getName(), DescParseTickFormat.format(world.getTime()))); } }
@Override public void run(final Server server, final CommandSender sender, final String commandLabel, final String[] args) throws Exception { // Which World(s) are we interested in? String worldSelector = null; if (args.length == 2) { worldSelector = args[1]; } final Set<World> worlds = getWorlds(server, sender, worldSelector); // If no arguments we are reading the time if (args.length == 0) { getWorldsTime(sender, worlds); return; } final User user = ess.getUser(sender); if (user != null && !user.isAuthorized("essentials.time.set")) { user.sendMessage(_("timeSetPermission")); return; } // Parse the target time int ticks from args[0] long ticks; try { ticks = DescParseTickFormat.parse(args[0]); } catch (NumberFormatException e) { throw new NotEnoughArgumentsException(); } setWorldsTime(sender, worlds, ticks); }
/** * Used to set the time and inform of the change */ private void setWorldsTime(final CommandSender sender, final Collection<World> worlds, final long ticks) { // Update the time for (World world : worlds) { long time = world.getTime(); time -= time % 24000; world.setTime(time + 24000 + ticks); } final StringBuilder output = new StringBuilder(); for (World world : worlds) { if (output.length() > 0) { output.append(", "); } output.append(world.getName()); } sender.sendMessage(_("timeWorldSet", DescParseTickFormat.format(ticks), output.toString())); }