Plugin category: Functional Suggested name: AdminCommands What I want: I just need a simple plugin with very few commands that will help a lot. I know essentials has most of these commands, but essentials isn't what i'm looking forward to use. I need simple commands like /vanish, /see, and more. Ideas for commands: - /vanish :: Vanishes the player completely from chat and the tab, and gives the player unlimited invisibility, until the player /vanish again. I would like to have the chat say "(Player) has vanished!" and "(Player) has unvanished!" only to people with the permission. - /see (Player) :: Allows the player to see another players inventory, similar to /invsee from essentials. The player is allowed to take or remove any items from the player as well. I would also like to see what armor the person is wearing in the chest GUI, so that the armor from the player can be placed or removed. - /fly (Player) :: Allows the player to fly without taking fall damage. - /feed (Player) :: Feeds the player and resets there saturation. - /heal (Player) :: Heals the player completely. - /time (Day,Night,Afternoon) :: Sets the time to a certain time of day. - /spawner (Type) :: When looking at a spawner, using the command will change the spawner type to what was specified in the command. - /broadcast (Message) :: Broadcasts a message to the whole server. Have the prefix on the message customizable. EX. [Broadcast] (Message) - /enchant (enchantment) (level) :: Enchants the item in hand, regardless if the enchant isn't meant to be on the tool (Can put protection on a sword, etc.). Also allow the level to be infinite (Can put sharpness 10 on an item.) Ideas for permissions: - bam.vanish - bam.vanishsee (Allows the people with permission to see when a player vanishes.) - bam.see - bam.fly - bam.feed - bam.heal - bam.time - bam.spawner - bam.broadcast - bam.enchant When I'd like it by: Monday August 4th 2014
Decided to work on this. I only have to get the /see : /enchant : /spawner commands finished. Update 1: Got /see working, almost done with /spawner, and having some trouble with /enchant. I can't seem to get past /enchant and /spawner. There's also a small issue with /broadcast that I can't seem to make out. I'm going to allow someone else to pick up from where I left off. Most of the plugin is done and works great. Here's the source code : Code:java package me.RRServer.AdminCommands; import java.util.ArrayList; import org.bukkit.Bukkit;import org.bukkit.ChatColor;import org.bukkit.Location;import org.bukkit.Material;import org.bukkit.World;import org.bukkit.block.Block;import org.bukkit.block.CreatureSpawner;import org.bukkit.command.Command;import org.bukkit.command.CommandSender;import org.bukkit.entity.EntityType;import org.bukkit.entity.Player;import org.bukkit.event.EventHandler;import org.bukkit.event.Listener;import org.bukkit.event.entity.EntityDamageEvent;import org.bukkit.event.entity.EntityDamageEvent.DamageCause;import org.bukkit.inventory.ItemStack;import org.bukkit.plugin.java.JavaPlugin; public class Main extends JavaPlugin implements Listener{ public void onEnable() { getLogger().info("AdminCommands has been enabled!"); Bukkit.getServer().getPluginManager().registerEvents(this, this); saveConfig(); } public void onDisable() { getLogger().info("AdminCommands has been disabled!"); } ArrayList<Player> vanish = new ArrayList<Player>(); ArrayList<Player> fly = new ArrayList<Player>(); @EventHandler public void PlayerFall(EntityDamageEvent e) { if (e.getEntity().getType() == EntityType.PLAYER) { if (e.getCause() == DamageCause.FALL) { Player p = (Player) e.getEntity(); if (fly.contains(p)) { e.setCancelled(true); } else { return; } } } } @EventHandler public void hidePlayer(Player p) { if (vanish.contains(p)) { p.hidePlayer(p); } else { return; } } @Override public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { Player p = (Player) sender; if (cmd.getName().equalsIgnoreCase("vanish")) { if (p.hasPermission("bam.vanish")) { if (args.length == 0) { if (!(vanish.contains(p))) { vanish.add(p); p.sendMessage(ChatColor.YELLOW + "You have been vanished!"); } else { vanish.remove(p); p.sendMessage(ChatColor.YELLOW + "You have been unvanished!"); } } else { Player target = Bukkit.getPlayer(args[0]); if (target == null) { p.sendMessage(ChatColor.RED + args[0] + " is not currently online!"); } else { if (!(vanish.contains(target))) { target.hidePlayer(target); vanish.add(target); target.sendMessage(ChatColor.YELLOW + "You have been vanished!"); p.sendMessage(ChatColor.YELLOW + args[0] + " has been vanished!"); } else { vanish.remove(target); target.sendMessage(ChatColor.YELLOW + "You have been unvanished!"); p.sendMessage(ChatColor.YELLOW + args[0] + " has been unvanished!"); } } } } else { p.sendMessage(ChatColor.RED + "You do not have the proper permission (bam.vanish)!"); } } else if (cmd.getName().equalsIgnoreCase("see")) { if (p.hasPermission("bam.see")) { if (args.length == 0) { p.sendMessage(ChatColor.RED + "Incorrect usuage: /see <Player>"); } else { Player target = Bukkit.getPlayer(args[0]); if (target == null) { p.sendMessage(ChatColor.RED + args[0] + " is not currently online!"); } else { p.openInventory(target.getInventory()); p.sendMessage(ChatColor.YELLOW + "You are looking at " + args[0] + "'s inventory!"); } } } else { p.sendMessage(ChatColor.RED + "You do not have the proper permission (bam.see)!"); } } else if (cmd.getName().equalsIgnoreCase("fly")) { if (p.hasPermission("bam.fly")) { if (args.length == 0) { if (!(fly.contains(p))) { fly.add(p); p.setAllowFlight(true); p.sendMessage(ChatColor.YELLOW + "You are now able to fly!"); } else { fly.remove(p); p.setAllowFlight(false); p.sendMessage(ChatColor.YELLOW + "You are now no longer able to fly!"); } } else { Player target = Bukkit.getPlayer(args[0]); if (target == null) { p.sendMessage(ChatColor.RED + args[0] + " is not currently online!"); } else { if (!(fly.contains(target))) { fly.add(target); target.setAllowFlight(true); p.sendMessage(ChatColor.YELLOW + args[0] + " is now able to fly!"); target.sendMessage(ChatColor.YELLOW + "You are now able to fly!"); } else { fly.remove(target); target.setAllowFlight(false); p.sendMessage(ChatColor.YELLOW + args[0] + " is no longer able to fly!"); target.sendMessage(ChatColor.YELLOW + "You are now no longer able to fly!"); } } } } else { p.sendMessage(ChatColor.RED + "You do not have the proper permission (bam.fly)!"); } } else if (cmd.getName().equalsIgnoreCase("feed")) { if (p.hasPermission("bam.feed")) { if (args.length == 0) { p.setFoodLevel(20); p.sendMessage(ChatColor.YELLOW + "You have been fed!"); } else { Player target = Bukkit.getPlayer(args[0]); if (target == null) { p.sendMessage(ChatColor.RED + args[0] + " is not currently online!"); } else { target.setFoodLevel(20); target.sendMessage(ChatColor.YELLOW + "You have been fed!"); p.sendMessage(ChatColor.YELLOW + args[0] + " has been fed!"); } } } else { p.sendMessage(ChatColor.RED + "You do not have the proper permission (bam.feed)!"); } } else if (cmd.getName().equalsIgnoreCase("heal")) { if (p.hasPermission("bam.heal")) { if (args.length == 0) { p.setHealth(20); p.sendMessage(ChatColor.YELLOW + "You have been healed!"); } else { Player target = Bukkit.getPlayer(args[0]); if (target == null) { p.sendMessage(ChatColor.RED + args[0] + " is not currently online!"); } else { target.setHealth(20); target.sendMessage(ChatColor.YELLOW + "You have been healed!"); p.sendMessage(ChatColor.YELLOW + args[0] + " has been healed!"); } } } else { p.sendMessage(ChatColor.RED + "You do not have the proper permission (bam.heal)!"); } } else if (cmd.getName().equalsIgnoreCase("time")) { if (p.hasPermission("bam.time")) { if (args.length == 0) { p.sendMessage(ChatColor.RED + "Incorrect usage: /day <Day>:<Night>:<Afternoon>"); } else { World world = p.getWorld(); if (args[0].equalsIgnoreCase("day")) { world.setTime(0); p.sendMessage(ChatColor.YELLOW + "You have set the time to day!"); } else if (args[0].equalsIgnoreCase("night")) { world.setTime(18000); p.sendMessage(ChatColor.YELLOW + "You have set the time to night!"); } else if (args[0].equalsIgnoreCase("afternoon")) { world.setTime(8000); p.sendMessage(ChatColor.YELLOW + "You have set the time to afternoon!"); } else { p.sendMessage(ChatColor.RED + "Incorrect usage: /day <Day>:<Night>:<Afternoon>"); } } } else { p.sendMessage(ChatColor.RED + "You do not have the proper permission (bam.time)!"); } } else if (cmd.getName().equalsIgnoreCase("spawner")) { if (p.hasPermission("bam.spawner")) { if (args.length == 0) { p.sendMessage(ChatColor.RED + "Incorrect usage: /spawner <Type>"); } else { Location play = p.getLocation(); Block b = play.getBlock(); CreatureSpawner cs = ((CreatureSpawner) b.getState()); if (b.equals(Material.MOB_SPAWNER)) { if (args[0].equalsIgnoreCase("zombie")) { cs.setSpawnedType(EntityType.ZOMBIE); cs.update(); } else if (args[0].equalsIgnoreCase("skeleton")) { cs.setSpawnedType(EntityType.SKELETON); cs.update(); } else if (args[0].equalsIgnoreCase("creeper")) { cs.setSpawnedType(EntityType.CREEPER); cs.update(); } else if (args[0].equalsIgnoreCase("enderman")) { cs.setSpawnedType(EntityType.ENDERMAN); cs.update(); } else if (args[0].equalsIgnoreCase("blaze")) { cs.setSpawnedType(EntityType.BLAZE); cs.update(); } else if (args[0].equalsIgnoreCase("cavespider")) { cs.setSpawnedType(EntityType.CAVE_SPIDER); cs.update(); } else if (args[0].equalsIgnoreCase("spider")) { cs.setSpawnedType(EntityType.SPIDER); cs.update(); } } } } else { p.sendMessage(ChatColor.RED + "You do not have the proper permission (bam.spawner)!"); } } else if (cmd.getName().equalsIgnoreCase("broadcast")) { if (p.hasPermission("bam.broadcast")) { if (args.length == 0) { p.sendMessage(ChatColor.RED + "Incorrect usage: /broadcast <Message>"); } else { Bukkit.broadcastMessage(ChatColor.translateAlternateColorCodes('&', getConfig().getString("BroadcastPrefix") + args)); } } else { p.sendMessage(ChatColor.RED + "You do not have the proper permission (bam.broadcast)!"); } } else if (cmd.getName().equalsIgnoreCase("enchant")) { if (p.hasPermission("bam.enchant")) { ItemStack stack = p.getItemInHand(); if (!(stack == null)) { if (args.length == 0) { p.sendMessage(ChatColor.RED + "Incorrect usage: /enchant <Enchantment> <Level>"); } else if (args.length > 1) { } } else { p.sendMessage(ChatColor.RED + "You are not holding anything!"); } } else { p.sendMessage(ChatColor.RED + "You do not have the proper permission (bam.enchant)!"); } } return false; }} EDIT by Moderator: merged posts, please use the edit button instead of double posting.