Aus Einer Klasse auf ein Objekt einer anderen Klasse Zugreifen

d.lumpi

Mitglied
Hallo, ich habe da mal wieder eine frage.
Java:
/*
es geht darum,
dass ich wieder einen Discord Bot mit JDA programmiere.
ich will, dass man,
wenn man im chat von discord 
!cmd shutdown schreibt, dass sich der bot dan ausschaltet.
*/
//so sieht das programm in der haupt-klasse aus, um den bot zu definieren.
public ShardManager shardMan;
    
    public DiscordBot1() throws LoginException, IllegalArgumentException {
        
        DefaultShardManagerBuilder builder = DefaultShardManagerBuilder.createDefault("ODIyNDA2OTI0OTU0NzYzMjY1.YFR0Ig.RI39P2jCog3KXht4L8RjFW0tuq8");
        
        builder.setActivity(Activity.playing("Bot 1 sein."));
        builder.setStatus(OnlineStatus.ONLINE);
        
        
        builder.addEventListeners(new CommandListener());
        
        shardMan = builder.build();
        System.out.println("Bot 1 online.");
        
        shutdown();
        
        
    }
//und so sieht der code aus, um ihn zu herunterfahren:
if(shardMan != null) {
                            shardMan.setStatus(OnlineStatus.OFFLINE);
                            shardMan.shutdown();
                            System.out.println("Bot 1 offline.");
                        }
//jetzt will ich, dass im eventlistener sobald man die nachricht !cmd shutdown empfängt, er sich herunterfährt. ich habe es so probiert, was aber nicht geht:
if(args[0].equalsIgnoreCase("shutdown")) {
                        ShardManager shardMan = DiscordBot1.shardMan(); // wobei DiscordBot1 meine klasse meint, in der der bot definiert wird...
                        shardMan.setStatus(OnlineStatus.OFFLINE);
                        shardMan.shutdown();
                        System.out.println("Bot 1 offline.");
                    }
//Kann mir bitte da wer helfen?
 
K

kneitzel

Gast
Also Du drückst Dich sehr unverständlich aus finde ich. So verstehe ich nicht wirklich, was Du willst.

Generell brauchst du eine Referenz auf eine Instanz, wenn Du auf diese zugreifen willst. Und wenn eine Instanz auf andere zugreifen können soll, dann wird der Instanz eine solche Referenz gegeben.

Wenn diese Referenz zwingend notwendig ist, dann bietet es sich an, diese Referenz z.B. im Konstruktor zu übergeben.

Was natürlich nicht gehen kann ist, dass man sich einfach ein neues Objekt erstellt. Das einfach mal bildlich beschrieben: Du hast eine Geldbörse und hast Da Dein Geld rein getan. Jetzt liegt die Geldbörse zuhause rum und du bist unterwegs. Also kaufst Du Dir einfach eine neue und erwartest, dass dann Dein Geld in der neuen Geldbörse erscheint dammit Du da dran kommst ...

Also wenn Du in CommandListener Zugriff auf shardMan brauchst, dann kannst Du die Instanz dem CommandListener übergeben. Dazu müsste der Konstruktor das als Parameter erwarten, im Konstruktor müsste es in einer Instanzvariable gespeichert werden und schon hättest Du im EventListener auch Zugriff drauf.

Evtl. bietet das Discord Framework auch irgendwelche anderen Wege um an ShardManager zu kommen, aber das wäre zumindest ein gangbarer Weg.

Generell scheint mir aber auch der shutdown() Aufruf etwas dubios. Denn laut Dokumentation ist die Funktion halt:
Shuts down all JDA shards, closing all their connections. After this method has been called the ShardManager instance can not be used anymore.

Aber das nur am Rande. Generell wäre meine Empfehlung, dass Du Dich erst einmal in Ruhe mit der Java Programmierung auseinander setzt. Denn dieses Discord Bot Basteln sehe ich nicht wirklich aus wirkliches Erlernen von Java, zumindest scheint es in meinen Augen untauglich, um sich damit Java bei zu bringen....

