Coding mit Java | Java-basierten APIs

  • Ersteller Ersteller ij9F_i0FaF-d9lrDSDDpDbfo
  • Erstellt am Erstellt am
Status
Für weitere Antworten geschlossen.
Erstens mal ein Tipp aus dem Hause @Datenstau: Du importierst im Projekt wohl Spigot Code aus der 1.7.x, lässt den Server jedoch mit der Spigot 1.8 laufen. Änder das mal als erstes. Dann zum Code:

Zuerst wird überprüft ob das Tier weiter als 15 Blöcke entfernt ist, wenn ja, dann wird es zur Zielposition teleportiert.
Dies garantiert in erster Linie, dass das Tier, weil es etwa in ein Loch gefallen ist, dem Spieler nicht mehr folgen kann, weil es zu weit entfernt ist. Wenn dies alles nicht der Fall sein sollte wird überprüft, ob das Tier mindestens einen Block vom Spieler entfernt ist. Dies sorgt dafür, dass es sich nicht ständig versucht in den Spieler hinein zu bewegen. Jetzt kommen wir zum NMS (Native Minecraft Source) Teil. Hierbei wird durch die CraftBukkit Implementierung der SpigotAPI ein Objekt "mob" des Typs EntityCreature erzeugt. Da Mobs im NMS eine Navigation (erreichbar über die Methode .getNavigation();) besitzen, können wir das Tier dazu bringen sich zu einer bestimmten Location zu bewegen. Hierbei wird ein PathEntity Objekt erzeugt, welches alle Wegpunkte bis zum Ziel gespeichert hat. Nun setzt man die Navigation wiederum auf diesen Pfad und gibt auch eine Geschwindigkeit (in diesem Fall 0.8 - es kann aber auch beliebig schnell sein) an. Ich hoffe, dass das zum Verständis für den Code beigetragen hat. Wenn nicht, dann frag gerne weiter ;)

Danke, verstehe jetzt alles. Außerdem folgt mir meine Kuh jetzt :D
 
Hey c:
Ich habe mittlerweile verstanden , wie man random items einem Spieler per Command gibt (bin am lernen von java :c) .
Aber ich wollte es jz so machen , dass man ein zufälliger Spieler in einer ArrayList ein zufälliges item alle 10 Sekunden bekommt :c. Aber wie geht sowas :ccc
 
Ich wollte dich darauf hinweisen, dass du ihn erstmal frägst, bevor du ihn beleidigst.. wenn du selbst nicht besser bist, bzw. ihn nicht beurteilen kannst, sollte man nicht so eine große Klappe haben.
Ok, 1. Hat er gesagt dass er gerade Java lernt --> Bukkit Kiddy
2. Sollte das keine Beleidigung sein
3. Ich kann ne große Klappe haben da ich schon seit 3 Jahren Java und seit 1 1/2 Jahren Bukkit mache und ich werde ihm bei seinem Problem nachher helfen
 
Ok, 1. Hat er gesagt dass er gerade Java lernt --> Bukkit Kiddy
2. Sollte das keine Beleidigung sein
3. Ich kann ne große Klappe haben da ich schon seit 3 Jahren Java und seit 1 1/2 Jahren Bukkit mache und ich werde ihm bei seinem Problem nachher helfen
Dann ignorier das einfach und helfe ihm gleich, und weise ihn darauf hin, zuerst Java besser zu lernen, anstatt ihn gleich anzumachen ;)
 
  • Like
Reaktionen: DerTechNick
Ok, 1. Hat er gesagt dass er gerade Java lernt --> Bukkit Kiddy
2. Sollte das keine Beleidigung sein
3. Ich kann ne große Klappe haben da ich schon seit 3 Jahren Java und seit 1 1/2 Jahren Bukkit mache und ich werde ihm bei seinem Problem nachher helfen
Du konntest java seit der 1. Minute?
Und Kiddy ist nen busschen hart ausgedrückt...
 
