diff --git a/java/src/game/command/CommandEnvironment.java b/java/src/game/command/CommandEnvironment.java index a88ec0c..8b2a691 100644 --- a/java/src/game/command/CommandEnvironment.java +++ b/java/src/game/command/CommandEnvironment.java @@ -251,6 +251,7 @@ public class CommandEnvironment { this.registerExecutable(new CommandWarp()); this.registerExecutable(new CommandTime()); this.registerExecutable(new CommandRemove()); + this.registerExecutable(new CommandWeather()); this.registerExecutable(new CommandHelp(this)); } diff --git a/java/src/game/command/commands/CommandWeather.java b/java/src/game/command/commands/CommandWeather.java new file mode 100644 index 0000000..30b7ab8 --- /dev/null +++ b/java/src/game/command/commands/CommandWeather.java @@ -0,0 +1,31 @@ +package game.command.commands; + +import game.command.CommandEnvironment; +import game.command.RunException; +import game.command.Command; +import game.command.Executor; +import game.world.Weather; +import game.world.WorldServer; + +public class CommandWeather extends Command { + public CommandWeather() { + super("weather"); + + this.addEnum("weather", Weather.class, Weather.values()); + this.setParamsOptional(); + this.addWorld("dim", true); + + this.addFlag("transition", 't'); + } + + public void exec(CommandEnvironment env, Executor exec, Weather weather, WorldServer world, boolean transition) { + if(!world.dimension.getType().weather) + throw new RunException("Welt %s hat kein Wetter", world.dimension.getFormattedName(false)); + else if(world.isExterminated()) + throw new RunException("Welt %s ist zerstört", world.dimension.getFormattedName(false)); + world.setWeather(weather); + if(!transition) + world.resetWeather(); + exec.logConsole("Wetter in %s zu %s geändert", world.dimension.getFormattedName(false), weather.getDisplay()); + } +} diff --git a/java/src/game/world/Weather.java b/java/src/game/world/Weather.java index 6d6b764..9df13f4 100755 --- a/java/src/game/world/Weather.java +++ b/java/src/game/world/Weather.java @@ -83,6 +83,10 @@ public enum Weather { return this.name; } + public String toString() { + return this.name; + } + public String getDisplay() { return this.display; }