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!
Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
Ich möchte gerne im späteren verlauf TeamSpeakAPI und SpigotAPI zusammen führen.
Beispielsweise mit der Verifizierung.
Da ich so etwas noch nie gemacht habe, frage ich hier.
Wie funktioniert das?
Ich kann ja schlecht den BOT einfach mit einbauen, da er eine Runnable Jar Datei brauch, das Plugi hingegen nicht.
Wieso sollte der "BOT" denn eine ausführbare Datei brauchen? Das ist ja nur der Fall, wenn es ein unabhängiges Programm sein soll. Letztlich ist, was dabei passiert, dass die main-Methode aus der im Manifest festgelegten Hauptklasse aufgerufen wird und sich die Teamspeak3-API von TheHolyWaffle (von der gehe ich einfach mal aus, welche alternativen gibt es schon?) mit einem Teamspeak verbindet und dann auf irgendwelche Events reagiert. Dann darf das Programm natürlich nicht vorzeitig terminieren, da sonst der Bot ja auch einfach offline ist, aber ich vermute auch einfach mal, das klar ist, wie das geht.
Unterm Strich: Die ausführbare Datei macht nichts anderes, als Code auszuführen (wow, wer hätte das gedacht?). In diesem Fall eben den Code, der die Telnet Query auf den Teamspeak verbinden lässt.
In deinem Plugin steht Code. Der Server ist eine ominöse ausführbare Jar-Datei. Der Server lädt Plugins. Code aus Plugins wird ausgeführt (sonst wäre das ganze Konzept doch etwas sinnlos).
Unterm Strich: Code aus Plugins wird auch ausgeführt, genau wie der aus ausführbaren Jar-Dateien. Der Unterschied ist, dass du dich im Plugin nicht darum kümmern musst, dass das Programm nicht terminiert, da das Plugin ja meistens erst ausgeht wenn der Server gestoppt wird.
Das bedeutet: Natürlich kannst du die Teamspeak3 API einfach mit in dein Plugin einbinden! Wichtig ist aber, dass die benötigten Klassen aus der API mit in deine kompilierte (nicht ausführbare) Plugin Datei kopiert werden. Ansonsten findet er beim Serverstart einfach die Klassen nicht.
Das bedeutet: Natürlich kannst du die Teamspeak3 API einfach mit in dein Plugin einbinden! Wichtig ist aber, dass die benötigten Klassen aus der API mit in deine kompilierte (nicht ausführbare) Plugin Datei kopiert werden. Ansonsten findet er beim Serverstart einfach die Klassen nicht.
Ich in meinem Fall habe nun versucht einfach eine Load Class in einer Package zu erstellen.
Passieren tut allerdings nichts. Ich kann die Nachricht
Java:
System.out.println("Der BOT wurde gestartet.");
meines Wissens schlecht in der CMD vom MC-Server bekommen, oder? Aber wo dann?
Load-Class | TeamSpeakBOT,
Java:
package teamspeak;
import com.github.theholywaffle.teamspeak3.TS3Api;
import com.github.theholywaffle.teamspeak3.TS3Config;
import com.github.theholywaffle.teamspeak3.TS3Query;
import com.github.theholywaffle.teamspeak3.TS3Query.FloodRate;
public class Load {
public static final TS3Config config = new TS3Config();
public static final TS3Query query = new TS3Query(config);
public static final TS3Api api = query.getApi();
public static void main(String[] args) {
config.setHost("localhost");
query.connect();
config.setFloodRate(FloodRate.UNLIMITED);
api.selectVirtualServerById(1);
api.login("BOT", "oGwNdUCZ");
api.setNickname("SkyPvPDE");
Events.loadEvents();
System.out.println("Der BOT wurde gestartet.");
}
}
Importet ist die API von TheHolyWaffle v.1.1.0 und die SpigotAPI v.1.8.8.
Du scheinst die Grundlagen von Java bzw. allgemein von Programmiersprachen nicht zu beherrschen, da das eine absolute Anfängerfrage ist. Ich schalge dir vor, dass du dich bevor du versuchst, eine Anwendung in einer Programmiersprache zu schreiben diese auch erstmal überhaupt anschaust.
"Java" angeschaut zu haben, bedeutet nicht, dass man in seiner IDE eine Library einbinden kann, wie z.B. Spigot, und weiß, dass man in seiner Hautpklasse da irgendwie "extends JavaPlugin" und "onEnable" und "onDisable" hinschreiben muss, so ein komisches "@Override" kann man auch noch drüber machen wenn man gerade lustig ist. Ein paar void Methoden hier und da, static dort und drüben, hm, jetzt komme ich nicht mehr weiter, fragen wir doch mal im nächstbesten Forum.
So hart sich das anhört, so wahr ist es. Du kannst dir und anderen viel Zeit sparen, wenn du dich mit dem, was du tun möchtest, auch selbst (und selbstständig!!) beschäftigst. Sonst wirst du dich recht schnell wieder hier beim Schreiben einer Frage finden, und wieder, und wieder, und wieder.
Dein Problem ist wirklich, dass du dich nicht ausreichend mit Java beschäftigt hast, bevor du dich in Spigot oder Bungee oder was weiß ich geschmissen hast (oder du hast davor einfach gar nichts mit irgendeiner [objektorientierten] Programmiersprache gemacht, was es auch nicht besser macht). Es gibt wirklich viele Tutorials zu Java (nicht auf YouTube!!!!!!!!!!!!!!!!!!!!!!!) die wirklich gut sind, vor allem die interaktiven Tutorials machen meiner Meinung nach am meisten Sinn, da dann auch noch was hängen bleibt. Wirklich lernen kann man aber nur, wenn man sich auch gewollt und kontinuierlich damit beschäftigt, das heißt mit kleinen Projekten (nicht Spigot oder sonst irgendwas!!) anfängt, die Eigenarten der Sprache bzw. des Programmierens allgemein kennenlernt und sich dann immer weiter steigert. So hat man immer wieder kleine Erfolgserlebnisse, die zu einer positiven Erfahrung beitragen, sonst kann es sein, dass man schnell die Lust verliert, wenn man sich übernimmt.
Weiterhin ist es eigentlich nie eine gute Idee (wirklich nie), Login und Passwort zu wasauchimmer zu veröffentlichen, wie in Zeile 23 deines Code-Snippets.
Ich wünsche dir aber weiterhin viel Erfolg mit deinem Projekt.
Sowas oder sowas Ähnliches wird immer immer immer immer immer wieder in sämtlichen Foren, deutsch oder englisch, runtergeleiert, weil es auch immer das gleiche ist. Es werden keine Fragen zur Programmierung mit Spigot gestellt, sondern Fragen die gar nicht gestellt werden müssten, würden die Leute mehr selbst denken und weniger von irgendwelchen 0815 YouTube Tutorials abschreiben und denken, sie verstünden, was da gerade abgeht, tun sie nämlich nicht.
Du scheinst die Grundlagen von Java bzw. allgemein von Programmiersprachen nicht zu beherrschen, da das eine absolute Anfängerfrage ist. Ich schalge dir vor, dass du dich bevor du versuchst, eine Anwendung in einer Programmiersprache zu schreiben diese auch erstmal überhaupt anschaust.
"Java" angeschaut zu haben, bedeutet nicht, dass man in seiner IDE eine Library einbinden kann, wie z.B. Spigot, und weiß, dass man in seiner Hautpklasse da irgendwie "extends JavaPlugin" und "onEnable" und "onDisable" hinschreiben muss, so ein komisches "@Override" kann man auch noch drüber machen wenn man gerade lustig ist. Ein paar void Methoden hier und da, static dort und drüben, hm, jetzt komme ich nicht mehr weiter, fragen wir doch mal im nächstbesten Forum.
So hart sich das anhört, so wahr ist es. Du kannst dir und anderen viel Zeit sparen, wenn du dich mit dem, was du tun möchtest, auch selbst (und selbstständig!!) beschäftigst. Sonst wirst du dich recht schnell wieder hier beim Schreiben einer Frage finden, und wieder, und wieder, und wieder.
Dein Problem ist wirklich, dass du dich nicht ausreichend mit Java beschäftigt hast, bevor du dich in Spigot oder Bungee oder was weiß ich geschmissen hast (oder du hast davor einfach gar nichts mit irgendeiner [objektorientierten] Programmiersprache gemacht, was es auch nicht besser macht). Es gibt wirklich viele Tutorials zu Java (nicht auf YouTube!!!!!!!!!!!!!!!!!!!!!!!) die wirklich gut sind, vor allem die interaktiven Tutorials machen meiner Meinung nach am meisten Sinn, da dann auch noch was hängen bleibt. Wirklich lernen kann man aber nur, wenn man sich auch gewollt und kontinuierlich damit beschäftigt, das heißt mit kleinen Projekten (nicht Spigot oder sonst irgendwas!!) anfängt, die Eigenarten der Sprache bzw. des Programmierens allgemein kennenlernt und sich dann immer weiter steigert. So hat man immer wieder kleine Erfolgserlebnisse, die zu einer positiven Erfahrung beitragen, sonst kann es sein, dass man schnell die Lust verliert, wenn man sich übernimmt.
Weiterhin ist es eigentlich nie eine gute Idee (wirklich nie), Login und Passwort zu wasauchimmer zu veröffentlichen, wie in Zeile 23 deines Code-Snippets.
Ich wünsche dir aber weiterhin viel Erfolg mit deinem Projekt.
Sowas oder sowas Ähnliches wird immer immer immer immer immer wieder in sämtlichen Foren, deutsch oder englisch, runtergeleiert, weil es auch immer das gleiche ist. Es werden keine Fragen zur Programmierung mit Spigot gestellt, sondern Fragen die gar nicht gestellt werden müssten, würden die Leute mehr selbst denken und weniger von irgendwelchen 0815 YouTube Tutorials abschreiben und denken, sie verstünden, was da gerade abgeht, tun sie nämlich nicht.
Wo ich dir Recht geben muss, muss ich dir Recht geben. Zwar arbeite ich mit der SpigotAPI schon sehr lange, dennoch habe ich mir nie Java selbst ausführlich angeschaut.
Kannst du mir Interaktive Tutorials empfehlen?
Zur Veröffentlichung des Passworts, das läuft auf'm Localhost, also relativ unrelevant.
Ich selbst mag die Tutorials von W3Schools.com. Dort gibt es auch noch viele weitere Tutorials, nicht nur zu Java, sondern z.B. auch zu JavaScript, HTML, etc..
Zu deiner letzten Frage: Falls du dich auf "Der BOT wurde gestartet." beziehst, würde das in der Standardausgabe (also in der Konsole) zu sehen sein. Dazu muss die Klasse "Load" aber geladen werden und deren statische Methode ausgeführt werden.
Ich kann wirklich nicht mehr machen, außer dir nochmals zu empfehlen dich zuerst mehr mit Java an sich auseinanderzusetzen bevor du mit deinem Projekt weitermachst, da du dir deine Frage dann auch selbst hättest beantworten können.
@petomka Erstmal danke für deine ausführliche Antwort.
Wie meinst du das genau?
Ich in meinem Fall habe nun versucht einfach eine Load Class in einer Package zu erstellen.
Passieren tut allerdings nichts. Ich kann die Nachricht
Java:
System.out.println("Der BOT wurde gestartet.");
meines Wissens schlecht in der CMD vom MC-Server bekommen, oder? Aber wo dann?
Load-Class | TeamSpeakBOT,
Java:
package teamspeak;
import com.github.theholywaffle.teamspeak3.TS3Api;
import com.github.theholywaffle.teamspeak3.TS3Config;
import com.github.theholywaffle.teamspeak3.TS3Query;
import com.github.theholywaffle.teamspeak3.TS3Query.FloodRate;
public class Load {
public static final TS3Config config = new TS3Config();
public static final TS3Query query = new TS3Query(config);
public static final TS3Api api = query.getApi();
public static void main(String[] args) {
config.setHost("localhost");
query.connect();
config.setFloodRate(FloodRate.UNLIMITED);
api.selectVirtualServerById(1);
api.login("BOT", "oGwNdUCZ");
api.setNickname("SkyPvPDE");
Events.loadEvents();
System.out.println("Der BOT wurde gestartet.");
}
}
Importet ist die API von TheHolyWaffle v.1.1.0 und die SpigotAPI v.1.8.8.
Wie wär‘s wenn du deine Login Daten sind die config einträgst bevor du den Bot verbinden lässt?!
Java Liest deine Datei von oben nach unten sprich wenn du jetzt zum Beispiel eine Nachricht ausgibst: System.out.prontIn(„Test“ + string); und den String darüber erstellt und „definiert“ hast bekommst du auch keinen Fehler jedoch wenn du den String erst unter der Nachricht erstellst bekommst du einen Fehler (Eclipse zeigt es dir schon im vorhinein als Fehler an) da du von Java verlangst einen String zu verwenden den Java noch garnicht erkennen konnte. Das wäre wie dein Lehrer sagt die Rechne x aus erklärt dir aber erst dannach wie das geht. Du wirst es nicht schaffen in sofern du dir das wissen nicht selbst angeeignet hast versteht sich.
Wie wär‘s wenn du deine Login Daten sind die config einträgst bevor du den Bot verbinden lässt?!
Java Liest deine Datei von oben nach unten sprich wenn du jetzt zum Beispiel eine Nachricht ausgibst: System.out.prontIn(„Test“ + string); und den String darüber erstellt und „definiert“ hast bekommst du auch keinen Fehler jedoch wenn du den String erst unter der Nachricht erstellst bekommst du einen Fehler (Eclipse zeigt es dir schon im vorhinein als Fehler an) da du von Java verlangst einen String zu verwenden den Java noch garnicht erkennen konnte. Das wäre wie dein Lehrer sagt die Rechne x aus erklärt dir aber erst dannach wie das geht. Du wirst es nicht schaffen in sofern du dir das wissen nicht selbst angeeignet hast versteht sich.