• Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!

Bot Programmieren

JavaOxygen

Minecrafter
Registriert
22 Oktober 2017
Beiträge
7
Alter
22
Diamanten
250
Minecraft
JavaCode_
Hallo,

Ich würde gerne einen Bot Programmieren der auf bestimmte Nachrichten Antwortet.
Beispielsweise wenn Spieler kkaay45 schreibt "Hallo" antwortet der Bot "Hallo, kkaay45!".

Momentan habe ich nur das:

@EventHandler
public void onChat(AsyncPlayerChatEvent e) {

Nun weiß ich nicht weiter, wie frage ich ab ob der Spieler wirklich Hallo geschrieben hat, und nicht Hallo leon.
 

Subjektiv

Kuhfänger
Registriert
8 Juli 2017
Beiträge
54
Diamanten
300
Minecraft
Subjektiv
@stevebruder kannst du mir ggf. einen Code dazu schicken?

Ich sag mal so.. wenn du dich selbst "Leidenschaftlicher Programmierer" nennst, solltest du evtl. mal selbst ein wenig Programmieren statt dir von anderen den Code schicken zu lassen.. versuch dir mal selber zu überlegen wie du das schaffst, sonst lernst du das nie..
 

Baba43

Ehem. Teammitglied
Ehem. Teammitglied
Registriert
5 November 2012
Beiträge
869
Diamanten
60
Minecraft
baba43
Das mindeste, was du tun kannst, bevor du dir hier alles auf dem Silbertablett servieren lässt, ist ein Blick in das offizielle Tutorial. Dort werden dir die wichtigsten Dinge beigebracht, die du einfach wissen musst. Es hat gar keinen Zweck, mit irgendwas anzufangen, ohne sich einen Überblick darüber zu verschaffen. Sonst kannst du uns auch gleich eine Beschreibung deines Plugins geben und wir programmieren dein Plugin :rolleyes:

Falls du nach dem Lesen des Tutorial konkrete Fragen hast, helfen dir die Leute hier (mir eingeschlossen) sicher gerne weiter.
 

kleinesferkel13

Minecrafter
Gesperrt
Registriert
24 Juli 2016
Beiträge
22
Alter
23
Diamanten
0
Minecraft
kleinesferkel13
Ist das denn so schwer?

Du machst es einfach so, dass du die Codezeile, wo eingelesen wird, dass du "Hallo" geschrieben hast, über der steht, wo drinnensteht, dass er antwortet. Oder sehe ich da was falsch? Ansonsten wie bereits oben erwähnt durch Baba43 es erwähnt hat.

Mit freundlichen Grüßen
Marco | kleinesferkel13
 

Subjektiv

Kuhfänger
Registriert
8 Juli 2017
Beiträge
54
Diamanten
300
Minecraft
Subjektiv
Ist das denn so schwer?

Du machst es einfach so, dass du die Codezeile, wo eingelesen wird, dass du "Hallo" geschrieben hast, über der steht, wo drinnensteht, dass er antwortet. Oder sehe ich da was falsch? Ansonsten wie bereits oben erwähnt durch Baba43 es erwähnt hat.

Mit freundlichen Grüßen
Marco | kleinesferkel13

Richtig, du siehst es falsch. :)
Geh weiter supporten ;);)
 
F

Figz

Guest
Ist das denn so schwer?

Du machst es einfach so, dass du die Codezeile, wo eingelesen wird, dass du "Hallo" geschrieben hast, über der steht, wo drinnensteht, dass er antwortet. Oder sehe ich da was falsch? Ansonsten wie bereits oben erwähnt durch Baba43 es erwähnt hat.

Mit freundlichen Grüßen
Marco | kleinesferkel13

@kleinesferkel13
XDDD Ja scheinbar ist es so schwer. Allerdings gibt es in diesem Fall eine Möglichkeit dies wirklich so zu realisieren. Nur bezweifel ich leider, dass du diese selbst erstellen könntest, sry.

B2T:

Als kleine Info: es ist nunmal asynchron, deswegen passiert dieser mist. Wenn du jede deiner Zeilen an den Spieler einzeln schickst
Code:
sendMessage("----")
sendMessage("Hallo bla")
sendMessage("---")
können auch diese durcheinander ankommen.
 

petomka

Redstoneengineer
Registriert
8 Oktober 2012
Beiträge
41
Alter
26
Diamanten
322
@Figz
Klar, mein PC würfelt auch immer in welcher Reihenfolge er die Codezeilen ausführt.

Asynchron bedeutet (vereinfacht), dass das Event nicht auf dem Main Thread läuft, und nicht, dass der Code irgendwie ausgeführt wird. Eine schöne Erklärung dazu gibt es auch auf StackOverflow: Asynchron vs Synchron
 
F

Figz

Guest
@Figz
Klar, mein PC würfelt auch immer in welcher Reihenfolge er die Codezeilen ausführt.

Asynchron bedeutet (vereinfacht), dass das Event nicht auf dem Main Thread läuft, und nicht, dass der Code irgendwie ausgeführt wird. Eine schöne Erklärung dazu gibt es auch auf StackOverflow: Asynchron vs Synchron

