EntityDamageEvent Bukkit Plugin?

Hi, ich hätte einmal eine Frage.

Ich bin relativ neu im Coden von Plugins (insgesamt im Coden) und wollte ein Plugin machen, bei dem, wenn der Spieler irgendeinen Schaden erhält, der Spieler in die Luft geschleudert wird.

Das funktioniert auch alles, bis auf das Erkennen des Schadens. Der Spieler wird irgendwie nur gelauncht, wenn er Fallschaden bekommt. Aber nicht, wenn er z.B. von einem Zombie geschlagen wurde.

Kann mir da jemand helfen? Danke. 🙂

Falls man das auf dem Bild nicht sieht, nochmals hier:

import org.bukkit.entity.Entity;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityDamageByBlockEvent;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.bukkit.event.entity.EntityDamageEvent;
import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.util.Vector;

public class SchadenGleichLaunchChallenge extends JavaPlugin {
  public class SchadenListener implements Listener {
    @EventHandler(priority = EventPriority.HIGHEST)
    public void onEvent(final EntityDamageEvent event) {
      Entity e = event.getEntity();

      if (e instanceof Player || event instanceof EntityDamageByEntityEvent || event instanceof EntityDamageByBlockEvent) {
        Player player = (Player)e;
        player.setVelocity(new Vector(0, 70, 0));
      }
    }
  }

  public void onEnable() {
    PluginManager pluginManager = this.getServer().getPluginManager();
    SchadenListener listener = new SchadenListener();
    pluginManager.registerEvents(listener, this);
  }

  public void onDisable() {
  }
}
Bild zum Beitrag
Java, Minecraft, Plug-in
kann mir wer helfen?
ich komme einfach nicht auf die uhrsache des fehlers hier der code und fehlerausgabe wenn jemand was findet  
Fehlerhafte Methode:

public boolean equals(Object other) {
if (this == other) return true;
    if (!(other instanceof Polygon)) return false;
    Polygon otherPolygon = (Polygon) other;

    // Check if both polygons are empty
    if (this.points.isEmpty() || otherPolygon.points.isEmpty()) {
        return false;
    }

    // Check if the number of points is the same
    if (this.points.size() != otherPolygon.points.size()) {
        return false;
    }

    // Check if the points in the same order are equal
    for (int i = 0; i < points.size(); i++) {
        if (!this.points.get(i).equals(otherPolygon.points.get(i))) {
            return false;
        }
    }

    return true;
}

Main Methode:

package einfprog;

import java.util.ArrayList;

public class Main {
    public static void main(String[] args) {
        // Test der Implementierung 

        // Testfall 1: Leeres Polygon sollte nicht gleich einem anderen leeren Polygon sein
        ArrayList<Point> emptyPoints1 = new ArrayList<>();
        ArrayList<Point> emptyPoints2 = new ArrayList<>();

        Polygon emptyPolygon1 = new Trigon(emptyPoints1); // Verwende eine konkrete Implementierung wie Trigon
        Polygon emptyPolygon2 = new Trigon(emptyPoints2); // Verwende eine konkrete Implementierung wie Trigon

        System.out.println("Empty Polygon1: " + emptyPolygon1);
        System.out.println("Empty Polygon2: " + emptyPolygon2);
        System.out.println("Empty Polygon1 equals Empty Polygon2: " + emptyPolygon1.equals(emptyPolygon2)); // Erwartet false
        System.out.println();

        // Testfall 2: Trigon mit verschiedenen Punkten
        ArrayList<Point> points3 = new ArrayList<>();
        points3.add(new Point(1, 1));
        points3.add(new Point(2, 2));
        points3.add(new Point(3, 3));

        Trigon trigon1 = new Trigon(points3);

        System.out.println("Trigon1: " + trigon1);
        System.out.println("Circumference: " + trigon1.getCircumference());
        System.out.println("Area: " + trigon1.getArea());
        System.out.println("Is Rectangle: " + trigon1.isRectangle());
    }
}

Fehlermeldung:
Part 1 -- 10/11 tests passed: Point: Success Point.equals(): Success Point.getDistance(): Success Point.toString(): Success Polygon: Success Polygon.equals(): Failed: Expected true for [] and [], but was false Polygon.getCircumference(): Success Polygon.repair(): Success Polygon.clean(): Success Polygon.toString(): Success new Trigon(): Success

Java, Code, Fehlermeldung
Welche Programmiersprache als Quereinsteiger für das Berufsleben?

