Du bist nicht angemeldet. [Anmelden]
Optionen
Thema bewerten
Einbinden von sendPostMessage - #2772669 - 05.02.2016, 02:58:18
Benz
Ehena​mtlic​hes M​onste​r​

Registriert: 09.04.2004
Beiträge: 177
Ort: Landkreis Cuxhaven
Ich habe mal eine Frage, jaaa ich weiß, davon habe ich häufiger welche :-D

Mein Problem sieht derzeit so aus :

App-Logs (privat): StarBots: ERROR: org.mozilla.javascript.EvaluatorException: Can't find method com.knuddels.apps.user.BotUser.sendPostMessage(org.mozilla.javascript.ConsString). (knuddelsDEV.3056XXXX.StarBots@v0: main.js#98)
at knuddelsDEV.3056XXXX.StarBots@v0: main.js:98

Natürlich habe ich folgendes versucht : ;-)

Code:
rank.addLabelChangeListener(function(toplistLabelChangeEvent) {
var user = toplistLabelChangeEvent.getUser();
var newLabel = toplistLabelChangeEvent.getNewLabel();
var bot = KnuddelsServer.getDefaultBotUser();
var message = toplistLabelChangeEvent.getNewLabel();
bot.sendPublicMessage('Funktionierender Ausgabetext !');

var message = 'Fehlerhafter Ausgabetext';
bot.sendPostMessage(message);



Mein Problem bezieht sich auf folgende Zeile, die ich versuche einzubinden : :-O

Code:
var message = 'Fehlerhafter Ausgabetext';
bot.sendPostMessage(message);



Wo liegt da das Problem ? Kann mir irgendwer sagen wo ich da einen Fehler habe ? :-|
Ich hab das Spiel auf jedem Fall online, die Fehlermeldung bekomme ich nur privat und im Log gesendet, jedoch wird die Message nicht ausgegeben per /m, wie ich es geplant hatte.
Jedoch läuft das Spiel welches ich habe damit einwandfrei, so das ich es erst einmal weiterlaufen lassen kann.


Lieben Dank im vorraus, für die hoffentlich glücklich stellende Antwort :-]


Bearbeitet von TMboy (05.02.2016, 03:01:49)
_________________________
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: Einbinden von sendPostMessage [Re: Benz] - #2772677 - 05.02.2016, 03:56:25
Kev777
​Forumsengel

Registriert: 03.09.2010
Beiträge: 7.612
http://developer.knuddels.de/docs/classes/BotUser.html#method_sendPostMessage

sendPostMessage (receivingUser, topic, text)

Es fehlt also "receivingUser" und "topic" würde ich mal sagen.
_________________________
Orwell war ein Optimist
________

„Würden die Menschen das Geldsystem verstehen, hätten wir eine Revolution noch vor morgen früh.“
- Henry Ford

[zum Seitenanfang]  
Re: Einbinden von sendPostMessage [Re: Kev777] - #2772708 - 05.02.2016, 12:13:14
Benz
Ehena​mtlic​hes M​onste​r​

Registriert: 09.04.2004
Beiträge: 177
Ort: Landkreis Cuxhaven
Also angenommen so oder wie ?

Code:
var message = 'Fehlerhafter Ausgabetext','Ausgabetopic';
sendPostMessage(receivingUser, topic, text);


oder wie ? :-O

Ich versuche das gerade irgendwie zu verstehen, weil irgendwo muss ja auch stehen, was er senden soll... :-|
Oder macht der das automatisch ?

Sorry, aber in dieser Ecke scheine ich wohl ein wenig dämlich zu sein, hab sendPostMessage noch nie verwendet :-D


Bearbeitet von TMboy (05.02.2016, 12:17:16)
_________________________
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: Einbinden von sendPostMessage [Re: Benz] - #2772723 - 05.02.2016, 13:25:54
UltimateG4ming
​#WirSindKeineBots

Registriert: 15.06.2010
Beiträge: 4.024
Im Grunde ist es total simpel aufgebaut. Der erste Parameter in der sendPostMessage ist der User, der die Nachricht erhalten soll.
Als nächstes kommt der Betreff der /m. Zu guter Letzt kommt der vollständige Text der Nachricht.

Der Aufruf wäre dann also folgender:
Code:
var bot = KnuddelsServer.getDefaultBotUser();
bot.sendPostMessage(receivingUser, 'Betreff der Nachricht', 'Das ist der Text, der in der Nachricht dargestellt wird');
_________________________
if ($ahnung == 'keine' ) { use ( FAQ ) && ( Google | | Suche ) }
if ($antwort == 0 ) { post ( Frage ) }

[zum Seitenanfang]  
Re: Einbinden von sendPostMessage [Re: UltimateG4ming] - #2772739 - 05.02.2016, 14:44:38
Benz
Ehena​mtlic​hes M​onste​r​

Registriert: 09.04.2004
Beiträge: 177
Ort: Landkreis Cuxhaven
Antwort auf: Dreamboy-1996 <3
Im Grunde ist es total simpel aufgebaut. Der erste Parameter in der sendPostMessage ist der User, der die Nachricht erhalten soll.
Als nächstes kommt der Betreff der /m. Zu guter Letzt kommt der vollständige Text der Nachricht.

Der Aufruf wäre dann also folgender:
Code:
var bot = KnuddelsServer.getDefaultBotUser();
bot.sendPostMessage(receivingUser, 'Betreff der Nachricht', 'Das ist der Text, der in der Nachricht dargestellt wird');



Ich hab das nun eingebunden, man beachte, das ist die Textausgabe der Topliste, die öffentlich und als /m ausgegeben werden soll ....

Öffentlich funktioniert es ....

Beispiel :

Code:



var access = KnuddelsServer.getToplistAccess();
var profile = KnuddelsServer.getAppProfileEntryAccess();

// Definiere deine Spielränge

var rank = access.createOrUpdateToplist('points2', 'Game StarWars-Sith', {

           
			0: 'Ungeeignet',
            1: 'Rang A',
 
            100000: 'Rang Z',
});

profile.createOrUpdateEntry(rank, ToplistDisplayType.LabelAndRank);

rank.addLabelChangeListener(function(toplistLabelChangeEvent) {
var user = toplistLabelChangeEvent.getUser();
var newLabel = toplistLabelChangeEvent.getNewLabel();
var bot = KnuddelsServer.getDefaultBotUser();
bot.sendPublicMessage('Gratulation °>_h' + user + '|/m ' + user + '|/w ' + user + '<°, °BB°Du hast soeben den °G°Rang _' + newLabel + '_ °BB°erreicht.');

bot.sendPostMessage(receivingUser, 'Rangaufstieg', 'gewünschter Text');




Ich hatte bereits die Zeile
Code:
var bot = KnuddelsServer.getDefaultBotUser();


enthalten, ich benötigte nur noch die öffentliche Ausgabe :
Code:
bot.sendPostMessage(receivingUser, 'Rangaufstieg', 'gewünschter Text');


Jedoch baut sich ein neues Problem auf, er erkennt die receivingUser nicht ! :-|

Das hier wäre die Fehlermeldung :

Code:
App-Logs (privat): StarBots: ERROR: org.mozilla.javascript.EcmaError: ReferenceError: "receivingUser" is not defined. (knuddelsDEV.3056XXXX.StarBots@v0: main.js#97)
	at knuddelsDEV.3056XXXX.StarBots@v0: main.js:97


Was mach ich verkehrt ? :-O
_________________________
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: Einbinden von sendPostMessage [Re: Benz] - #2772742 - 05.02.2016, 14:55:29
Vampiric Desire
​ChannelMaster

Registriert: 15.09.2013
Beiträge: 1.681
einfach user.sendPostMessage(betreff, text)
ist der shortcut für
bot.sendPostMessage(user, betreff, text)
_________________________
/apps install 30559674.ChannelMaster

[zum Seitenanfang]  
Re: Einbinden von sendPostMessage [Re: Benz] - #2772812 - 05.02.2016, 21:53:51
Tjeri
​Caros Lakai

Registriert: 14.07.2009
Beiträge: 393
Antwort auf: TMboy

Jedoch baut sich ein neues Problem auf, er erkennt die receivingUser nicht ! :-|

Was mach ich verkehrt ? :-O


var user = ...

Du nennst deine Variable "user" und nicht "receivingUser". Das kann nicht funktionieren ;)

[zum Seitenanfang]  
Re: Einbinden von sendPostMessage [Re: Vampiric Desire] - #2772921 - 06.02.2016, 17:57:12
Benz
Ehena​mtlic​hes M​onste​r​

Registriert: 09.04.2004
Beiträge: 177
Ort: Landkreis Cuxhaven
Achte auf meine letzte Zeile , das funzelt auf jedem Fall ;-)
Hab es bei mir auch so eingebunden, funktioniert Wunderbar :-]

Code:
var access = KnuddelsServer.getToplistAccess();
var profile = KnuddelsServer.getAppProfileEntryAccess();

// Definiere deine Spielränge

var rank = access.createOrUpdateToplist('points2', 'Game StarWars-Sith', {

           
			0: 'Ungeeignet',
            1: 'Rang A',
 
            100000: 'Rang Z',
});

profile.createOrUpdateEntry(rank, ToplistDisplayType.LabelAndRank);

rank.addLabelChangeListener(function(toplistLabelChangeEvent) {
var user = toplistLabelChangeEvent.getUser();
var newLabel = toplistLabelChangeEvent.getNewLabel();
var bot = KnuddelsServer.getDefaultBotUser();
bot.sendPublicMessage('Gratulation °>_h' + user + '|/m ' + user + '|/w ' + user + '<°, °BB°Du hast soeben den °G°Rang _' + newLabel + '_ °BB°erreicht.');

user.sendPostMessage('Rangaufstieg', 'gewünschter Text');


Danke an Vampiric Desire, er hat eine supi Antwort auf Lager gehabt ;*

Manchmal reicht es auch einfach user zu machen und var user.... stehen zu lassen :-D


Bearbeitet von TMboy (06.02.2016, 18:01:19)
_________________________
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: Einbinden von sendPostMessage [Re: Benz] - #2772943 - 06.02.2016, 21:03:52
UltimateG4ming
​#WirSindKeineBots

Registriert: 15.06.2010
Beiträge: 4.024
Es bringt auch nicht viel, wenn Du Code-Vorschläge stumpf kopierst. Du musst Dir den geposteten Code ansehen und dann versuchen, ihn zu verstehen. Dass aus meinem Teil das receivingUser nicht funktioniert hat, ist logisch, da du keine Variable hast, die diesen Namen trägt.
_________________________
if ($ahnung == 'keine' ) { use ( FAQ ) && ( Google | | Suche ) }
if ($antwort == 0 ) { post ( Frage ) }

[zum Seitenanfang]  
Re: Einbinden von sendPostMessage [Re: Benz] - #2772947 - 06.02.2016, 21:19:24
Kev777
​Forumsengel

Registriert: 03.09.2010
Beiträge: 7.612
Antwort auf: TMboy
Also angenommen so oder wie ?

Code:
var message = 'Fehlerhafter Ausgabetext','Ausgabetopic';
sendPostMessage(receivingUser, topic, text);


oder wie ? :-O

Ich versuche das gerade irgendwie zu verstehen, weil irgendwo muss ja auch stehen, was er senden soll... :-|
Oder macht der das automatisch ?

Sorry, aber in dieser Ecke scheine ich wohl ein wenig dämlich zu sein, hab sendPostMessage noch nie verwendet :-D


Ich habe die Methode "sendPostMessage" der Klasse "BotUser" für sich allein gepostet und ebenso die originalen variablen aus dem Beispiel in der API Doku absichtlich so stehen lassen.
Ein klick auf den von mir geposteten Link hätte dich direkt in die API Doku gebracht und dir erklärt wie die Methode genau zu verwenden ist und dir auch gleich noch erklärt welcher Paramter der methode für was gut ist.

Wie schon geschrieben wurde bringt es dir nichts nur stumpf code zu kopieren ohne dir dessen funktion bewußt zu sein.


(Ergänzend noch zu dem post von Dreamboy-1996 <3)
_________________________
Orwell war ein Optimist
________

„Würden die Menschen das Geldsystem verstehen, hätten wir eine Revolution noch vor morgen früh.“
- Henry Ford

[zum Seitenanfang]  


Moderator(en):  Plueschzombie