Hey c:
Ich habe mittlerweile verstanden , wie man random items einem Spieler per Command gibt (bin am lernen von java :c) .
Aber ich wollte es jz so machen , dass man ein zufälliger Spieler in einer ArrayList ein zufälliges item alle 10 Sekunden bekommt :c. Aber wie geht sowas :ccc
int rand = new Random().nextInt(yourList.size());
UUID uuid = yourList.get(rand); (falls deine Liste UUID's speichert)
Und dann nur noch den Countdown.
 
  • Like
Reaktionen: xSentisHD
@xSentisHD Würde sagen dass es so richtig ist WENN du Players und ItemStacks in den ArrayListen hast und du die befüllt hast...

Code:
        ArrayList<Player> players = new ArrayList<>();
        ArrayList<ItemStack> items = new ArrayList<>();

        
   
        Bukkit.getScheduler().scheduleSyncRepeatingTask(this/*<-- Plugin*/, new Runnable() {
       
            @Override
            public void run() {
           
                Random rdm1 = new Random();
           
                Player p = players.get(rdm1.nextInt(players.size()));
                p.getInventory().addItem(items.get(rdm1.nextInt(items.size())));
                           
            }
        },0/*<-- Delay*/, 200/*<-- Period (hier alle 10 Sekunden)*/);
 
Zuletzt bearbeitet:
  • Like
Reaktionen: xSentisHD
Hey Leute hab ein Problem ich würde zwar gerne diesen äußerst interessanten Thread weiter beobachten, jedoch macht mir die ForenSoftware einen Strich in die Rechnung andauernd bekomm ich keine Hinweise mehr. Hat jemand eine Ahnung warum, und wie ich das beheben kann?
 
@Craftmaster2610 Oben rechts neben der Seitenauswahl am Rand, steht dort was von beobachten?


Mal ne andere Frage. Wie macht ihr das in SG mit den Truhen, dass sie nicht jede Runde an der selbe Stelle (also an unterschiedlichen Positionen) spawnen?
Das umzusetzen wäre für mich problemlos, nur komm ich überhaupt nicht auf den richtigen Weg, was die Umsetzung betrifft.
Geht ihr zu jeder Truhenposition hin und speichert die Location? Oder markiert ihr die Map und speichert alle Locations der Truhen?
Und wenn ihr de Locations habt, wie setzt ihr die? Per Random (setzen, oder nicht setzen)? Und zur letzten "Frage": Habt ihr eine gewisse Truhenanzahl auf der Map, wie Hive? Es wäre dann ja möglich, dass wenn ich bspw. 200 Truhen habe, die aber nur auf einer Hälfte der Map sind, weil dann die maximale Anzahl erreicht ist.

Also ich will nix Code oder so, das ist nicht mein Problem. Eher die Umsetzung, wie ich das "Truhe zufällig spawnen"-System aufbaue.

Danke.
 
@Craftmaster2610 Oben rechts neben der Seitenauswahl am Rand, steht dort was von beobachten?


Mal ne andere Frage. Wie macht ihr das in SG mit den Truhen, dass sie nicht jede Runde an der selbe Stelle (also an unterschiedlichen Positionen) spawnen?
Das umzusetzen wäre für mich problemlos, nur komm ich überhaupt nicht auf den richtigen Weg, was die Umsetzung betrifft.
Geht ihr zu jeder Truhenposition hin und speichert die Location? Oder markiert ihr die Map und speichert alle Locations der Truhen?
Und wenn ihr de Locations habt, wie setzt ihr die? Per Random (setzen, oder nicht setzen)? Und zur letzten "Frage": Habt ihr eine gewisse Truhenanzahl auf der Map, wie Hive? Es wäre dann ja möglich, dass wenn ich bspw. 200 Truhen habe, die aber nur auf einer Hälfte der Map sind, weil dann die maximale Anzahl erreicht ist.

Also ich will nix Code oder so, das ist nicht mein Problem. Eher die Umsetzung, wie ich das "Truhe zufällig spawnen"-System aufbaue.

Danke.
Einfach verschiedene Maps mit verschiedenen Truhen :]
 
  • Like
Reaktionen: mickedplay
Status
Für weitere Antworten geschlossen.

Soziale Medien

  • X
  • TikTok

Über uns

  • GommeHD.net ist einer der größten Minecraft-Server der Welt. Dir gefällt unser Server? Dann unterstütze uns durch einen Kauf im Shop!
  • Shop