Zusammenfassung
Im Folgenden findet man das Protokoll des Entwicklertreffens vom 09.01.2017.
Es wurde angekündigt, dass das automatische Neustarten von Apps wieder funktioniert und dass der Fehler mit den Toplisten behoben wurde.
In der Fragerunde wurden überwiegend kleinere Probleme der App-Entwickler geklärt. Insbesondere wurde die neue App Besserwisser von DerNeuanfang und Maexxchen vorgestellt, die derzeit noch Unterstützung für ihr Projekt suchen und gerne neue Vorschläge annehmen. Weiterhin wurde LichtIstHoffnung bei seinem Problem, was er mit seiner Radio-App hat, unter die Arme gegriffen.
Protokoll
<html> </nowiki>
IgelchenM: Servus zusammen! Wer Pünktlich ist, soll erstmal belohnt werden ^^
IgelchenM: Diejenigen unter euch, die meine Einladung durchgelesen haben, wissen es bereits. Alle anderen Erfahren es jetzt nochmal. Auf dem Entwicklungsserver funktioniert nun wieder das automatische Neustarten von Apps bei Änderungen und auf dem Live- sowie Entwicklungsserver gehen wieder die Toplisten!
rmpg: wie sieht es generell mit dem Uservoice aus? oder sind wir immernoch am Bugfixen?
IgelchenM: Ansonsten gibt es keine Neuigkeiten über neue Funktionen oder Methoden. @rmpg
IgelchenM: Damit würd ich auch schon gerne zu der Fragerunde kommen, damit das ganze heute nicht so in die Länge gezogen wird.
IgelchenM: underground devil shyt, LichtIstHoffnung, Dean & Sam Winchester - schön dass ihr da seid. Habt ihr heute Fragen mitgebracht oder arbeitet ihr gerade an einem Projekt über das ihr etwas erzählen wollt?
LichtIstHoffnung: Ich erarbeite derzeit eine App für nen Radio mit HTML UI
LichtIstHoffnung: und bastel an einer Stammhörer vergabe bekomme aber nicht so ganz hin die Persistence einmal im Monat zu vergeben
rmpg: Dann schau mal in /Hitradio Online vorbei
IgelchenM: @LichtIstHoffnung - sowas wie ne Grußbox und so weiter?
LichtIstHoffnung: ja @IgelchenM
rmpg: wo haperts denn genau?
rmpg: bei der genrellen persistence
LichtIstHoffnung: derzeit vergebe ich es nach 5 Tagen
rmpg: oder der monatlichen vergabe
LichtIstHoffnung: aber würde es halt gerne einmal im monat machen nach Mins oder so
rmpg: Heisst du liest die onlinezeit des users im channel aus und vergibst an die 10 daueronline user den stammhöhrer status
rmpg: oder halt ab einer gewissen minuten zahl
LichtIstHoffnung: japs
IgelchenM: während rmpg dabei hilft, kommen wir zu den nächsten. auge123 - mikasapikaa und Pudding (danke für den Kaffee) - habt ihr Fragen mitgebracht?
mikasapikaa: nochmal zu der /m von dir
.........mit dem smiley :D
.........sind die nur für mcinhaber oder auch für appmanager ? In der /m stand ja auch für die, die den channel liebevoll betreuen :D
Dean & Sam Winchester: wann gibts diese smileys eigentlich, also wann werden die immer vergeben?
LichtIstHoffnung: wenn deine App besonders toll ist xD
LichtIstHoffnung: (glaube ich)
rmpg: Im grunde wenn igelchen der meinung ist du hast ihn dir verdient ^^
IgelchenM: Zu dem sei gesagt, dass dieser Smiley zufällig vergeben wird, wenn wir der Meinung sind, dass er sich verdient wurde. In der Vergangenheit wurde er z.B. an MCMs in sehr betreuungsintensiven channels vergeben, für Entwickler die ne neue gute App realisiert haben oder ähnliches
IgelchenM: mit wir meine ich Ironist und mich ;)
IgelchenM: auch anderen bei der Entwicklung helfen, fliest mit rein ;)
LichtIstHoffnung: ich investiere JEDEN Tag meine zeit in updates und so habe noch nie einen bekommen xD
LichtIstHoffnung: iwas mache ich falsch :Ü
IgelchenM: sprich im Forum helfen, UserVoice gute Vorschläge machen, Entwicklern helfen etc.
Dean & Sam Winchester: behaltet ihr da die channel also im auge?
DerNeuanfang: Dean & Sam Winchester ja machen sie.
rmpg: schlüssel doch mal das stc. näher aus ^^
IgelchenM: wir schauen regelmässig was so passiert.
IgelchenM: wir haben unsere augen und Ohren überall mikasapikaa
IgelchenM: außerdem schreibe ich, sobald es sich lohnt auch über neue Apps nen AppCheck, oder prüfen den Code auf Schadstellen und ähnliches ^^
LichtIstHoffnung: Ach IgelchenM ?
IgelchenM: ja?
LichtIstHoffnung: darf man diese Knuddels Functionen nachbauten nicht mehr haben? Habe da was gehört?!
IgelchenM: wer sagt sowas? :o
rmpg: Ironist
rmpg: laut meinen Infos von vor ein/zwei Jahren
rmpg: Sofern der User es per Befehl auslösen kann ist es nicht erlaubt
LichtIstHoffnung: das war ne frage
Ich sach mal: ich hab die info.. .. wenn es sinn macht ist es geduldet
IgelchenM: Ihr habt immer die Möglichkeit Features oder ähnliches von Knuddels nachzubauen wie ihr lustig seid. Es gibt aber ein paar Einschränkungen. z.B. dürfen Grafiken nicht ohne Erlaubnis verwendet werden um Knuddels in ein negatives Licht zu rücken, oder Features verwendet werden (Stichwort FeatureSprites) gegen Knuddel ermöglicht werden etc.
IgelchenM: im Zweifel werden Iro oder ich euch dann drauf hinweisen, dass es so und so nicht geht - falls ihr etwas macht, was nicht geduldet wird
LichtIstHoffnung: habt ihr einer meiner apps schon mal geprüft?
LichtIstHoffnung: da sind halt sprites drinnen
DerNeuanfang: LichtIstHoffnung das ist noch ok (was ich bisher von dir kenne)
LichtIstHoffnung: will keine abmahnung kassieren
LichtIstHoffnung: alles klar danke
IgelchenM: rmpg (viel Spaß bei tbbt), Red Intuition und Don Diablo - schön euch hier zu sehen. Sitzt ihr aktuell an einer User App über die ihr quatschen wollt oder habt Fragen mitgebracht?
Don Diablo: Momentan zeitlich nicht möglich. - Geht aber bald los! Aus diesem Grund habe ich heute noch keine Fragen mitgebracht.
IgelchenM: dann freu ich mich drauf, dich hier öfter zu sehen!
Don Diablo: Nächstes mal habe ich sicherlich Fragen im Gepäck!
IgelchenM: zum Thema "Fragen im Gepäck". Ihr könnt natürlich jederzeit eure Fragen an mich, im User Apps Forum oder an andere Entwickler (vorzugsweise, die hier mit COACH gekenntzeichnet sind) stellen.
IgelchenM: so wo waren wir stehen geblieben... achja partyboy@wob, Green-Angel25 und Imo2014 (ich denke jedesmal der erste Buchstabe ist ein L!) - habt ihr Fragen? :)
Imo2014: Hat jemand ne Idee, wie ich nen externen Videostream in nen HTML UI basteln könnte.
LichtIstHoffnung: iframe Imo2014
SchlechteOnkelz: iframe aber nur https :o
Imo2014: ich wollt mir mal nen zweiten account mit lmo2014 anlegen, wenn mein erster mal wieder colorgemutet wurde.
Imo2014: iframe geht auf externe quelle ?
IgelchenM: Videostreams einbinden geht nur via iFrame, wenn HTTPS genutzt wird und auch dann nur im HTML-Chat (wenn ich das noch richtig weiss)
IgelchenM: externe Videostreams*
SchlechteOnkelz: Das weißt du ganz richtig Olli xD
Imo2014: würde gern ne Slotmaschiene oder ähnliches hinstellen, welche man per WebIF Steuern kann
Imo2014: und das im HTMLui sieht
IgelchenM: Maexxchen und DerNeuanfang - ihr sucht ja aktuell Unterstützung für eure App in Channel Besserwisser wie ihr im Forum bereits geschildert habt. Wie geht denn euer Projekt so vorran, was ist neu und was wird noch kommen?
Maexxchen: Derzeit überlegen wir, wie wir das ganze finanzieren.
rmpg: fragt mich doch einfach
rmpg: Ich sponsore hier eh gerade 3 channel
Maexxchen: Natürlich wird die Datenbank stetig erweitert und wir freuen uns natürlich auch da auf eure Unterstützung.
DerNeuanfang: IgelchenM viele neue Datenbanken sind nun eingebaut. Quest-System wird gerade gebaut und Topliste (Tag und Monat) wird heute fertig (mit Knuddeligen gewinne). Wir bräuchten aber noch Hilfe Neue Kategorien (Biite an Maexxchen wenden) und feedback zur App. Wir haben ein Neues UI noch mit eingebaut, was bei Java noch bissel bugged (wird aber heute hoffentlich auch gefixxed).
IgelchenM: btw. Macht die Eingabefelder überall einheitlich!
IgelchenM: entweder weiss, oder farbig
DerNeuanfang: Was wir noch dringend brauchen ist eine Idee, wie der Channel sich selbst Finanziert. Da wir durch QUest und Toplisten Knuddel verteilen möchten Natürlich wäre auch eine Eintragung in das Quest-System von Knuddels auch nicht ganz so schlecht
Maexxchen: Alle Infos zur Unterstützung findet ihr im verlinkten Forumbeitrag.
rmpg: kauf dir mehr zeit für 1 knuddel
IgelchenM: Nähere Informationen hier (hab übrigens euren Screenshot neu hochgeladen und gespoiltert! )
Niveauvoll: Spenden? Mehr Kategorien durch knuddeleinsatz oder so? ^^ Da ich mti der Idee ankam, spende ich gern was xD
rmpg: als beispiel
rmpg: tipps per knuddel
rmpg: schwupp selbstfinanziert
SchlechteOnkelz: Oder doppelte Punktzahl mit knuddel
IgelchenM: hörst du das? alles meine Ideen die ich dir schon vor Tagen geschrieben habe Jan ... XD
rmpg: Das ist ja auch das naheliegendste ^^
Maexxchen: Das Problem bei der doppelten Punktzahl ist aber irgendwie, dass man ja gerade Punkte braucht, um Knuddel zu gewinnen....
IgelchenM: 2Ribery2, Ququknife (jetzt darfst du ) und Svenja-14 (ich will auch nen Playmobilmännchen!) - habt ihr Fragen mitgebracht?
DerNeuanfang: Das mit den Tipp... dazu lasse ich mir was nettes noch einfallen. Dean & Sam Winchester schreib mir vorhin schon, dass man vill extra +5 sek kaufen könnte
SchlechteOnkelz: Eben deshalb ja
SchlechteOnkelz: @ maex
Maexxchen: Die Idee hatte ich auch schon, Jan.
Maexxchen: Ja und dann haben neue Spieler gar keine chance, SchlechteOnkelz??
Don Diablo: Was wäre denn, wenn man sich die Möglichkeit erkaufen kann, das die guten buchstaben wahrscheinlicher sind?
SchlechteOnkelz: Wieso nicht? Es hilft ja nichts wenn ich doppelte Punkte will aber die Datenbank es nicht drin hat
Maexxchen: Naja, jeder bekommt ja die gleichen angezeigt.
Don Diablo: Ja, hm.
IgelchenM: dann gehts weiter mit SchlechteOnkelz und Daviddergabber1990
DerNeuanfang: Sonst können wir auch Werbung anbieten 1x die Stunde
Dean & Sam Winchester: gekauft DerNeuanfang
Ququknife: also ich arbeite derzeit an einem Spiel, dazu hätt ich ne frage, nicht direkt zu den Funktionen von knuddels sondern eher allgemein zu Javascript und arrays und zwar versuche ich per klick auf ein Element in der HTML UI etwas in einem array speichern, das selbe soll passieren wenn ich auf ein anderes element klicke damit ich dann am ende alles zusammenfassen kann, irgendwie möglich? ich habe es noch nicht geschafft
IgelchenM: nutzt du jQuery?
Ququknife: ja nutze ich auch
DerNeuanfang: Ququknife schau mal nach .push()
Ququknife: damit habe ich es bereits probiert, damit hat es nicht wirklich geklappt
IgelchenM: array = [];
.........
.........$('.button').on('click', function(){
.........array.push('wert');
.........});
IgelchenM: hast du denn ne Frage ? ^^
DerNeuanfang: Ququknife schreib mir gleich mal was genau du machen willst, dann shcicke ich dir ein muster
Ququknife: IgelchenM danke ich werde es auch mal so ausprobieren DerNeuanfang ich meld mich gleich
IgelchenM: Hat sich einer von euch schon die neue App von Senzious angesehen?
DerNeuanfang: Ja! Die ist Super!
DerNeuanfang: Newsletter != Spamm!
SchlechteOnkelz: Hey bei mir wird der User wenigstens vorher gefragt ob er newsletter will oder nicht :)
SchlechteOnkelz: Diese automatischen newsletter Anmeldungen find ich echt kacke!
Maexxchen: Stimme voll zu.
IgelchenM: finde ich auch...
LichtIstHoffnung: darf ich noch was fragen?
IgelchenM: ich handhabe es bei meinen Apps so, dass ich einen Newsletter an alle nur dann verschicke, wenn es wichtige Informationen zur App gibt (wie nen Remake oder eine Veränderung an der Spielstruktur/Ablauf). alles andere müssen die User wissen ob sie auf dem laufenden bleiben wollen oder nicht... wobei ich noch nicht mal jeden Monat nen Newsletter verschicke...
IgelchenM: Alles andere, ist bei vielen Apps in meinen Augen kein Newsletter, sondern eine Werbemail.
LichtIstHoffnung: darf man noch was fragen?
IgelchenM: klar LichtIstHoffnung ^^
LichtIstHoffnung: ich habe ja (hast du sicher gesehen) /wurf programmiert
LichtIstHoffnung: dort soll der user eine 1 würfeln tut er das bekommt er nen Knuddel
IgelchenM: ok
LichtIstHoffnung: derzeit ist das ganze noch manuell ich würde es gerne automatisieren
IgelchenM: dass das Event startet?
LichtIstHoffnung: alles xD
LichtIstHoffnung: des würfeln über den bot
LichtIstHoffnung: und das er auswertet das der user ne 1 hat und nen knuddel bekommt
DerNeuanfang: ist eine If() abfrage
LichtIstHoffnung: ich habe es derzeit nur soweit das der Bot sieht das man würfelt
LichtIstHoffnung: aber nicht das er sieht das XY ne 1 hat und das XY dann ein Knuddel bekommen sollte
DerNeuanfang: LichtIstHoffnung wo ist nun die frage dahinter?
LichtIstHoffnung: 'wurf':function(user, params, command) {
......... if (user.isChannelModerator()) {
......... user.sendPrivateMessage()
......... wurf = user.getPersistence().getNumber(wurf,0)
......... if (wurf == 1) {
......... user.sendPrivateMessage('Du hast bereits gewürfelt')
......... } else {
......... botUser.sendPublicMessage(' SPIEL-ZEIT : würfel eine 1 Gewinn 1 (Jeder nur einmal!)');
......... user.getPersistence().addNumber(wurf,1)
......... setInterval(function(){
......... UserPersistenceNumbers.deleteAll('wurf');
......... },80000)
......... }
......... } else {
......... user.sendPrivateMessage('Das machen MCM zum unterhalten des Channel');
......... } },
LichtIstHoffnung: ich möchte es automatisieren weiß aber net wie jan
DerNeuanfang: Spieler X du bist drann und dann soll er einmal würfeln dürfen?
LichtIstHoffnung: japs
LichtIstHoffnung: hat er ne 1 bekommt er nen knuddel
LichtIstHoffnung: iwie einmal die stunde oder so, oder das MCM es starten können
IgelchenM: DiceResult
DerNeuanfang: dann lässt du einen im Channel in die Persistence ne 1 unter den key ('darfnunwuerfeln*) setzen und bei dice vergleichst du ob er da ne 1 hat. wenn ja dann wertest du es aus.
rmpg: LichtIstHoffnung ... hattest du das nicht schon fertig?
DerNeuanfang: mit setTimeOut() kannste ihn dann die 1 zu ner 0 setzen lassen nach z.b. 40 sekunden
LichtIstHoffnung: manuell ja rmpg
LichtIstHoffnung: aber nicht automatisiert
IgelchenM: wichtig ist, dass du dann auch bei onUserLeft, die 0 setzt!!
rmpg: ich hab dir doch den aufbau geschrieben in skype ^^
IgelchenM: ansonsten kommts zu bugs, wenn er geht bevor die 40Sek. abgelaufen sind
LichtIstHoffnung: du hast mir gesagt welche klassen ich brauche bekomme es aber net hin
LichtIstHoffnung: schon alleine wegen Knuddels Konto und Bot Konto und what else xD
DerNeuanfang: onUserLeft == 0 und clearTimeOut
DerNeuanfang: Du brauchst doch nur ein Intervall der alle 5 minuten ein Random User nimmt den Nutzer setzt er ne 1 in die persistence. (weiteres siehe oben)
DerNeuanfang: was davon verstehst du genau nicht? Erkläre es bitte einfach sagen ich weiß nicht wie hilft dabei leider nicht viel
LichtIstHoffnung: ihr sagt das immer so, ich lerne noch nur als anmerkung
LichtIstHoffnung: mach einfach mal bla blup ist da nicht sinnvoll
DerNeuanfang: Weißt du wie du ein Intervall setzt bei onAppStart() ?
LichtIstHoffnung: ja habe ich inzwischen mehrer
LichtIstHoffnung: mehrere
DerNeuanfang: weißt du wie du ein Random User aus den Channel bekommst?
LichtIstHoffnung: setInterval(function(){
......... var users = KnuddelsServer.getChannel().getOnlineUsers(UserType.Human);
......... for (var user in users){
......... if (users[user].isAway()) {
......... users[user].getPersistence().addNumber('awaysekunden',1);
......... }
......... var away = users[user].getPersistence().getNumber('awaysekunden',0);
......... if (away == 60){
......... users[user].getPersistence().deleteNumber('awaysekunden');
......... users[user].getPersistence().addNumber('awayminute', 1)
......... }
......... }
......... },1000)
LichtIstHoffnung: nein weiß ich nicht
DerNeuanfang: Gut, du hast oben var users, richtig?
LichtIstHoffnung: nö
IgelchenM: doch ôo
DerNeuanfang: da haste du eine array wo alle users sind. Davon brauchst du einen zufälligen.
IgelchenM: var users = KnuddelsServer.getChannel().getOnlineUsers(UserType.Human);
DerNeuanfang: doch hast du! var users = KnuddelsServer.getChannel()....
LichtIstHoffnung: ja das habe ich aber nicht global
DerNeuanfang: brauchste auch nicht.
LichtIstHoffnung: sondern bei jedem interval neu
DerNeuanfang: Ja muss ja auch bei jeden Intervall neu sein
IgelchenM: ist auch richtig so, muss nicht global sein, denn er kann zum Zeitpunkt ja schon wieder anders sein und muss eh neu generiert werden
LichtIstHoffnung: dann habe ich es xD
DerNeuanfang: Du erstellst ein intervall und nimmst die var Users mit rüber. Dann hast du alle users die aktuell im Channel sind.
LichtIstHoffnung: ja?
LichtIstHoffnung: UserType.Human aber nur
DerNeuanfang: Ja ist ja richtig. Willst ja James nicht dabei haben
LichtIstHoffnung: japs
DerNeuanfang: http://developer.knuddels.de/docs/classes/RandomOperations.html#method_nextInts
DerNeuanfang: dann kannste du damit, ein zufälligen user nehmen
IgelchenM: RandomOperations
DerNeuanfang: IgelchenM lass ihn selbst arbeiten
IgelchenM: nö :P
DerNeuanfang: intervall, zufälligen user nehmen (ARRAY von allen user erstellen und dann mit (RandomOperations) einen auszählen). Den setzt du dann in die user.getPersistence().setNumber() eine Nummer
DerNeuanfang: bei onUserDiced() vergleichst du erst ob der user auch den wert in der persistence hat, setzt die zahl danach auf 0 oder löschst die persistence. und wertest dann aus ob es ne 1 ist oder nicht.
LichtIstHoffnung: ehm.... ok
DerNeuanfang: vergleiche aber auch, ob er mit 1wX gewürfelt hat. weil sonst macht er /d 1w2 und hat ne hohe chance
LichtIstHoffnung: er ürde dann nen befehl ausgegeben bekommen sollen wo er klicken darf
LichtIstHoffnung: sonst kann er es ja manipullieren
DerNeuanfang: kannst du öffentlich ausgeben.
DerNeuanfang: kann auch selbst /d 1w8 ausgeben...
LichtIstHoffnung: dann drückt aber jeder drauf wie jetzt auch
DerNeuanfang: das eigentlich egal... du musst so oder so vergleichen
DerNeuanfang: ja kann doch jeder draufklicken... er schaut ja da extra ob er die 1 in der persistence hat oder nicht.
DerNeuanfang: wenn nicht, dann wertet er den wurf ja garnicht
LichtIstHoffnung: ich check es nicht
DerNeuanfang: LichtIstHoffnung dann lese dir alles nochmal durch. Detailierter kann man dir das nicht erklären
LichtIstHoffnung: derzeit habe ich es so das ich /wurf macht
DerNeuanfang: in der zeit hätte ich es selbst schreiben können xD aber den Spaß möchte ich dir nicht nehmen
LichtIstHoffnung: dann wird öffentlich der text + dem befehl (verllinkt) ausgegeben
DerNeuanfang: LichtIstHoffnung was jetzt gerade ist, ist doch nicht wichtig? Du willst es ja automatisiert haben...
LichtIstHoffnung: *möchte*
LichtIstHoffnung: ja schon aber ich möchte das JEDER user würfeln kann und nicht nur einer
DerNeuanfang: Lese dir oben nochmal durch, da steht eigentlich alles was du dafür brauchst
LichtIstHoffnung: nein jan steht nicht
DerNeuanfang: LichtIstHoffnung doch steht es XD
LichtIstHoffnung: es soll jeder würfeln können und nicht nur einer
DerNeuanfang: LichtIstHoffnung achso, dann hast du es eben falsch formuliert oder ich falsch verstanden.
LichtIstHoffnung: also /wurf = text mit befehl (zum anklicken) jeder klickt (man soll nur einmal klicken können) ziel eine 1 zu würfeln, user hat 1 er wird manuell durch den ausführenden geknuddelt
DerNeuanfang: Intervall, users(array die du hast) , array schleifen und jeden ne 1 in die persistence eintragen , öffentliche ausgabe machen, dass man nun würfeln darf , bei onDice() den Wurf (ist wirklich 1wX gewürfelt worden?) vergleichen, schauen ob er ne 1 in der persisitcen hat (diese dann auf 0 setzen) und dann schauen ob er ne 1 gewürfelt hat.
LichtIstHoffnung: da soll nun automatik rein bot macht das 1-2 die stunde von alleine
LichtIstHoffnung: also users überprüfen oder was meinst?
DerNeuanfang: users schleifen, das ist ja deine array wo alle users drin sind.
DerNeuanfang: for(var i in users) oder each oder indexbasierendes for (empfohlen)
IgelchenM: von meiner Seite aus gibts nichts mehr ^^
</nowiki> </html>