-
Notifications
You must be signed in to change notification settings - Fork 1
FAQ
- Discord-Server für Entwickler: discord.gg/cenUwBypuT – Hier kannst du dich mit anderen Entwicklern austauschen
- Knuddels-Hilfe: hilfe.knuddels.de – Für Probleme mit Zugangsdaten
- API-Dokumentation: developer.knuddels.de/docs – Vollständige Klassen- und Methodenreferenz
Der Server nutzt die Rhino Engine 1.7.15. Das entspricht ungefähr ES5. Vermeide daher let, const, Arrow Functions, Template Literals und andere ES6+-Features in deinem Server-Code (main.js und weitere serverseitige Dateien).
Im Frontend (www/-Ordner) kannst du modernes JavaScript verwenden, da es im Browser des Clients läuft.
Du brauchst eine gültige Apple-Entwicklerlizenz. Trage die appleDeveloperId in der app.config ein:
appleDeveloperId = DEINE_APPLE_ID- Wenn du auf den Live-Server hochlädst, kann es einige Minuten dauern, bis die Dateien synchronisiert sind
- Warte etwas und klicke dann erneut auf "update/restart" in
/apps - Nutze
Client.includeJS()undClient.includeCSS()statt direkter HTML-Einbindung, um Cache-Probleme zu vermeiden
Mögliche Ursachen:
- Du hast
window.locationoder einen Direktlink zu einer anderen HTML-Datei verwendet – dadurch geht der Client-Bezug verloren -
Lösung: Nutze
replaceWithAppContent()für Seitenwechsel oder ein Single-Page-Konzept
Nein. Nutze stattdessen den Logger:
var logger = KnuddelsServer.getDefaultLogger();
logger.info('Meine Debug-Nachricht');Trage in der app.config ein, wer die App installieren darf:
# Bestimmter Nutzer
mayBeInstalledBy.3 = AndererNick.knuddelsDE
# Jeder auf dem Server
mayBeInstalledBy.3 = *.knuddelsDE- Dev-Server (knuddelsDEV): Zum Entwickeln und Testen. Keine Auswirkungen auf echte Nutzer.
- Live-Server (knuddelsDE): Die produktive Umgebung. Hier sollten nur stabile Apps installiert werden.
Mehr dazu unter Dev-Server.
Registriere sie als Globale App. Siehe Globale Apps.
function solveQuest(user, questName) {
var questAccess = user.getQuestAccess();
if (questAccess.hasQuest(questName)) {
var quest = questAccess.getQuest(questName);
if (quest !== null) {
quest.setSolved();
}
}
}Quests müssen vorab bei Knuddels eingereicht werden: Quest einreichen
Die maximale Größe pro Schlüssel beträgt 102.400 Zeichen. Die Gesamtgröße der Datenbank ist ebenfalls limitiert. Du kannst sie prüfen mit:
var persistence = KnuddelsServer.getPersistence();
var groesse = persistence.getDatabaseFileSize();
var limit = persistence.getDatabaseFileSizeLimit();Ja, über ExternalServerAccess. Allerdings nur mit freigegebenen Domains. Siehe Externe Server-Kommunikation.
Deine JavaScript-Dateien müssen als UTF-8 ohne BOM gespeichert werden. Stelle das in deinem Editor ein (z.B. VS Code: "Files: Encoding" → "utf8"). Dateien mit BOM oder in anderen Encodings (z.B. ANSI) führen zu kaputten Sonderzeichen.
Wenn du JavaScript-Dateien im Frontend mit einem normalen <script>-Tag einbindest, werden sie vom Browser gecacht. Das heißt, nach einem Update auf dem Server sehen Nutzer möglicherweise noch die alte Version. Client.includeJS() und Client.includeCSS() umgehen dieses Caching-Problem, indem sie automatisch einen Cache-Buster anhängen.
<!-- Statt: -->
<script src="js/app.js"></script>
<!-- Verwende im <head>: -->
<script>
Client.includeJS('js/app.js');
Client.includeCSS('css/style.css');
</script>Implementiere den onUserDeleted-Hook, um Nutzerdaten DSGVO-konform zu löschen. Ohne diesen Hook werden Persistence-Daten erst beim nächsten App-Start aufgeräumt. Siehe App-Lifecycle → Nutzerlöschung.
Channel-Owner können per Chat-Befehl App-Manager verwalten:
/apps addManager knuddelsDE.ENTWICKLER_ID.AppName ManagerNick
/apps removeManager knuddelsDE.ENTWICKLER_ID.AppName ManagerNick
- Erste Schritte – Voraussetzungen, Einrichtung, deine erste App
-
Projektstruktur – Dateien, Ordner und
app.config - Dev-Server – Entwicklungsumgebung und Testen
-
App-Lifecycle und Hooks –
onAppStart,onUserJoinedund Co. -
Server-API Grundlagen –
KnuddelsServer,Channel,Logger - Client-Server-Kommunikation – Events zwischen Frontend und Backend
-
Benutzer und Nachrichten –
User,BotUser, Nachrichten senden - HTML-UI und AppContent – Popups, Overlays, Globale Apps-UI
-
Datenspeicherung –
AppPersistence,UserPersistence -
Knuddel und Zahlungen – Transfers, Käufe,
KnuddelAccount - Toplisten – Ranglisten und Highscores
- Globale Apps – Apps im "Apps & Spiele"-Menü
- Quests – Aufgaben für Nutzer
- Externe Server-Kommunikation – HTTP-Requests an externe APIs
- Tutorials – Übersicht aller Tutorials
- Tic-Tac-Toe – Multiplayer-Spiel mit Bestenliste
- Best Practices – Tipps, Limits und häufige Fehler
- FAQ – Häufig gestellte Fragen
- KCode-Formatierung – Nachrichten-Formatierung mit KCode