Changelog 2015

30.12.2015

08.12.2015

  • Neue Funktion /apps login, mit der man sich vom .de-Server direkt in den Devserver einloggen lassen kann.

07.12.2015

  • onShutdown-Dokumentation um wichtigen Hinweis erweitert: Im onShutdown können each-Methoden der API (UserPersistenceNumbers.each und UserAccess.eachAccessibleUser) nicht zuverlässig bereitgestellt werden.
  • Einführung einer Quest, um sich über User App Entwicklung zu informieren

06.12.2015

04.12.2015

  • Wenn ein Entwickler sich nach Registrierung zeitnah das erste Mal auf dem Entwicklungsserver einloggt, so öffnet sich automatisch das MyChannel-Edit
  • Beim Installieren von Apps ist der erste Teil „knuddelsDEV.“ nun obsolet
  • Im /apps-Fenster wird nach dem Installieren einer App gleich die Frage zum Bot-Binding geöffnet
  • Nach dem Binden eines Bots erscheint die Frage, ob die App gestartet werden soll
  • Wenn das /apps-Fenster geöffnet wird, während keine App installiert wird, so startet sofort der Dialog zum Installieren einer App
  • Ändert man den Namen seines MyChannels oder legt erstmalig einen an, so wird man sofort in den Channel eingeloggt
  • Temporäre Channel können nun als MyChannel gewählt werden, ohne dass alle Nutzer den Channel verlassen müssen

30.11.2015

  • Fehler behoben, durch den in Tochterchannel teilweise leere Daten aus der API zurückkamen (ChannelOwner, ChannelModerators…)

23.11.2015

  • Übersichtlichere Optik der Ausgabe von /myrewards

 

19.11.2015

  • Fehler behoben, durch den Disconnects nicht verhindert wurden, wenn man das HTML User Interface aktiv nutzt (ab nächstem Chatserver-Update)
  • /apptop CHANNEL ist nicht mehr case-sensitiv (ab nächstem Chatserver-Update)
  • Position der automatischen Einbindung der API-Datei in die HTML-Dateien der Entwickler nun HTML-valid

18.11.2015

  • Fehler behoben der gelegentlich dazu führte, dass Apps weiterhin Code ausführen konnten, nachdem sie gestoppt wurden.
  • Fehler behoben, der gelegentlich verhinderte, dass setTimeout() & setInterval() gestoppt wurden wenn die App gestoppt wurde.

17.11.2015

  • Problem behoben, das gelegentlich zu AppServer-Abstürzen führte.

16.11.2015

  • Ab sofort kann Monetarisierung aktivieren im MyChannel-Edit aktiviert werden.

12.11.2015

27.10.2015

  • Apps können ab dem nächsten Update (AppServer 76114) 5 statt bisher 1 AppProfileEntries anlegen.

24.10.2015

  • Start des Entwickler-Blogs
  • Umzug des Changelogs in den neuen Entwickler-Blog

21.10.2015

  • Mit dem nächsten Applet-Update ist der User-Agent vom HTML User Interface im Applet aussagekräftiger (i.e.: Knuddels Mac OS X (10.10.5), Applet (V9.0bqr) – HTML User Interface)

05.10.2015

  • Mit dem nächsten Update ist der zweite Parameter von UserAccess.eachAccessibleUser optional.
  • Mit dem nächsten Update kann man im MyChannel-Fenster einstellen, ob pro IP nur ein Nutzer in den Channel darf.

05.10.2015

  • Mit dem nächsten Update gibt es neue Events für Toplisten
  • toplist.addLabelChangeListener
  • toplist.removeLabelChangeListener
  • toplist.addRankChangeListener
  • toplist.removeRankChangeListener
  • Mit dem nächsten Update gibt es neue Methoden für User
  • user.isAgeVerified()
  • user.isProfilePhotoVerified()

03.10.2015

  • Mit dem nächsten Update gibt es verständlichere Hinweise, wenn eine App Schulden gemacht hat.

02.10.2015

  • Mit dem nächsten Update werden die Anzeigenamen für Toplisten korrekt im Profil angezeigt (bisher 1 zu hoch)
  • Nachrichten für KnuddelPot-Auszahlung live deutlich verbessert (weitere Verbesserung nach Update)

