Re: Fragen und Antworten
[Re: Enrico-nrp]
- #2717163 - 11.02.2015, 22:24:36
|
Bizzi is activated.
Registriert: 29.07.2006
Beiträge: 2.581
Ort: Dortmund
|
Die "Überlagerung" wurde vor kurzem doch gefixxt, da viele sich beschwert haben, dass bei /pp die Sounds alle gleichzeitig abgespielt werden. Hier nun die Beschreibung der DisplayGroups:
°>{displayGroup}$ID<°$INHALT°>{displayGroupEnd}<°
Befehle:Es gibt verschiedene Möglichkeiten. Ist $ID mit einem Ausrufezeichen versehen, so wird das Objekt am Anfang "versteckt":
°>{displayGroup}!1<°Versteckter Text°>{displayGroupEnd}<°
°>versteckten Text anzeigen|/tp-showgrp 1<°
Man kann auch eine Gruppierung machen:
°>{displayGroup}1<°
Inhalt 1
°>{displayGroup}2<°
Inhalt 2
°>{displayGroup}3<°
Inhalt 3
°>{displayGroupEnd}<°
°>Text 1|/tp-showgrp 1<°, °>Text 2|/tp-showgrp 2<°, °>Text 3|/tp-showgrp 3<°
Möchte man Standardmäßig ein Objekt "offen" haben, so wird dies zuvor mit addDisplayGroup definiert:
°>{addDisplayGroup}1<°
°>{displayGroup}1<°
Sichtbar
°>{displayGroup}2<°
Versteckt
°>{displayGroupEnd}<°
°>Sichtbar|/tp-showgrp 1<°, °>Versteckt|/tp-showgrp 2<°
Bearbeitet von Bizarrus (11.02.2015, 22:25:17)
_________________________ Bot.public('I love °>features/james-exchange/ft_james-exchange_surprised.gif<>James|/w "<°');
|
[zum Seitenanfang]
|
|
Re: Fragen und Antworten
[Re: Bizarrus]
- #2717172 - 11.02.2015, 23:13:02
|
Laubhaufenbewohner
Registriert: 10.02.2005
Beiträge: 1.479
Ort: Bochum
|
Ergänzung zu den Displaygroups... Es ist auch möglich nachträglich die Sichtbarkeit zu ermöglichen, wenn man z.B. °>{setdisplaygroup}1<° ausgibt.
_________________________ Wo zum Teufel ist dieser Wayne wenn man ihn braucht?!
|
[zum Seitenanfang]
|
|
Re: Fragen und Antworten
[Re: IgelchenM]
- #2717176 - 11.02.2015, 23:43:11
|
Familymitglied
Registriert: 11.09.2004
Beiträge: 41
|
Kann ich so auch nur einzelnen usern sichtbarkeit gegen indem ich ihnen °>{setdisplaygroup}1<° ins P schicke?
|
[zum Seitenanfang]
|
|
Re: Fragen und Antworten
[Re: UltimateG4ming]
- #2717185 - 12.02.2015, 01:18:43
|
Keksimperator
Registriert: 29.10.2007
Beiträge: 384
Ort: Cybernet
|
--------> Selbst gelöscht, war auf was anderes bezogen
Bearbeitet von DerNeuanfang (12.02.2015, 01:19:11)
_________________________ Desto mehr Käse desto weniger Löcher. Desto mehr Löcher desto weniger Käse. Also mehr Käse desto weiniger Käse ?!?
|
[zum Seitenanfang]
|
|
Re: Fragen und Antworten
[Re: UltimateG4ming]
- #2717187 - 12.02.2015, 03:29:06
|
Forumsengel
Registriert: 03.09.2010
Beiträge: 7.602
|
Gibt es eine Möglichkeit, diese nervigen "Neue Chatter für dich"- und "Knuddels vermisst dich"-EMails der BotNicks zu deaktivieren? Normalerweise folgt man ja einem Link und loggt sich ein. Allerdings geht das bei gebundenen Bots ja nicht. Jemand eine Idee (außer Bot unbinden)?  Auf die schnelle würd ich sagen: spammfilter konfigurieren
_________________________ 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: Fragen und Antworten
[Re: Kev777]
- #2717225 - 12.02.2015, 11:47:20
|
Registriert: 08.04.2003
Beiträge: 1.260
Ort: Deutschland, Dachau
|
Gibt es eine Möglichkeit, diese nervigen "Neue Chatter für dich"- und "Knuddels vermisst dich"-EMails der BotNicks zu deaktivieren? Normalerweise folgt man ja einem Link und loggt sich ein. Allerdings geht das bei gebundenen Bots ja nicht. Jemand eine Idee (außer Bot unbinden)?  Auf die schnelle würd ich sagen: spammfilter konfigurieren Hey ihr Superhelden ;-), mit dem nächsten Update haben wir deaktiviert, dass diese Mails für Bots verschickt werden. Beim nächsten Mal ab ins Uservoice… ihr wisst schon.  Knuddelige Grüße Iro 
|
[zum Seitenanfang]
|
|
Re: Fragen und Antworten
[Re: Ironist]
- #2717685 - 14.02.2015, 22:06:30
|
Tomorrowland!
Registriert: 25.04.2007
Beiträge: 9.743
Ort: Wolfsburg
|
Gibt es eine Möglichkeit, diese nervigen "Neue Chatter für dich"- und "Knuddels vermisst dich"-EMails der BotNicks zu deaktivieren? Normalerweise folgt man ja einem Link und loggt sich ein. Allerdings geht das bei gebundenen Bots ja nicht. Jemand eine Idee (außer Bot unbinden)?  Auf die schnelle würd ich sagen: spammfilter konfigurieren Hey ihr Superhelden ;-), mit dem nächsten Update haben wir deaktiviert, dass diese Mails für Bots verschickt werden. Beim nächsten Mal ab ins Uservoice… ihr wisst schon.  Knuddelige Grüße Iro  Bitte noch einmal prüfen. Nach dem CS Update am 13.02. bekam ich eben gerade erneut eine E-Mail auf dem Bot. (neue Chatter für dich) - Rev 68456
_________________________ Yesterday is history, tomorrow is mystery, but today is a gift - that's why we call it the present!
|
[zum Seitenanfang]
|
|
Re: Fragen und Antworten
[Re: Ironist]
- #2718005 - 17.02.2015, 00:52:25
|
Entfernung: 1 km
Registriert: 02.07.2003
Beiträge: 1.463
Ort: Hannover
|
Beim nächsten Mal ab ins Uservoice… ihr wisst schon.  Na, ich hoffe mal, ins Uservoice sollen nur Feature- und keine Fehlerbehebungswünsche! 
_________________________ Knuddelige Grüße redorange
|
[zum Seitenanfang]
|
|
Re: Fragen und Antworten
[Re: WoB BoY 24]
- #2718388 - 18.02.2015, 22:38:25
|
#WirSindKeineBots
Registriert: 15.06.2010
Beiträge: 4.024
|
Hey ihr Superhelden ;-), mit dem nächsten Update haben wir deaktiviert, dass diese Mails für Bots verschickt werden. Beim nächsten Mal ab ins Uservoice… ihr wisst schon.  Knuddelige Grüße Iro  Bitte noch einmal prüfen. Nach dem CS Update am 13.02. bekam ich eben gerade erneut eine E-Mail auf dem Bot. (neue Chatter für dich) - Rev 68456 Sign! Bekam auch heute wieder eine solche EMail.
_________________________ if ($ahnung == 'keine' ) { use ( FAQ ) && ( Google | | Suche ) } if ($antwort == 0 ) { post ( Frage ) }
|
[zum Seitenanfang]
|
|
Re: Fragen und Antworten
[Re: IgelchenM]
- #2719751 - 24.02.2015, 14:26:21
|
Bizzi is activated.
Registriert: 29.07.2006
Beiträge: 2.581
Ort: Dortmund
|
Einige kennen es bereits: Ist man in mehreren Channels so kann es vorkommen dass der Fokus des Channels auf eines der anderen gelegt wird. Sprich, wenn über ein /pp Fenster die App läuft kann man möglicherweise keine App-Befehle mehr nutzen, da diese schließlich im MyChannel von der App ausgeführt werden müssen und in anderen Channels nicht zur Verfügung stehen. Bis dato gibt es ja den /sfc Command (Send from Channel). Ich hatte aber grade eine Idee wie man das vielleicht noch cooler lösen kann, denn schließlich geht /sfc nicht von mobilen Endgeräten. Die Antwort lautet einfach: /aMit /a schreibt man einen Text öffentlich in den Channel. Mir ist aufgefallen dass wenn keine Argumente gesetzt werden, dass der jeweilige Channel wo von das /pp Fenster aufgerufen wurde dennoch den Fokus erlangt und dann dadurch die App-Commands wieder zur Verfügung stehen da der richtige Channel "ausgewählt" ist. Das ganze habe ich einfach mit einer Doubleaction verbunden. Hier mal beide Beispiele: /sfc $CHANNEL:$COMMAND /doubleaction /a|$COMMANDHier ein working Example:
var App = (new function() {
this.onUserJoined = function(user) {
var command = '/mychatcommand';
var channel = KnuddelsServer.getChannel().getChannelName();
var name = KnuddelsServer.getAppName();
var text = 'Hallo ' + user.getProfileLink() + ',°#°dies ist ein test von _°B°' + name + '_°r°:';
/* Send from Channel */
text += '°#>Link: Send from Channel|/sfc ' + channel + ':' + command + '<°';
/* Public Command */
text += '°#>Link: Public Command|/doubleaction /a\\|' + command + '<°';
user.sendPrivateMessage(text);
};
this.chatCommands = {
mychatcommand: function(user) {
user.sendPrivateMessage('Du hast den Befehl erfolgreich ausgeführt.');
}
}
}());
_________________________ Bot.public('I love °>features/james-exchange/ft_james-exchange_surprised.gif<>James|/w "<°');
|
[zum Seitenanfang]
|
|
Re: Fragen und Antworten
[Re: Bizarrus]
- #2727722 - 08.04.2015, 09:54:17
|
DJ el rubio
Nicht registriert
|
Huhu,
kann es sein, dass die Funktion "isInTeam()" beim user-Objekt einen Fehler bei den Sub-Teams hat, wenn der Name des Sub-Team Leerzeichen enthält? Weil im Knuddels.at-Chat gibt die Funktion immer ein False zurück, sobald ich überprüfen möchte, ob User X einen bestimmten Newsletter abonniert hat. (Die Abonnenten sind in verschiedene SubTeams eingetragen, damit die Newsletter als Rund-/m versendet werden kann). Und Ja, User X war schon mal im App-Channel und ist auch definitiv als Abonnent eingetragen.
Ein Sub-Team hat z.B. den Namen "Empfänger der Chatnews".
Bei anderen Teams/SubTeams funktioniert es einwandfrei.
Rubi.
|
[zum Seitenanfang]
|
|
Re: Fragen und Antworten
[Re: ]
- #2728191 - 11.04.2015, 21:47:46
|
Laubhaufenbewohner
Registriert: 10.02.2005
Beiträge: 1.479
Ort: Bochum
|
Eine Frage, gibt es bereits eine Möglichkeit zu prüfen ob das HTML-UI richtig gestartet wurde? Ich hab auf'm Testserver ab und an das Problem, dass das Fenster weiß bleibt und nur "Lade..." drin steht.
Oder muss ich das selbst realisieren?
_________________________ Wo zum Teufel ist dieser Wayne wenn man ihn braucht?!
|
[zum Seitenanfang]
|
|
Re: Fragen und Antworten
[Re: IgelchenM]
- #2728309 - 12.04.2015, 20:17:55
|
Verified Prototype Hater
Registriert: 27.05.2006
Beiträge: 905
Ort: Rendsburg
|
$(document).on('readdy', function() { Client.sendAppEvent('loaded', true); });
_________________________ » AppEntwickler » Prototype Hater
|
[zum Seitenanfang]
|
|
Re: Fragen und Antworten
[Re: djchrisnet]
- #2728361 - 13.04.2015, 05:14:49
|
Bizzi is activated.
Registriert: 29.07.2006
Beiträge: 2.581
Ort: Dortmund
|
Ein bissel Cooler:
var MyGame = (function() {
var instance = this;
var name = 'MyGame';
this.getName = function() {
return name;
};
this.init = function() {
document.addEventListener('eventReceived', instance.onReceive);
Client.sendEvent('init', {
app: Client.getAppId(),
game: instance.getName(),
type: Client.getClientType(),
version: parent.Loader.getBridge().getVersion()
});
/*
Additional wrapped with
$(window).load(function() {
});
*/
};
this.onReceive = function(event) {
try {
var key = event.eventKey;
var data = event.eventData;
switch(key) {
case 'example':
/* what u want */
break;
}
} catch(e) {
Client.sendEvent('exception', e.message);
}
};
this.init();
}());
_________________________ Bot.public('I love °>features/james-exchange/ft_james-exchange_surprised.gif<>James|/w "<°');
|
[zum Seitenanfang]
|
|
Re: Fragen und Antworten
[Re: Bizarrus]
- #2728422 - 13.04.2015, 17:03:50
|
Forumuser
Registriert: 06.08.2009
Beiträge: 3.767
Ort: Deutschland
|
Hi!
Mein Botnick wurde heute wie bei anderen auch von der App entfernt. Ich bin in einer App in einem Channel als Appmanager eingetragen, aber kann dort keinen neuen Botnick verbinden. Mit dem alten Botnick online gehen ist ebenfalls nicht möglich. Hat jemand ne Idee, das Problem zu lösen?
|
[zum Seitenanfang]
|
|
Re: Fragen und Antworten
[Re: Vampire183]
- #2728434 - 13.04.2015, 17:39:35
|
ChannelMaster
Registriert: 15.09.2013
Beiträge: 1.681
|
Ja. Mit dem Channelbesitzer reingehen und versuchen den Botuser neuzusetzen. Dadurch wird dieser entfernt und du kannst den wieder einloggen und als Botuser setzen.
_________________________ /apps install 30559674.ChannelMaster
|
[zum Seitenanfang]
|
|
Re: Fragen und Antworten
[Re: Vampire183]
- #2728435 - 13.04.2015, 17:44:24
|
#WirSindKeineBots
Registriert: 15.06.2010
Beiträge: 4.024
|
Ich war heute von dem Problem auch betroffen. Folgender Ablauf brachte mir die Lösung: - Profile des Bots mittels /w NICK aufrufen
- Versuchen, den selben Bot-User zu binden (während er offline ist). Es erscheint eine Fehlermeldung ("APP_NAME: ERROR: Fehlerhafte BotUser-Verknüpfung entfernt: BOT_NICK")
- Dadurch verliert der Bot-User den Eintrag im Profil, die Verknüpfung wird aufgelöst
- Du kannst dich mit dem Bot wieder einloggen und ihn neu binden
So hat das bei mir funktioniert. Eventuell lässt sich der Ablauf auf dein Problem übertragen, da ich das selbe Verhalten auch hatte. // Da schreibt man ne tolle Anleitung und dann war jemand schneller...
Bearbeitet von Dreamboy-1996 <3 (13.04.2015, 17:44:59)
_________________________ if ($ahnung == 'keine' ) { use ( FAQ ) && ( Google | | Suche ) } if ($antwort == 0 ) { post ( Frage ) }
|
[zum Seitenanfang]
|
|
Re: Fragen und Antworten
[Re: Enrico-nrp]
- #2728664 - 15.04.2015, 02:56:37
|
Bizzi is activated.
Registriert: 29.07.2006
Beiträge: 2.581
Ort: Dortmund
|
Für die UI habe ich eine kleine Helfer-Klasse geschrieben, vielleicht kann die ja jemand gebrauchen:
function View(name) {
var _name = name;
var _width = 100;
var _height = 100;
var _data = {};
this.setSize = function(width, height) {
_width = width;
_height = height;
};
this.send = function(user) {
// canSendAppContent
// canShowAppViewMode
user.setAppContent(AppContent.overlayContent(new HTMLFile(_name + '.html', _data), _width, _height));
};
/*
Strings
*/
this.getString = function(key, defaultValue) {
return this.getObject(key, defaultValue);
};
this.addString = function(key, value) {
this.addObject(key, value);
};
this.removeString = function(key) {
this.removeObject(key);
};
this.hasString = function(key) {
return this.hasObject(key);
};
/*
Number
*/
this.getNumber = function(key, defaultValue) {
return this.getObject(key, defaultValue);
};
this.addNumber = function(key, value) {
this.addObject(key, value);
};
this.removeNumber = function(key) {
this.removeObject(key);
};
this.hasNumber = function(key) {
return this.hasObject(key);
};
/*
Object
*/
this.getObject = function(key, defaultValue) {
if(this.hasObject(key)) {
return _data[key];
}
return defaultValue;
};
this.addObject = function(key, value) {
_data[key] = value;
};
this.removeObject = function(key) {
delete _data[key];
};
this.hasObject = function(key) {
return (_data[key] != undefined);
};
};
Das ganze kann dann zum Beispiel wie folgt genutzt werden:
var view = new View('Overview'); // ~> www/Overview.html
view.setSize(250, 300);
view.addObject('user', user.getNick());
view.send(user);
Die Methoden addObject (wie bei der Persistence) fügt Daten an der UI als pageData an. Ich habe es mir hier einfach gemacht und jage diese Clientseitig durch den Event-Receiver (onSendEventReceived):
if(Client.pageData != undefined) {
for(var index in Client.pageData) {
var key = index;
var value = Client.pageData[index];
Client.onSendEventReceived(key, JSON.stringify(value));
}
}
Bearbeitet von Bizarrus (15.04.2015, 02:57:14)
_________________________ Bot.public('I love °>features/james-exchange/ft_james-exchange_surprised.gif<>James|/w "<°');
|
[zum Seitenanfang]
|
|
Re: Fragen und Antworten
[Re: Bizarrus]
- #2728672 - 15.04.2015, 08:04:34
|
Knuddelsteam
Registriert: 21.11.2003
Beiträge: 6.835
|
Weil ich es bei einigen hier immer wieder sehe (und früher selbst auch öfter in diesen Fehler gelaufen bin ...): Iteriert nicht mit for...in über ein Object oder Array! Schlecht
var myObj = {
x : 23,
y : 'test'
};
for(var item in myObj) {
// 23
// 'test'
// [maybe something else]
}
Gut!
var myObj = {
x : 23,
y : 'test'
};
Object.keys(myObject).forEach(function(item) {
// 23
// 'test'
});
Der entscheidende Satz dazu steht in der jeweiligen Dokumentation dazu (aus der for...in Dokumentation): the difference being that a for-in loop enumerates properties in the prototype chain as well Fazit: Am besten niemals den for...in Loop benutzen, wenn ihr nicht explizit dessen Feature nutzen wollt (ich vermute das braucht hier im alltäglichen Gebrauch niemand). Das macht euch im Zweifel mehr Ärger als es hilft. Wenn ihr also Den Prototypen von Object erweitert habt, beispielweise weil ihr eine Bibliothek von irgenwoher eingebunden habt oder es gar selbst getan habt, dann würde der for...in Loop hier über diese Eigentschaften ebenfalls iterieren, was zu ungewünschten Nebeneffekten führen kann. [Edit] Links zu Dokumentation: for...inObject.prototype.keys()Array.prototype.forEach()
Bearbeitet von TobyB (15.04.2015, 08:07:35) Bearbeitungsgrund: Dokumentation hinzugefügt
_________________________ There is no good without evil, but evil must not be allowed to flourish. There is passion, yet peace; serenity, yet emotion; chaos, yet order.
|
[zum Seitenanfang]
|
|
Re: Fragen und Antworten
[Re: TobyB]
- #2728673 - 15.04.2015, 08:34:46
|
Bizzi is activated.
Registriert: 29.07.2006
Beiträge: 2.581
Ort: Dortmund
|
Bei einem Array selbst iteriere ich oftmals direkt über einen definierten Index like
for(var index: index < length; ++index)
Einfach weil eine iteration mehr Zeit beansprucht. Oder ich die Reihenfolge beachten muss/möchte. for...in ist halt oftmals sinnvoll wenn man Objekte/Arrays durchlaufen möchte und nicht zusätzlich die values gegenprüfen möchte - Die werden nämlich ignoriert. Nachteil daran wäre halt dass die Reihenfolge nicht beachtet wird, der interpreter aber garantiert dass beim jeweiligen tick der Eintrag nur einmalig genutzt wird.
var a = new Array(5);
a[0] = 1;
a[1] = 2;
a[2] = 3;
for(var b in a) {
console.log(b, a[b]);
}
var l = a.length;
for(var i = 0; i < l; ++i) {
console.log(i, a[i]);
}
Wie man sieht hat das Array eine Grösse von 5. Durch for...in werden aber nur die belegten Values durchlaufen, was bei einer Indexbasierten Loop nicht der Fall wäre. Ich habe mit Absicht hier eine Iteration mittels for...in gesetzt, weil es beim triggern des Events egal ist, in welcher Reihenfolge dies abgearbeitet wird. So erspare ich mir da auch das weitere Gegenprüfen ob die value null oder undefined ist. Es kommt halt immer auf die Anforderung als auch das Einsatzgebiet an 
_________________________ Bot.public('I love °>features/james-exchange/ft_james-exchange_surprised.gif<>James|/w "<°');
|
[zum Seitenanfang]
|
|