package me.km.commands; import me.km.api.GlobalText; import me.km.api.Module; import me.km.api.ModuleCommand; import me.km.dimensions.ModDimensions; import me.km.permissions.Permissions; import net.minecraft.command.ICommandSender; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.world.World; import net.minecraft.world.storage.WorldInfo; public class CommandWeather extends ModuleCommand { public CommandWeather(Module m) { super("weather", m); super.setDescription("Setzt das Wetter in einer Welt"); super.setUsage("/weather [world] [ticks]"); super.setPermission(Permissions.WEATHER); } @Override public boolean execute(ICommandSender cs, String[] arg) { if(arg.length == 0) { return false; } World w; if(arg.length >= 2) { w = ModDimensions.getWorldFromName(arg[1]); if(w == null) { this.getModule().send(cs, "Die Welt '" + arg[1] + "' wurde nicht gefunden."); return true; } } else if(cs instanceof EntityPlayer) { w = ((EntityPlayer) cs).getEntityWorld(); } else { this.getModule().send(cs, GlobalText.missingParameter()); return true; } int time; if(arg.length >= 3) { try { time = Integer.parseInt(arg[2]); if(time < 0) { this.getModule().send(cs, GlobalText.noNaturalNumber()); return true; } } catch(Exception ex) { this.getModule().send(cs, GlobalText.noNaturalNumber()); return true; } } else { time = 24000; } WorldInfo wi = w.getWorldInfo(); switch(arg[0].toLowerCase()) { case "clear": { wi.setCleanWeatherTime(time); wi.setRainTime(0); wi.setThunderTime(0); wi.setRaining(false); wi.setThundering(false); this.getModule().send(cs, "Das Wetter ist wieder klar."); return true; } case "rain": { wi.setCleanWeatherTime(0); wi.setRainTime(time); wi.setThunderTime(time); wi.setRaining(true); wi.setThundering(false); this.getModule().send(cs, "Es regnet nun für " + time + " Ticks."); return true; } case "thunder": { wi.setCleanWeatherTime(0); wi.setRainTime(time); wi.setThunderTime(time); wi.setRaining(true); wi.setThundering(true); this.getModule().send(cs, "Es gewittert nun für " + time + " Ticks."); return true; } } return false; } }