Spigot Listener?
Hallo liebe Community,
Ich programmiere zur Zeit ein Plugin, was verhindern soll, dass Spieler aus dem selben Team sich bekämpfen können. Dazu möchte ich einen Listener verwenden, der überprüft, ob und wann Spieler kämpfen und dann zu schauen ob sich denn tatsächlich der Instanz "Player" angehören. Schon hier komme ich an meine Grenzen, denn dieser Teil will mir nicht gelingen. Was habe ich denn Falsch gemacht?
Code:
public void onHit(EntityDamageByEntityEvent e) {
if ((e.getEntity() instanceof Player) && (e.getDamager() instanceof Player)) {
......
}
2 Antworten
Hallo, wie wird das Team des Spielers denn bestimmt? Handelt es sich um Scoreboard-Teams, oder werden diese am Spielbeginn etc. festgelegt?
Dann kann ich die vermutlich weiter helfen...
LG
Servus.
Also.. Ich weiß nicht in welcher Version du Programmierst, ich vermute einfach mal in der Version 1.14. Da gibt es mehrere Möglichkeiten:
- HashMaps
- ArrayLists
- Lists
- Configs (oder Datenbank)
Ich erkläre dir einfach mal die einfachste Methode, die HashMaps:
Eine HashMap kann zwei Objekte Speichern. Damit ist es einfacher. Du kannst in deiner Klasse bspw. einen String mit dem namen "teamrot" erstellen und in die HashMap die UUID des Spielers.
...
public class DamageEvent {
//String der Teams
private String teamrot = "teamrot", teamblau = "teamblau";
//Dort werden die Teammitglieder gespeichert.
private HashMap<UUID, String> teams = new HashMap<UUID, String>();
//Die Hashmap und die Strings solltest du in der Klasse, wo die Spieler den
//Teams zugewiesen werden reintun, dann kannst du hier die Klasse in
//dem Constructor implementieren und von der anderen Klasse darauf zugreifen.
public void onHit(EntityDamageByEntityEvent e) {
if ((e.getEntity() instanceof Player) && (e.getDamager() instanceof Player)) {
//Hier Programmierst du das Event so, dass es den Damage des Teammitglieds //Cancelt. -> e.setCacelled(true);
}
}
}
Ich lasse dir mal die Knobelarbeit und helfe dir hier nicht weiter. Man Lernt nur durch Probieren, Probieren und nochmal Probieren. Falls du dennoch weitere Hilfe benötigst, steht die Kommentarsektion dir offen.