01.10.2015

  • Ab sofort sind die Operationen getRank, getSortedEntries, getSortedEntriesAdjacent, getPosition, getSum in UserPersistenceNumbers wesentlich schneller.
  • API für Toplisten und Ränge
  • KnuddelsServer.getToplistAccess()
  • toplistAccess.createOrUpdateToplist()
  • toplistAccess.getAllToplists()
  • toplistAccess.getToplist()
  • toplistAccess.removeToplist()
  • KnuddelsServer.getAppProfileEntryAccess()
  • appProfileEntryAccess.getAllProfileEntries()
  • appProfileEntryAccess.getAppProfileEntry()
  • appProfileEntryAccess.removeEntry()
  • toplist.getChatCommand()
  • toplist.getDisplayName()
  • toplist.getLabel()
  • toplist.getUserPersistenceNumberKey()
  • ToplistDisplayType

22.09.2015

  • Ab jetzt kann nur noch JavaScript 1.8 genutzt werden

17.09.2015

  • Die Liste aller Online-Entwickler kann mit /apps developers abgerufen werden

16.09.2015

  • Ab sofort kann jeder Entwickler werden, indem er /apps developer eingibt

15.09.2015

  • User Apps dürfen ab sofort nur noch 20MB Arbeitsspeicher verbrauchen und werden dann abgeschaltet. (bisher verbraucht die größte App weniger als 10MB zu Höchstzeiten) – bei 14MB versenden wir eine Warnung an Entwickler und Betreiber

10.09.2015

  • Zweiten Parameter surpressWarnings in require abgeschafft. Ist nun ein-/ausstellbar via Script Warnings im /apps-Fenster Logbereich

09.09.2015

  • Fehler behoben, durch den '', [], 0 bei Client.sendEvent beim Server als null ankamen. (bereits live gefixt)

08.09.2015

Das HTML User Interface braucht in manchen Konstellationen einige Augenblicke, um zu Laden. Für diesen Fall gibt es nun eine „Lade…“-Optik, die von den Entwicklern customized, aber auch deaktiviert werden kann:

  • appContent.getLoadConfiguration()
  • Neue Klasse LoadConfiguration
  • loadConfiguration.setBackgroundColor
  • loadConfiguration.setBackgroundImage
  • loadConfiguration.setText
  • loadConfiguration.setLoadingIndicatorImage
  • loadConfiguration.setForegroundColor
  • loadConfiguration.setEnabled
  • Neue Klasse Color (serverseitig)
  • Color.fromRGB
  • Color.fromRGBA
  • color.getRed
  • color.getGreen
  • color.getBlue
  • color.getAlpha
  • color.toKCode

07.09.2015

02.09.2015

  • Es werden nun alle erfassten Fehler mit Stacktrace angezeigt (AppServer 74621)
  • Der Logger (alle Methoden) loggt Fehler nun automatisch mit Stacktrace. Beispiel: try { ... } catch(e) { KnuddelsServer.getDefaultLogger().error('foo', e); } (AppServer 74621)

01.09.2015

  • FATAL, ERROR und WARN Meldungen werden nun im /apps Fenster im Log angezeigt
  • Fehler beim App-Start werden nun besser behandelt und ebenfalls (mit Stacktrace) angezeigt
  • UserPersistenceNumbers.each() ist nun intelligent gedrosselt, sodass es nicht mehr zu Notabschaltungen der App kommen sollte wenn man diese Funktion (normal) benutzt (z.B. um Rundmails zu versenden) (ChatServer 74616 & AppServer 74616)

24.08.2015

  • HTML UI hat nun eine Queue für Events (relevant für Events die direkt nach dem Öffnen gesendet werden, damit diese nicht mehr verloren gehn)
    • HTMLChat: V1.0ads
    • Applet: V9.0bqh
    • Android: kommt noch
  • Mit dem nächsten Update funktioniert onPrivateMessage nun auch wieder bei Nachrichten, die channel-übergreifend kommen (ChatServer 74432)

20.08.2015

  • Neue Android-Version 3.9 mit HTML UI für User Apps geht live
  • Neue Android-Version 3.9 unterstützt testen auf Entwicklungsserver, sofern man /accessDevServer eingegeben hat.

18.08.2015

  • Ab sofort funktioniert die Einstellung autoUpdate wieder auf dem Entwicklungsserver

17.08.2015

  • Ab sofort ist das neue /apps-Fenster aktiv (nutzbar auf Applet, Android, HTML-Chat)