Hallo,

Die Frage hier geht explizit an Programmierer, die idealerweise schon ein Job haben.

ich wollte fragen welche Programmiersprache gut als Quereinsteiger geeignet ist um in das Berufsleben durchzustarten.

Ich beherrsche mittlerweile etwas von Phyton und SQL.

Es gibt ja YouTuber oder Webseiten die dir versprechen in einigen Monaten in deren Kurs schon eine Arbeitsstelle zu finden, natürlich gegen Bezahlung.

Aber ich will es eigenständig schaffen, deshalb meine Frage:

Welche Programmiersprache ist gut geeignet um in kurzer Zeit ein Job auszuüben. Natürlich wird man in diesem kurzem Zeitraum nicht das ganze Know How wissen aber man sollte sich im Job weiterentwickeln. Natürlich weiß ich das ich dann nicht viel Geld bekommen werde.

Und mit welcher Programmiersprache sollte man im welchem Beruf einsteigen (z.B bei SQL kann man Daten Analyst werden.) Also was könnt ihr empfehlen.

Und kennt Ihr auch gute bücher oder YT kanäle?

Und was hattet Ihr schon für Erfahrungen im ersten Job, was war die erste Programmiersprache mit der Ihr euch beworben habt und wie war der Anfang als ihr gelernt hattet und der erste Tag als Programmierer im Job? Habt ihr Tipps an mich?

Zum Schluss noch: Bitte keine Unnötigen Kommentare abgegeben. Ich weiß es ist Zeitaufwendig, aber ich möchte denn Willen durchsetzen. Ich bin auch kein Scriptkiddi, ich will's wirklich erlernen. Ich antworte auch gerne auf eure Kommentare.

PC, Beruf, Lernen, Google, Job, Amazon, SQL, HTML, IT, Webseite, Java, JavaScript, C Sharp, Entwickler, Entwicklung, Programmiersprache, Python, Quereinsteiger, Laptop
Kann jemand bitte auf Fehler korrigieren?

Hallo, ich habe folgende Aufgabe, bei der ich mir nicht so sicher bin, ob meine Antworten richtig sind. Falls einer drüber schauen kann, wäre ich sehr dankbar.

Das was ich Fett makiert habe sind meine Antworten.

Ich bedanke mich im Voraus!

Folgende Klassen sind gegeben:

public absract class Ticket{
private String inhaber;
public Tickets(String inhaber){
this.inhaber=inhaber;
}

protected String getInhaber[]{
return inhaber;
}
abstract double getPreis();
public String toString(){
return "Ticket von "+inhaber;
}
}

public final class Einzelticket extends Ticket{
public int maxStationen = 3;
public Einzelticket(String inhaber, int maxStationen]{
super(inhaber);
this.maxStationen=maxStationen;
}
public String toString(){
return "Einzelticket von " + super.getInhaber() + " für " + maxStationen + }
public double getPreis(){
}
}
public class Aboticket extends Ticket{
private int gueltigkeitsTage;
public Aboticket(String inhaber, int gueltigkeitsTage){
super(inhaber);
this.gueltigkeitsTage=gueltigkeitsTage;
}
public double getPreis(){
return gueltigkeitsTage *1.2;
}
}
public class Test{
public static void main(String args[]{
Einzelticket et = new Einzelticket("Alice",3);
Aboticket at = new Aboticket("Bob",4);
Ticket[] tickets = {et};
//Hier wurden die Befehle eingefügt
}}

Die folgenden Befehle werden am Ende der Main-Methode eingefügt.

Wählen Sie so aus, dass wahre Aussagen entstehen.

a.)System.out.println(et); ____________

Zur Auswahl:

- gibt "Einzelticket von Alice für 3 Stationen" aus

- gibt "Ticket von Alice" aus

- gibt kryptische String aus

- schmeißt einen Compilerfehler

b.)System.out.println(at); __________

Zur Auswahl

- gibt "Einzelticket von Bob für 3 Stationen" aus

- gibt "Ticket von Bob" aus

- gibt kryptische String aus

- schmeißt einen Compiler

c.)System.out.println(et.getInhaber()); ___________

Zur Auswahl

- gibt "Alice" aus

- gibt "Ticket von Alice" aus

- gibt "true" aus

- schmeißt einen Compilerfehler

d.)System.out.println(et instanceof Ticket); ___________

Zur Auswahl

- gibt "true" aus

- gibt "false" aus

- gibt "Einzelticket" aus

