Du bist nicht angemeldet. [Anmelden]
Seite 26 von 26 < 1 2 ... 24 25 26
Optionen
Thema bewerten
Re: Fragen und Antworten * [Re: Benz] - #3203955 - 04.11.2022, 16:36:17
djchrisnet
​Verified Prototype Hater

Registriert: 27.05.2006
Beiträge: 905
Ort: Elmshorn
Also da ist ziemlich viel durcheinandergeschoben, dass ignorie ich mal.

Der Teil mit this.onEventReceived ... muss jedenfalls in die App function rein, damit this === App ist
_________________________
» AppEntwickler
» Prototype Hater



[zum Seitenanfang]  
Re: Fragen und Antworten [Re: Benz] - #3203964 - 04.11.2022, 17:30:08
DdvOiD
​Still lovin

Registriert: 24.02.2005
Beiträge: 775
Ort: Deutschland, NRW, Kempen
Antwort auf: Benz

Code:
    var appinstance = this;
	this.onEventReceived = function(user, type, key, data, appContentSession) {
        if(key == "starwars") {
            //Den /entry-Befehl Simulieren
            appinstance.chatCommands.entry(user, data, "starwars");
        }
        else if (key == "closed") {
            hidegb(user);
        }
        else {
            user.sendPrivateMessage("Unbekannter Key: " + key);
        }
    }	 
	




Hier ist ebenfalls die funktion falsch.
Dein onEventReceived hat einen parameter zuviel, wodurch die kontrolle so auch nicht richtig klappt.

