Developer - Commands

Developer - Commands

You can register and unregister custom fake administrator commands.

Adding commands

You can register commands using FakeAdminAPI.addCommand("<command>", <command-class>, "<alias1>", "<alias2>");

The <command-class> is a class that extends the class AdminCommand. AdminCommand comes with a nice feature, getFinalArgs(String[], int) that trims the beginning of a String array.

Example

An example of registering a command "broadcast" (from Essentials) is:

import com.faris.fakeadmin.api.FakeAdminAPI;
import com.faris.fakeadmin.command.AdminCommand;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;

import java.util.Arrays;
import java.util.List;
import java.util.UUID;

public class Main extends JavaPlugin {
	
	public void onEnable() {
		if (!this.getServer().getPluginManager().isPluginEnabled("FakeAdmin")) {
			this.getServer().getConsoleSender().sendMessage(ChatColor.RED + "FakeAdmin is required for this plugin to work.");
			this.setEnabled(false);
			return;
		}
		
		FakeAdminAPI.addCommand("broadcast", CommandBroadcast.class, "bc", "ebc", "bcast", "ebcast", "ebroadcast", "shout", "eshout");
	}
	
	public class CommandBroadcast extends AdminCommand {
		@Override
		public CommandReturnType onCommand(Player player, String command, String[] args) throws Exception {
			if (args.length > 0) {
				String broadcastMessage = ChatColor.translateAlternateColorCodes('&', "&6[&4Broadcast&6] &a" + this.getFinalArgs(args, 0));
				for (UUID fakeAdminUUID : this.getPlugin().getManager().getAdminManager().getFakeAdmins()) {
					Player fakeAdmin = player.getServer().getPlayer(fakeAdminUUID);
					if (fakeAdmin != null && fakeAdmin.isOnline()) fakeAdmin.sendMessage(broadcastMessage);
				}
				return CommandReturnType.VALID;
			}
			return CommandReturnType.INVALID_USAGE;
		}
		
		@Override
		public List<String> getUsage() {
			return Arrays.asList("Broadcasts a message to the entire server.", "/broadcast <msg>");
		}
	}
	
}

Unregistering a command

If you want to unregister a command, such as /kick, use FakeAdminAPI.removeCommand("<command>") and it automatically removes the command and all aliases.


Comments

Posts Quoted:
Reply
Clear All Quotes