Dies sollte dir eine allgemeine Vorstellung davon geben, worum es bei dem Strawberry Communication Standard geht
stbm
(Strawberry Communication Standard).
Wir planen dies zu stbc
umzubennenen um möglicherweise weniger Verwirrung zu verursachen(stbmv1/stbcv1)
ist eine “Legacy” Version und erhält keine Updates mehr.
Diese Version sendete pure Python-Strings über Sockets und der Client empfängt diese ohne vieles entschlüsseln der Daten.
Die Daten werden jediglich nur entkodiert.Hinweis
(stbmv2/stbcv2)
ist eine neue, verbesserte Version unseres Kommunikationssystemes.
Diese verwendet JSON, um Nachrichten über den Benutzern zu übertragen.
Mit unserem neuen Kommunizierungsstandard können Nutzer nun ihre eigenen Message Builder erstellen und damit selber entscheiden wie eine Nachricht angezeigt sein soll,
unabhängig davon wie der Server eigentlich die Nachrichten gesendet hätte.Strawberry Communication Standard v2.1
(stbmv2.1)
für Nachrichten-Proxying, diese Version ist aber aktuell nicht verfügbar.(stbcv3)
wurde mit dem Rust-rewrite von Strawberry Chat veröffentlicht.
Diese Version implementiert das senden von JSON-Daten auf beiden Seiten (Server & Client).
Das bedeutet, dass der Client dann auch JSON senden muss. Aufgrund von aktuellen Performanceproblemen steht dies aber noch nicht fest und könnte daher sich noch ändern.
Durch die Implementierung von JSON für den Client stehen viele neue Möglichkeiten offen. Dadurch kann der Client spezielle Daten am Server senden und dieser verarbeitet diese.
So könnten Commands, die Client-spezifisch sind, am Server verarbeitet werden.Die Veröffentlichung fand am 19. April 2024 statt. Version 3 ist nicht rückwärtskompatibel.Unterstützte Features | stbcv1 | stbcv2 | stbcv2.1 | stbcv3 |
---|---|---|---|---|
Python Strings¹ | ✅ | ✅ | ✅ | ❌ |
pure String Transfer² | ✅ | ❌ | ✅ | ❌ |
Kompatiblitätsmodus | ✅ | ✅ | ✅ | ❌ |
JSON Server-to-Client³ | ❌ | ✅ | ✅ | ✅ |
JSON Client-to-Server⁴ | ❌ | ❌ | ❌ | ✅ |
Msgpack | ❌ | ❌ | ❌ | ✅ |
Python Strings¹
ps_com
oder feat@ps
pure String Transfer²
pST_com
oder feat@pst
JSON Server-to-Client³
json_stc
oder json@stc
JSON Client-to-Server³
json_cts
oder json@cts
Nutzernachrichten (user_message)
user_message
) sind Nachrichten die von einem Nutzer gesendet wurden.
Der Datentyp beinhaltet wichtige Daten, wie z.B. der Nutzername, das Badge, die Rollenfarbe und am wichtigsten, die Nachricht des Nutzers.
Die Struktur könnte sich mit stbcv3 ändern.Systemnachrichten (system_message)
system_message
) sind Nachrichten die vom System gesendet wurden.
Dort handelt es sich meist um Nachrichten, dass ein neuer Nutzer beigetreten ist, allerdings können Systemnachrichten auch die eingebauten Slash-Commands sein.
Dieser Datentyp ist ziemlich kompakt und sehr klein. Dies könnte sich aber eventuell mit stbcv3 ändern.Benachrichtigungs-Backend (stbchat_notification)
stbchat_notification
) sind interne Nachrichtenevents die vom System gesendet wurden.
Diese Nachricht siehst du nicht, aber führt im Hintergrund ein Prozess aus, nämlich der, um dir eine Desktop-Benachrichtigung zu senden.
Dieser Datentyp ist etwas komplexer. Die Struktur dieses Datentypes könnte sich mit stbcv3 ändern.Chatdatenübertragungs-Backend (stbchat_backend)
stbchat_backend
) sind interne Nachrichtenevents die vom System gesendet wurden.
Diese Nachricht siehst du nicht, aber führt im Hintergrund ein Prozess aus. Dieser Prozess kann unterschiedlich sein.
Aktuell sendet stbchat_backend
nur den Nutzernamen an den Client zurück. Der Client kann den Nutzernamen dann für verschiedene Dinge verwenden.
Dieser Datentyp ist aufgrund seiner Neuheit sehr klein. Mit stbcv3 oder vielleicht sogar stbcv2 erhält dieser Datentyp allerdings noch mehr Features und damit eine höhere Bedeutung.stbmv2
). Hier kannst du mehr darüber erfahrenv1.8.0 - v1.8.2 | v1.8.3 | v1.9.0 | |
---|---|---|---|
Standard <=2.4.0 | ✅ | ✅ | ❌ |
Standard v2.5.0 | ❌ | ❌ | ✅ |
Standard >=v2.5.1 | ✅ (CM) | ✅ (CM) | ✅ (CM) |
Lite <=v1.0.1 | ✅ | ✅ | ❌ |
Lite >=v1.1.0 | ❌ | ❌ | ✅ |
Nano <=v1.0.1 | ✅ | ✅ | ❌ |
Nano >=v1.1.0 | ❌ | ❌ | ✅ |
Berryjuice-pico | ✅ | ✅ | ❌ |
compatibility_mode: true
zu deinem Legacy Servereintrag hinzufügen oder starte den Client mit dem --compatibility-mode
Argument