14.08.2015

  • Ab dem nächsten Update gibt es in den frei verfügbaren Bildern von den sm_runde-Smileys Runde 1-20
  • Ab dem nächsten Update gehen HTML-UIs zu, wenn der Nutzer den Channel wechselt oder die Verbindung abbricht

13.08.2015

  • Ab dem nächsten ChatServer-Update kann man unter /apps developer nachschauen, wo die eigenen Apps installiert sind.
  • Ab dem nächsten ChatServer-Update gibt es die neue Funktion /apps manager, mit der man sich anzeigen lassen kann, in welchem Channel man App-Manager ist.
  • user.isLikingChannel()
  • Neuer AppHook mayShowPublicMessage

12.08.2015

  • ChannelTalkPermission
  • ChannelTalkMode
  • user.getChannelTalkPermission()
  • channel.getTalkMode()
  • channel.getAllUsersWithTalkPermission()

11.08.2015

  • Einträge im Uservoice kategorisiert und Dubletten zusammengeführt
  • Methode nextInts mit weiterer Option überladen
  • In der Dokumentation sind die Methoden nun einzeilig und nicht mehr tabellerisch dargestellt
  • In der Dokumentation ist nun der aktuelle Eintrag im Menü selektiert dargestellt

10.08.2015

  • Verbesserungen der Dokumentation für die Klassen KnuddelAccount, KnuddelPot, User, UserPersistenceNumbers
  • Neue Funktion /apps developer
  • Methode nextInt mit weiterer Option überladen
  • AppBots können nun Nutzer anschreiben, die Mod/Vip sind

07.08.2015

  • Verbesserungen der Dokumentation für die Klassen KnuddelTransfer, Logger, RootAppInstance, SingleDiceResult, PrivateMessage, AppPersistence, UserPersistence, RandomOperations, KnuddelsServer
  • Neue Methode Client.getClientType()
  • Überarbeitung des Entwickler-Portals: http://developer.knuddels.de/

06.08.2015

  • Verbesserungen der Dokumentation für die Klassen Channel, ChannelConfiguration, ChannelRestrictions, ChannelRights, Client, AppInstance, Dice, DiceConfiguration, DiceConfigurationFactory, DiceEvent, BotUser, ClientType
  • diceConfigurationFactory.setUseOpenThrows() -> diceConfigurationFactory.setUseOpenThrow()
  • Ab dem nächsten Update gibt es die neue Methode replaceAll für serverseitige Strings.

05.08.2015

  • Verbesserungen der Dokumentation für die Klassen App, AppAccess, AppContent, AppInfo und AppServerInfo
  • FAQ im Wiki gestartet

03.08.2015

  • Ab dem nächsten ChatServer-Update kann man in bis zu 6 Channel MCM sein, statt bisher 3.
  • Ab sofort ist der HTML-Chat auf dem Entwicklungsserver verfügbar: http://devwww.knuddels.de/htmlchat
  • User Apps Forum im öffentlichen Forum sichtbar

31.07.2015

  • Im Laufe der ersten Augustwoche werden wir für das neue Appletdesign Buttons für /apps und /mychannel anzeigen, sofern für diesen Nutzer in diesem Channel gerade sinnvoll.

30.07.2015

  • Ab 31.07.2015 wird der Eintrag appDeveloper in der app.config ignoriert. Als Entwickler zählt nun, wer die App hochgeladen hat und wer der verknüpfte Nutzer auf dem .de-Server dazu ist.

29.07.2015

27.07.2015

16.07.2015

12.07.2015

10.07.2015

  • Es sind nur noch 1.2 und 1.8 valide Werte für javaScriptVersion in der app.config. Wir möchten kurzfristig den Support für die Version 1.2 einstellen, so dass dann alle Apps auf JavaScript 1.8 laufen.

09.07.2015

Neue Methoden

  • KnuddelsServer.getAppAccess()
  • appAccess.getOwnInstance()
  • appInstance.getRootAppInstance()
  • appInstance.isRootInstance()
  • appInstance.sendAppEvent()
  • appInstance.getAllInstances()
  • KnuddelsServer.getAppInfo() -> KnuddelsServer.getAppAccess().getOwnInstance().getAppInfo()
  • appInfo.update() -> rootAppInstance.update()
  • appInfo.stop() -> rootAppInstance.stop()
  • app.onAppEventReceived()
  • UserPersistenceNumbers.getAllKeys()
  • UserPersistenceNumbers.updateKey(oldKeyName, newKeyName)
  • Client.getNick()
  • knuddelAccount.getKnuddelAmountUsed()
  • knuddelAccount.getKnuddelAmountUnused()
  • appInfo.getTaxRate()
  • appInfo.getTotalTaxKnuddelAmount()
  • appInfo.getMaxPayoutKnuddelAmount()