falsch: this.onEventReceived = function(user, type, key, data, appContentSession) {

richtig: this.onEventReceived = function(user, type, data, appContentSession) {
_________________________
Ich weiß ich bin ein A-loch... :-D , doch Scheiß egal ob ihr mich liebt... ICH hab mich gern :-]

[zum Seitenanfang]  
Re: Fragen und Antworten [Re: DdvOiD] - #3203973 - 04.11.2022, 18:37:56
Benz
Ehena​mtlic​hes M​onste​r​

Registriert: 09.04.2004
Beiträge: 177
Ort: Landkreis Cuxhaven
Also gehe ich mal deine Version durch......

Code:
    var appinstance = this;
	this.onEventReceived = function(user, type, data, appContentSession) {
        if(key == "starwars") {
            //Den /entry-Befehl Simulieren
            appinstance.chatCommands.entry(user, data, "starwars");
        }
        else if (key == "closed") {
            hidegb(user);
        }
        else {
            user.sendPrivateMessage("Unbekannter Key: " + key);
        }
    }	 
	

müsste dann dementsprechen so sein oder ? ....


Ja ich habe viel durcheinander, das ist mir selbst klar, weil ich nur rumprobiere bis es klappt.
Ich war ja schon sehr froh darüber, dass das App-Fenster reagiert und sich öffnete und alles anzeigte, was ich in die HTML eingebunden habe. :-D

Die User-App ansich funktioniert ja auch, aber da ich aus der HTML raus will um ein Fenster als JS darzustellen, womit ich auch Befehle im Chat ausführen kann, bringt mir die gesamte HTML nichts mehr.
Die HTML hat das Problem, das ich sowas in einer Art Homepage ect. machen könnte, aber das nicht mit dem Chat interagieren kann. :((

Hier mal ein Beispiel, welches ich aus Crash festgestellt habe :
Ich klicke etwas im Fenster an, der Chatbot reagiert öffentlich im Channel auf meinem Tun. :-O

Nur leider finde ich nichts geschriebenes, was mir mit der JS als Fenster erlaubt, um auch die Befehle im Chat auszuführen.
Oder gibt es da diesbezüglich auch eine HTML-Verlinkung, die mir sowas erlauben würde ?
Ich persöhnlich habe nichts in irgendwelchen Seiten gefunden, die mir meine Antwort nahe gelegt hätten. :-|


Bearbeitet von Benz (04.11.2022, 18:39:17)
_________________________
Ich mag evt. ein wenig verrückt sein, aber was ist heute noch normal ?
Jeder Mensch hat in diesem Fall eine eigene Definition :-P

Mit frechen Grüßen
TMboy :-D

[zum Seitenanfang]  
Re: Fragen und Antworten [Re: Benz] - #3203980 - 04.11.2022, 20:16:36
root

Registriert: 19.03.2011
Beiträge: 1.670
Ein weiterer Fehler wäre beispielsweise die Methode setAppContent der Klasse User. Die richtige Methode lautet sendAppContent. Insgesamt würde ich dir dazu raten, die Best Practices der Software-Entwicklung und die Konventionen der Programmiersprache JavaScript einzuhalten. Beispielsweise lädst du ein Objekt zum Key "gb" aus der Persistenz, was aber nicht erkennen lässt, was sich genau dahinter verbirgt. Offenbar soll es ein Array sein, weil du der Variable data in der else-Klausel ein leeres Array zuweist. Die Funktion hidegb entfernt dann einen Content (und verbirgt ihn nicht), steht wohl aber irgendwie im Zusammenhang mit den gb-Daten. Auch würde ich dir raten, mit Blockvariablen zu arbeiten (deshalb markiert beispielsweise die IDE Webstorm das Schlüsselwort "var"). Ordnung in dem Code macht es später leichter, ihn zu warten und zu erweitern. Das spart dir viele frustrierende Stunden Code-Arbeit.

Nur rumprobieren bis es klappt ist nicht die beste Idee. Ich empfehle: Wenn dir ein Fehler angezeigt wird, dann recherchiere nach dem Fehler. So sammelst du auf Dauer nützliche Erfahrungen. Die Fehlermeldung zu lesen und zu verstehen ist von besonderer Bedeutung für die Programmierarbeit. Rumprobieren und stundenlang festzustellen, dass es nicht funktioniert, frustriert nur und raubt vielen auf Dauer die Motivation.

Zu deiner letzten Frage: Das kannst du regeln, indem du Client.executeSlashCommand(string) nutzt, ist aber eher weniger interessant. Alle Befehle, die nicht auf einer Whitelist stehen, erfordern eine weitere Abfrage durch James. Ich würde es per Event lösen, welches nach einem Klick im User Interface ein Signal an deine serverseitige Anwendung sendet. Das tatsächliche Ereignisse kann dann direkt im Channel ausgelöst werden. Mehr dazu findest du in der API-Doku zur Methode sendEvent(string, object).
_________________________
Wer sich in einer Diskussion auf seine Autorität beruft, gebraucht nicht den Verstand, sondern das Gedächtnis.
Leonardo da Vinci (1452-1519)

[zum Seitenanfang]  
Re: Fragen und Antworten [Re: root] - #3204120 - 05.11.2022, 21:41:07
Benz
Ehena​mtlic​hes M​onste​r​

Registriert: 09.04.2004
Beiträge: 177
Ort: Landkreis Cuxhaven
Antwort auf: its good
Nur rumprobieren bis es klappt ist nicht die beste Idee. Ich empfehle: Wenn dir ein Fehler angezeigt wird, dann recherchiere nach dem Fehler. So sammelst du auf Dauer nützliche Erfahrungen. Die Fehlermeldung zu lesen und zu verstehen ist von besonderer Bedeutung für die Programmierarbeit. Rumprobieren und stundenlang festzustellen, dass es nicht funktioniert, frustriert nur und raubt vielen auf Dauer die Motivation.

Da ich keine Fehlermeldungen habe, wäre mir ein Fehler nicht aufgefallen, bisher läuft alles problemlos.
Ja ich hatte vorher ein Gästebuch als Frame drin, diese habe ich irgendwann einmal ausgetauscht und durch eine HTML ersetzt.
Daher kann es noch sein, das alte Daten vorhanden sind, die noch Daten einer GB abfragen, aber nichtmehr benutzt.
Könnte ich mal rauslöschen, danke dir für den Hinweis. :-]
_________________________
Ich mag evt. ein wenig verrückt sein, aber was ist heute noch normal ?
Jeder Mensch hat in diesem Fall eine eigene Definition :-P

Mit frechen Grüßen
TMboy :-D

[zum Seitenanfang]  
Seite 26 von 26 < 1 2 ... 24 25 26


Moderator(en):  Misterious