Tut mir leid, aber ich weiß nicht recht ob ich dich richtig verstehe.. Du willst mir also sagen, dass das was ich gesagt habe nicht stimmt bzw. Schwachsinn ist oder?

Dann lies bitte selbst noch einmal, was in dem verklinkten Thread steht! Oh man ej.
 

petomka

Redstoneengineer
Registriert
8 Oktober 2012
Beiträge
41
Alter
26
Diamanten
322
Ja, du hast es erfasst, genau das will ich. Zumindest ab dem Wort "asynchron".
Tut mir leid, aber ich weiß nicht recht ob ich dich richtig verstehe..
Same.

Anweisungen eines Programms oder eines Algorithmus werden nie
durcheinander ankommen
so wie du es ausdrückst.

Es könnte sein, dass zwischen einzelnen Zeilen, die der Spieler empfängt, eine andere steht (eben von anderen Threads gesendet), aber durchgewechselt wird dabei nichts und schon gleich gar nicht gewürfelt. Da die Definition von "durcheinander" eine Aufhebung einer Ordnung bezeichnet, ist deine Aussage einfach falsch. Sonst kann man das ganze mit dem Programmieren nicht mehr viel zu tun, wenn mein Algorithmus sowieso macht worauf er gerade Lust hat.

Mag sein dass ich auf i-Tüpfelchen rumreite oder dass wir aneinander vorbeireden, aber beim Programmieren kann man ja auch nicht einfach hinschreiben, was ungefähr gemeint ist.
 

JTK222

Threadripper
Registriert
5 September 2013
Beiträge
1.150
Diamanten
323
Minecraft
JTK222
Also....
Code:
sendMessage("----")
sendMessage("Hallo bla")
sendMessage("---")
Da kommt nix durcheinander weil das Synchron wäre.
Wenn du vorher 3 Thread aufmachst und da dann in jedem thread einen teil der nachricht abschickst, dann könnte es durcheinander geraten.

Bei der frage hier liegt es daran das die Nachricht empfangen wird, bei dem Empfangs event verarbeitet und evtl. verändert wird.
Und erst danach dann erst im Chat angezeigt wird.
Hier ist es im Grunde auch was synchrones, daher muss die Antwort in einem verzögerten asynchronen thread erfolgen.
(Ich vermute beim asynchronen even wird einfach nur nicht der Main Thread genutzt die nachricht aber dennoch erst nach dem verarbeiten weitergeleitet)
 
F

Figz

Guest
Also....
Code:
sendMessage("----")
sendMessage("Hallo bla")
sendMessage("---")
Da kommt nix durcheinander weil das Synchron wäre.
Wenn du vorher 3 Thread aufmachst und da dann in jedem thread einen teil der nachricht abschickst, dann könnte es durcheinander geraten.

Bei der frage hier liegt es daran das die Nachricht empfangen wird, bei dem Empfangs event verarbeitet und evtl. verändert wird.
Und erst danach dann erst im Chat angezeigt wird.
Hier ist es im Grunde auch was synchrones, daher muss die Antwort in einem verzögerten asynchronen thread erfolgen.
(Ich vermute beim asynchronen even wird einfach nur nicht der Main Thread genutzt die nachricht aber dennoch erst nach dem verarbeiten weitergeleitet)

Okay, da hast du recht. Habe das irgendwie ausgeblendet, da ich schon seit langem eine Methode in meiner API verwendet, die immer asynchron verschickt..

Ja, du hast es erfasst, genau das will ich. Zumindest ab dem Wort "asynchron".

Same.

Anweisungen eines Programms oder eines Algorithmus werden nie

so wie du es ausdrückst.

Es könnte sein, dass zwischen einzelnen Zeilen, die der Spieler empfängt, eine andere steht (eben von anderen Threads gesendet), aber durchgewechselt wird dabei nichts und schon gleich gar nicht gewürfelt. Da die Definition von "durcheinander" eine Aufhebung einer Ordnung bezeichnet, ist deine Aussage einfach falsch. Sonst kann man das ganze mit dem Programmieren nicht mehr viel zu tun, wenn mein Algorithmus sowieso macht worauf er gerade Lust hat.

Mag sein dass ich auf i-Tüpfelchen rumreite oder dass wir aneinander vorbeireden, aber beim Programmieren kann man ja auch nicht einfach hinschreiben, was ungefähr gemeint ist.

Du solltest vielleicht einfach mal genauer lesen. Ich habe nie gesagt, dass die Nachrichten durchgewürfelt werden oder durcheinander kommen.
Sondern einfach dass diese durcheinander ANkommen könnten, wenn man diese eben in einzelnen Threads verschicken würde.
(Ja diese Unklarheit der einzelnen Threads ist mir selbst geschuldet...)

Du hast mit der Definition von "durcheinander" ja genau das ausgedrückt, was ich ich ausdrücken wollte: Die Nachrichten kommen in einer anderen Reihenfolge AN, als ich sie im Quellcode abschicke bzw. stehen habe.
 

petomka

Redstoneengineer
Registriert
8 Oktober 2012
Beiträge
41
Alter
26
Diamanten
322
e02e5ffb5f980cd8262cf7f0ae00a4a9_press-x-to-doubt-memes-memesuper-la-noire-doubt-meme_419-238.jpg
 
Oben