08.07.2015

  • Viele Methoden rund um User wurden im KnuddelsServer deprecated und sind umgezogen in die neue Klasse UserAccess (Dokumentation bereits aktualisiert)
  • KnuddelsServer.getUserAccess()
  • KnuddelsServer.getUserId() -> userAccess.getUserId()
  • KnuddelsServer.userExists() -> userAccess.exists()
  • KnuddelsServer.canAccessUser() -> userAccess.mayAccess()
  • KnuddelsServer.getUser() -> userAccess.getUserById()
  • KnuddelsServer.getNickCorrectCase() -> userAccess.getNick()

Dokumentation für diese Methoden verbessert

  • KnuddelsServer.createKnuddelPot
  • knuddelPot.setFee
  • knuddelPot.refund

07.07.2015

  • Keine HTML-Tags mehr in Beschreibungen von http://developer.knuddels.de/docs/UserApps-API.js
  • In der Dokumentation gibt es nun eine Feedback-Funktion, um konkrete Hinweise zur Verbesserung der Doku zu geben.
  • Client.prefetchSound(fileName), um Sound zu laden und später seamlessly abzuspielen (Android only)
  • Client.freeSound(fileName), um einen Sound freizugeben, der nicht mehr im Client benötigt wird (Android only)
  • Bug behoben

06.07.2015

05.07.2015

  • Ab sofort gibt den @since-Hinweis in der UserApps-API.js für Klassen und Methoden.
  • Die kryptischen Crosslink-Verweise in der UserApps-API.js wurden nun durch den korrekten Text ersetzt.
  • Wunsch umgesetzt

03.07.2015

Mit dem nächsten Update gibt es diese Änderungen:

  • Auf dem Testserver wird nach Stoppen einer App ein Link zum wieder starten im Channel angezeigt.
  • Viele Methoden rund um App wurden im KnuddelsServer deprecated und sind umgezogen in die neue Klasse AppInfo (Dokumentation bereits aktualisiert)
  • KnuddelsServer.getAppInfo()
  • KnuddelsServer.getAppId() -> appInfo.getAppId()
  • KnuddelsServer.getAppUid() -> appInfo.getAppUid()
  • KnuddelsServer.getRootAppUid() -> appInfo.getRootAppUid()
  • KnuddelsServer.getAppName() -> appInfo.getAppName()
  • KnuddelsServer.getAppVersion() -> appInfo.getAppVersion()
  • KnuddelsServer.getAppDeveloper() -> appInfo.getAppDeveloper()
  • KnuddelsServer.getAppManagers() -> appInfo.getAppManagers()
  • appInfo.updateApp()
  • appInfo.stopApp()
  • appInfo.getAppKey()

02.07.2015

  • Es ist nicht mehr notwendig in HTML-Dateien, die mit sendAppContent verschickt werden die Knuddels-API-Datei /apps/api/knuddels-api.js einzubinden. Dies geschieht nun auto-magisch. (Revision AppServer 72683)

30.06.2015

  • Die Dokumentation zeigt ab sofort an, welche Klassen eine Klasse beerbt (bsp. Persistence und User-Klasse)
  • Die Klasse ClientEvent zieht um und wird umbenannt: Client.Event
  • Die Klasse Color zieht um und wird umbenannt: Client.Color

26.06.2015

  • Wir schreiben in die Dokumentation, welche API-Methoden ab welcher Server-Revision verfügbar sind und machen diese Server-Revisionen abfragbar
  • chatServerInfo.getRevision()
  • appServerInfo.getRevision()
  • KnuddelsServer.getAppServerInfo()
  • appServerInfo.getServerId()
  • Die JavaScript-Version mit der die App laufen soll lässt sich via app.config einstellen (default 1.7). Wir haben in alle eure Configs den Wert 1.2 eingestellt, damit eure Apps weiterhin laufen, weil es bisher der default war. Ihr könnt Werte zwischen 1.0 und 1.8 für den Key javaScriptVersion eintragen. Inzwischen ist dies veraltet.
  • /confirm ist nun auf der Whitelist für die Android-App
  • Revisionen, für die eine API-Doc erstellt wurde, stehen nun im API-Doc Header.