Edit: An einer Stelle hatte ich Minecraft erwähnt - das sollte natürlich Discord heißen und wurde verbessert ...
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Ein Objekt einer Klasse mehreren anderen Klassen zur Verfügung stellen? Allgemeine Java-Themen 6
P Objekt einer Klasse erzeugen, die als String vorliegt Allgemeine Java-Themen 3
multiholle Objekt einer Klasse anhand eines String erzeugen Allgemeine Java-Themen 3
G Objekt einer inneren Klasse als Listener Allgemeine Java-Themen 3
V Aus String -> Objekt einer Klasse erzeugen Allgemeine Java-Themen 7
B objekt einer klasse dynamisch erzeugen Allgemeine Java-Themen 6
V Objekt einer Klasse, deren Name nur als String vorhanden Allgemeine Java-Themen 4
K Testen einer Klasse mit File Objekt als Parameter Allgemeine Java-Themen 6
M Methodenübersicht einer Klasse einsehen Allgemeine Java-Themen 14
E Eine Methode einer extendeten Klasse deakitivieren Allgemeine Java-Themen 12
Lukas2904 Schleife mit ansteuerung einer Klasse Allgemeine Java-Themen 5
Drachenbauer wie kann ich alle instanzen einer Klasse durchsehen, ohne, dass diese in einer Liste erzeugt wurden? Allgemeine Java-Themen 11
P einen public <Optinal String> in einer anderen Klasse mit einem Int vergleichen Allgemeine Java-Themen 2
V Threads Probleme beim Aufrufen von Methoden einer anderen Klasse (Threads) Allgemeine Java-Themen 14
L Operatoren Java Reflections: Alle Methoden einer Klasse aufrufen ohne Exceptions Allgemeine Java-Themen 5
N Generic Type einer Generischen Klasse während der Laufzeit bekommen Allgemeine Java-Themen 2
J int Werte in einer anderen Klasse in Arrays speichern Allgemeine Java-Themen 3
D Warum kann ich eine (deflaut) Klasse aus einer Libary in einem anderen Projekt benutzen? Allgemeine Java-Themen 3
ReinerCoder Methode einer Klasse meldet Fehler "misplaced construct(s)" Allgemeine Java-Themen 13
P Array einer abstrakten Klasse Allgemeine Java-Themen 4
J Zugriff auf erstellte Objekte einer Klasse von einer Klasse ausserhalb Allgemeine Java-Themen 3
kodela Dynamisches Array in einer Klasse Allgemeine Java-Themen 5
P mehrer Verschiedene Objekte in einer Klasse erstellen. Allgemeine Java-Themen 4
Messoras Klassen Sämtliche Variablen einer Klasse übernehmen Allgemeine Java-Themen 6
N Methoden Methoden einer Klasse auf Grundlage eines Strings aufrufen Allgemeine Java-Themen 6
A Best Practice Unterschied zwischen einer sauberen Dependency Injection und einer statischen Klasse Allgemeine Java-Themen 5
C Klassen Problem mit Funktion einer Generischen Klasse die ein Interface implementiert Allgemeine Java-Themen 0
N Automatisches einfügen einer selbst generierten ID in Klasse mit Annotation Allgemeine Java-Themen 8
3 OOP Instanzen aus einer Klasse persistent speichern. Allgemeine Java-Themen 9
D Eclipse Methode einer anderen Klasse aufrufen Allgemeine Java-Themen 14
S Zur Laufzeit Klasse mit einer anzahl von X Objekten erstellen Allgemeine Java-Themen 5
T Klassen Mehoden einer Klasse erweitern Allgemeine Java-Themen 5
T Klassen Instanz einer Klasse ausserhalb des Jar Allgemeine Java-Themen 2
G Fehler beim instanzieren einer Generischen Klasse Allgemeine Java-Themen 5
S Tool um mehrere Klassen in einer Klasse vereinen? Allgemeine Java-Themen 6
D ClassLoader für Variablen einer Klasse setzen Allgemeine Java-Themen 24
T Alle Instancen einer Klasse auflisten Allgemeine Java-Themen 13
Gossi Threads mit unterschiedlichen Aufgaben in einer Klasse? Allgemeine Java-Themen 9
Z Socket Aufruf einer Klasse in einer anderen Klasse Allgemeine Java-Themen 6
M Typ einer inneren Klasse mit reflections finden Allgemeine Java-Themen 7
C Auf eine Methode von einer anderen Klasse aus ändern? Allgemeine Java-Themen 4
F Warum kann man nur von einer Klasse erben? Allgemeine Java-Themen 10
E Collections Collections die Subojekte einer Klasse enthält? Allgemeine Java-Themen 7
D von einer Klasse auf Komponente in anderer Klasse zugreifen Allgemeine Java-Themen 5
A variable aus einer anderen klasse verändern Allgemeine Java-Themen 5
Kr0e Reflection - Instanz einer Klasse erstellen, ohne Default-Constructor Allgemeine Java-Themen 15
Z Daten von einer Klasse in eine andere übertragen Allgemeine Java-Themen 8
C Variablen Variable einer Klasse in einer anderen Klasse Nutzen Allgemeine Java-Themen 8
P Threads Thread innerhalb einer Klasse - ohne Extra Klasse Allgemeine Java-Themen 9
M Problem beim schreiben einer eigene generische Klasse Hashtable Allgemeine Java-Themen 11
A Listener für constructor einer bestimmen Klasse Allgemeine Java-Themen 9
M Problem beim schreiben einer eigene generische Klasse LinkedList Allgemeine Java-Themen 34
P Variablen in einer anderen Klasse auf Änderungen überwachen Allgemeine Java-Themen 12
M Neue Instanz/Kopie einer unbekannten Klasse Allgemeine Java-Themen 7
D Referenz einer Funktion aus einer anonymen Klasse? Allgemeine Java-Themen 3
W Erweitern einer Klasse mit Generics Allgemeine Java-Themen 8
J InvocationException im Thread (innerhalb von call() einer Callable Klasse) Allgemeine Java-Themen 2
N JAR Datei ausführen unter Angabe einer speziellen Klasse Allgemeine Java-Themen 2
P Reflection - Wie rufe ich die Felder einer Klasse in einer Methode der Basisklasse? Allgemeine Java-Themen 4
C Aufruf einer Methode einer anderen Klasse Allgemeine Java-Themen 14
S Instanz in einer Klasse erstellen, und dem Konstruktor die eigene Klasse mitgeben Allgemeine Java-Themen 4
S Identische Methoden in einer Klasse Allgemeine Java-Themen 2
J Instanz-Felder einer Klasse initialisieren Allgemeine Java-Themen 6
G Thread einer anderen Klasse Allgemeine Java-Themen 8
reibi Klassenpfad mal anders - dynamisches Laden einer Klasse Allgemeine Java-Themen 7
G Aufruf einer Methode wenn Klasse noch nicht existiert Allgemeine Java-Themen 3
S toString() für alle Member einer Klasse. Allgemeine Java-Themen 6
T Parameter einer Klasse auf Interface prüfen Allgemeine Java-Themen 6
G generische Klasse als Parameter einer generischen Klasse Allgemeine Java-Themen 5
S Problem mit einer Klasse Allgemeine Java-Themen 10
R Wert von einer Klasse in eine andere bekommen Allgemeine Java-Themen 6
G genauen Typ einer generischen Klasse zur Laufzeit ermitteln Allgemeine Java-Themen 2
K Suche alle Objekte einer bestimmten Klasse Allgemeine Java-Themen 2
L Auflistung aller Methoden einer Klasse Allgemeine Java-Themen 9
E Array einer anonymen Klasse Allgemeine Java-Themen 6
M Beim Laden einer Klasse implizit weitere Klassen mitladen Allgemeine Java-Themen 3
G Generics: Instanzieren einer Klasse in einer Methode. Allgemeine Java-Themen 2
S Hinzufügen einer Klasse! Allgemeine Java-Themen 3
W Probleme beim Ausführen einer Java Klasse auf Kommandozeile Allgemeine Java-Themen 17
T Instanz einer Interface abgeleiteten Klasse erzeugen Allgemeine Java-Themen 3
B Instanzen einer Klasse als Array Allgemeine Java-Themen 7
C Objekte einer Klasse zählen Allgemeine Java-Themen 25
M vererbung einer "selbst-instanzierungs-klasse" Allgemeine Java-Themen 16
P Maximale Größe einer Klasse Allgemeine Java-Themen 9
M Überprüfen einer zur Laufzeit geladenen Klasse Allgemeine Java-Themen 3
M Rückgabewert einer Klasse Allgemeine Java-Themen 4
G jar-Name einer Klasse Allgemeine Java-Themen 9
H Funktion aus einer anderen Klasse ausführen Allgemeine Java-Themen 3
D Gehts praktischer? Thema:Verschiedene Instanzen einer Klasse Allgemeine Java-Themen 3
G mit reflection an die felder einer klasse rankommen Allgemeine Java-Themen 4
M Felder + Werte einer Klasse auslesen Allgemeine Java-Themen 6
B Absolute Paf einer Klasse in dieser dynamisch auslesen? Allgemeine Java-Themen 5
S Klasse einer Methode übergeben und überprüfen Allgemeine Java-Themen 7
G Panel einer Klasse in einer anderen anzeigen Allgemeine Java-Themen 4
A Eine Datei in einer Klasse Allgemeine Java-Themen 14
M Sourcecode einer API-Klasse Allgemeine Java-Themen 4
A Was haltet ihr von einer standardisierten Main Klasse? Allgemeine Java-Themen 4
M Class-Object einer Klasse Allgemeine Java-Themen 4
G Nur bestimmte Variablen einer Klasse übernehmen Allgemeine Java-Themen 4
J Instanz einer inneren Klasse Allgemeine Java-Themen 9

Ähnliche Java Themen

Neue Themen


Oben