Minecraft / Bukkit: Ich will, dass, wenn ein Spieler /Damage 2 eingibt, er dann 2 Schaden bekommt. Wie muss ich das programmieren?
Hallo,
ich habe eine Frage zum Java-Programmieren.
Ich will, dass, wenn ein Spieler /Damage 2 eingibt, er dann 2 Schaden bekommt. Wenn er /Damage 5 eingibt, soll er 5 Schaden bekommen.
Mein Problem:
Ich weiß nicht, wie ich das Programmieren muss, damit das möglich ist.
Hier ist meine Programmierung:
package de.iltisauge.cmd;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
public class CMD_TAKEDAMAGE implements CommandExecutor {
@Override
public boolean onCommand(CommandSender sender, Command cmd, String lable, String[] arg3) {
Player p = (Player) sender;
int x = 2;
if (cmd.getName().equalsIgnoreCase("damage")) {
if (p.hasPermission("system.damage")) {
p.damage(x);
}
else {
p.sendMessage("§cDu hast keine Rechte!");
}
}
return false;
}
}
4 Antworten
- Poste den Code bitte mit richtiger Formatierung, am besten über hastebin.com
- Lerne erst Java bevor du versuchst ein Plugin für ein Spiel mithilfe einer Bibliothek zu entwickeln
- Schau dir auch die Java Code Conventions an
- Schreibe nicht einfach nur von Tutorials ab, du merkst ja was dabei raus kommt, du lernst es nicht richtig und musst wegen jeder Kleinigkeit, die nicht genauso ist wie in dem Tutorial, nachfragen.
In Minecrat bzw. Bukkit/Spigot sind die Zeichenketten nach dem Befehl (in diesem Fall die Schadenszahl) in einem Array aus Strings gespeichert, das du in diesem Fall arg3 genannt hast, warum auch immer. Du kannst also überprüfen, ob dieses Array die gewünschte Länge (1) hat, dieses eine Element von einem String zu einem Integer umwandeln und diesen Integer dann in der Methode p.damage(i) verwenden, um dem Spieler Schaden hinzuzufügen.
Ich bin mir gerade nicht mehr sicher ob es die Methode p.damage gibt, falls nicht dann nimm:
p.setHealth( p.getHealth() - i );
package de.iltisauge.cmd;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
public class CMD_TAKEDAMAGE implements CommandExecutor{
@Override
public boolean onCommand(CommandSender sender, Command cmd, String lable, String[] arg3) {
Player p = (Player) sender;
if(cmd.getName().equalsIgnoreCase("damage")) {
if(p.hasPermission("system.damage")) {
p.setHealth(p.getHealth()-2);
}else {
p.sendMessage("§cDu hast keine Rechte!");
}
}
return false;
}
}
Ich hab mal das Thema Minecraft hinzugefügt. Das ist eine recht spezifische Frage zu Minecraft und nicht zu Java allgemein.
Gruß
Wenn du den Code schön veröffentlichst gibt es die Lösung schneller...