25.06.2015

Mit dem nächsten Update gibt es folgende Änderungen (Zum Sehen von Auswirkungen ist die Android-App nötig):

18.06.2015

17.06.2015

11.06.2015

28.05.2015

28.05.2015

19.05.2015

  • Der FTP-Server ist nicht mehr unter apps1.knuddels.de erreichbar sondern unter appupload.knuddels.de

15.05.2015

08.05.2015

  • ‚°BB°Foo‘.stripKCode() – Methode um String von KCode zu bereinigen.
  • AppBots können in moderierten Channeln schreiben ohne Verteilung von Rederecht

07.05.2015

02.04.2015

01.04.2015

  • Deutliche visuelle Verbesserung der Dokumentation

31.03.2015

  • Im Channel App Entwickler ist eine App installiert, die bei Begrüßen der Nutzer die wichtigsten Links postet.
  • Jeder Nutzer mit MyChannel kann nun mit /apps Apps installieren, sofern er weiss, wie das geht und die Apps für ihn freigeschaltet sind.
  • Optische Aufbesserung der API-Dokumentation und Integration von Crosslinks

30.03.2015

27.03.2015

26.03.2015

  • ‚foo‘.contains(‚o‘) -> contains Methode prüft, ob Parameter in String enthalten ist.

26.03.2015

  • Beispiel-Code in der Doku wird nun korrekt formatiert dargestellt.

25.03.2015

  • Korrektur von user.isAway() -> liefert künftig richtige Werte
  • Ab sofort hat die Doku keine Umlaut-Probleme mehr.
  • User-Objekte aus der API können nun in der Persistenz gespeichert werden.
  • Logger gibt ein Warning aus, wenn versucht wird Java-Objekte in die Persistenz zu speichern, die nicht sinnvoll deserialisiert werden können.
  • App-Bots werden über neuen Profil-Eintrag gekennzeichnet. Wir werden in den nächsten Tagen abschalten, dass es notwendig ist den Teameintrag zu haben.

Profileintrag AppBot

21.03.2015


20.03.2015


19.03.2015


11.03.2015


10.03.2015


09.03.2015


05.03.2015


04.03.2015


04.03.2015

  • Private Nachricht: 100k Zeichen
  • Öffentliche Nachricht: 10k Zeichen
  • /m-Text: 10k Zeichen
  • /m-Betreff: 1k Zeichen

18.02.2015

  • °+ZAHL° -> ZAHL muss immer 4-stellig sein. Mit diesem KCode lassen sich Inhalte auf dem Bildschirm an andere Positionen schieben. Hierdurch wird das Layouting komplexer Komponenten vereinfacht. Bizarrus schreibt heute noch etwas dazu in die KCode-Doku im Forum.

16.02.2015


12.02.2015

  • /apps startet in eigenem Fenster

12.02.2015

  • Cards4 -> Ähnlich zu Kartenset 2, aber mit Möglichkeit die Karten von der Rückseite zur Vorderseite zu animieren.

06.02.2015


06.02.2015

  • UserPersistenceNumbers -> Statische Klasse, die hilfreich ist bei der Arbeit mit Zahlen aus der UserPersistence. (Erstellung von Toplisten,…)

04.02.2015


04.02.2015


03.02.2015

30.01.2015

  • message.getText() -> liefert künftig genau das ein, was der Nutzer eingetippt hat (Smileys, etc. werden nicht ersetzt)

29.01.2015

  • ‚irgendein string‘.getPixelWidth(fontSize, isBold) -> liefert die Breite, die ein Arial-String mit einer bestimmten Schriftgröße und Boldness im Applet hat
  • ‚Dies ist ein ganz langer Text, aber eigentlich gibt es nicht so viel Platz auf dem Screen‘.limitString(fontSize, isBold, maxPixelWidth, [abbreviationMarker]) -> liefert den String zurück, der so gekürzt ist, dass er mit fontSize und Boldness maximal maxPixelWidth Breite verbraucht. Am Ende wird abbreviationMarker (falls nicht angegeben '...') angehangen. Dabei wird aber die maxPixelWidth respektiert.

29.01.2015

  • Der Betreiber eines MyChannels kann pro App einstellen, welche anderen Personen die App auch starten/stoppen/aktualisieren können

28.01.2015


28.01.2015

  • Datenbank-Lesezugriffe 115x schneller
  • Datenbank-Schreibzugriffe 2.5x schneller

27.01.2015