001 package org.bukkit.command.defaults; 002 003 import java.util.List; 004 005 import org.apache.commons.lang.Validate; 006 import org.bukkit.Bukkit; 007 import org.bukkit.ChatColor; 008 import org.bukkit.World; 009 import org.bukkit.command.Command; 010 import org.bukkit.command.CommandSender; 011 import org.bukkit.entity.Player; 012 013 import com.google.common.collect.ImmutableList; 014 015 public class ToggleDownfallCommand extends VanillaCommand { 016 public ToggleDownfallCommand() { 017 super("toggledownfall"); 018 this.description = "Toggles rain on/off on a given world"; 019 this.usageMessage = "/toggledownfall"; 020 this.setPermission("bukkit.command.toggledownfall"); 021 } 022 023 @Override 024 public boolean execute(CommandSender sender, String currentAlias, String[] args) { 025 if (!testPermission(sender)) return true; 026 027 World world = null; 028 029 if (args.length == 1) { 030 world = Bukkit.getWorld(args[0]); 031 032 if (world == null) { 033 sender.sendMessage(ChatColor.RED + "No world exists with the name '" + args[0] + "'"); 034 return true; 035 } 036 } else if (sender instanceof Player) { 037 world = ((Player) sender).getWorld(); 038 } else { 039 world = Bukkit.getWorlds().get(0); 040 } 041 042 Command.broadcastCommandMessage(sender, "Toggling downfall " + (world.hasStorm() ? "off" : "on") + " for world '" + world.getName() + "'"); 043 world.setStorm(!world.hasStorm()); 044 045 return true; 046 } 047 048 @Override 049 public List<String> tabComplete(CommandSender sender, String alias, String[] args) throws IllegalArgumentException { 050 Validate.notNull(sender, "Sender cannot be null"); 051 Validate.notNull(args, "Arguments cannot be null"); 052 Validate.notNull(alias, "Alias cannot be null"); 053 054 return ImmutableList.of(); 055 } 056 }