Detta är del 2 av guiden som är till för dig som vill börja utveckla plugins för Spigot. I denna del ska vi skapa ett simpelt kommando som skriver ”Hello Spelarnamn” till spelaren som skriver kommandot /hello på test-servern.
Steg 1. Skapa klassen som kör kommandot.
- Högerklicka på paketet där Main-klassen ligger och skapa en ny klass som heter ”
CommandHandler”. (Namnet är valfritt och kan även vara t.ex ”HelloCommand”) - Inne i klassen, så bör du nu implementera ”CommandExecutor” som är ett interface som används för att köra kommandon.
- Välj ”Implement methods” i den röda glödlampan, eller tryck alt+enter för att öppna menyn, och välj ”Implement methods”. Tyck sedan OK.

4. Döp om ”commandSender” till ”sender” och ”strings” till ”args” för att lättare kunna använda dessa variabler i kommandot. Ändra även ”return false” till ”return true”.
Koden bör nu ser ut såhär:
package eu.mineworlds.plugin;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
public class CommandHandler implements CommandExecutor
{
@Override
public boolean onCommand(CommandSender sender, Command command, String s, String[] args)
{
return true;
}
}
CommandSender är det objekt som skickas av servern när någon skriver ett kommando, till exempel /hello . Vanligtvis finns det två typer av sätt ett kommando kan skickas, antingen av en spelare inne i spelet eller från serverterminalen. Om du vill kolla om sändaren är en spelare, så kan du t.ex göra följande kod:
if (sender instanceof Player)
{
//Sändaren är en Spelare
} else
{
//Sändaren är något annat, t.ex server-terminalen
}
Sändaren har dock alltid ett namn, så i detta fall så behöver vi inte göra den här kontrollen. Vi vill skicka tillbaka ”Hello Spelarnamn” till sändaren när de skriver kommandot i antingen chatten eller server-terminalen.
Detta kan göras via
sender.sendMessage("Meddelande");
Vi lägger alltså till detta i onCommand-metoden, innan return true;. För att lägga till sändarens namn kan vi göra:
sender.sendMessage("Hello " + sender.getName());
Nu är kommandoklassen färdig!
Steg 2. Registrera kommandot i plugin.yml
- Lägg till kommandot i slutet av din plugin.yml-fil:
commands:
hello:
description: Skickar hello
usage: /hello
Detta innebär att servern registrerar att kommandot existerar när pluginet laddas in. ”description” innehåller en kort info-sträng om vad kommandot gör, och ”usage” innehåller bara information om hur man ska använda kommandot, syntaxmässigt. Läs mer om detta i dokumentationen för plugin.yml
Steg 3. Registrera kommandot i Main-klassen.
Lägg till detta i din onEnable()-metod:
getCommand("hello").setExecutor(new CommandHandler());
Metoden ska nu se ut såhär:
@Override
public void onEnable()
{
getServer().getLogger().log(Level.INFO, "Hello World!");
getCommand("hello").setExecutor(new CommandHandler());
}
Steg 4. Testa kommandot.
Nu kan du logga in på test-servern och skriva /hello i chatten, eller skriva kommandot i terminalen. Fungerar det som det ska bör det nu stå ”Hello Spelarnamn”.