- gibt "Ticket" aus

- schmeißt einen Compilerfehler

e.)System.out.println(tickets[0] instanceof Einzelticket); __________

Zur Auswahl

- gibt "true" aus

- gibt "false" aus

- gibt "Einzelticket" aus

- gibt "Ticket" aus

- schmeißt einen Compilerfehler

f.) tickets[0].maxStationen=2; ____________

Zur Auswahl

- setzt das Attribut maxStationen auf 2

- passiert nichts

- schmeißt einen Compilerfehler

g.)System.out.println(tickets[0]); ___________

Zur Auswahl

- gibt "Einzelticket von Alice für 3 Stationen" aus

- gibt "Ticket von Alice" aus

- gibt kryptische String aus

- schmeißt einen Compilerfehler

h.)System.out.println(tickets[0].getPreis()); _________

Zur Auswahl

- gibt "2.5" aus

- gibt "Ticket von Alice" aus

- gibt kryptischen String aus

- schmeißt einen Compilerfeher

Java, Code
Handsimulation - richtig?

Hallo, ich wollte mal gerne wissen, ob meine Handsimulation richtig ist.

Ich hoffe jemand kann mir dabei helfen :)

Aufgabe

Führt eine Handsimulation für folgendes Programm durch. Schreibt also in die Tabelle, welche Zeilen nacheinander ausgeführt werden (erste Spalte), und welche Werte die Variablen nach Ausführung dieser Zeile jeweils haben (die anderen Spalten).

  • Variablen, die zu diesem Zeitpunkt noch nicht existieren, werden mit - markiert
  • Variablen, deren Wert undefiniert ist, werden mit undef markiert
  • Felder von Variablen, die sich nicht ändern bleiben leer! Dies wird interpretiert als “gleicher Wert wie in der Zeile davor”. Das wiederholte Eintragen von Werten in Felder von Variablen die sich nicht ändern ist falsch (Das Eintragen eines Wertes bedeutet "der Speicher für die Variable bekommt an dieser Stelle (erneut) den angegebenen Wert zugewiesen").
  • Die erste ausgeführte Zeile einer Funktion ist immer die öffnende Klammer
  • Die letzte ausgeführte Zeile einer Funktion ist immer die schließende Klammer
  • Beim Sprung in eine Funktion wird hinter die aktuelle Zeile in Klammern die Zeile, aus der der Sprung stattgefunden hat, geschrieben (z.B: 7(14); Achtung: Bitte nur die Zahlen und die Klammern. Sollten Leerzeichen dazwischen kommen, erkennt ISIS die Lösung als falsch an).
  • Die Anzahl der Zeilen in der Tabelle ist abgezählt, die Vorgaben sind korrekt.

Programm

 
1 public class HuetchenSpieler {
2
3  public static void sortieren(Huetchen links, Huetchen mitte, Huetchen rechts) {
4   links.kugel = rechts.kugel;
5   rechts.kugel = mitte.kugel;
6   mitte = links;  
7  }
8
9
10  public static void main(String[] args) {
11   Huetchen l = new Huetchen(0);
12   Huetchen m = new Huetchen(0);
13   Huetchen r = new Huetchen(1);
14   Terminal.print("Wo ist die 1?\n links: "+l.kugel+", mitte: "+m.kugel+", rechts: "+r.kugel+" \n");
15   sortieren(l,m,r);
16   Terminal.print("Und jetzt .. \n links: "+l.kugel+", mitte: "+m.kugel+", rechts: "+r.kugel+" \n");
17   sortieren(l,m,r);
18   Terminal.print("Und jetzt .. \n links: "+l.kugel+", mitte: "+m.kugel+", rechts: "+r.kugel+" \n");
19  }
20 }

Das Objekt l erhält bei der Ausführung im Speicher Adresse 50, Objekt m Adresse 51 und Objekt r Adresse 52.

Um euch ein besseres Bild von der Klasse Huetchen machen zu können steht im folgenden der Quelltext. Bei

der Simulation soll sie aber vernachlässigt werden, nur HuetchenSpieler ist relevant. (Es muss also auch nicht

beim Konstruktoraufruf in die Klasse gesprungen werden!)

Die Klasse Huetchen

public class Huetchen {
  public int kugel;
 
  public Huetchen(int kugel) {
    this.kugel = kugel; 
  }
}

Bild zum Beitrag
Programm, Java, Simulation

Meistgelesene Fragen zum Thema Java