Removed a no-longer-existing command and added a new command to the tab-completion list (#57)

* Removed a no-longer-existing command and added a new command to the tab-completion list

* Bugfix

* bugfix 2

* Fixed a few bad german translations

* Fixed Tabcompletion for the "nametags" command

* Revert "Merge branch 'coop-deluxe:main' into main"

This reverts commit 3803ead26d23256a5200f6fa2c4c9185ce6e05f0, reversing
changes made to bd7ffb38a7560e8791118edce2cdcaf06e683d66.

* Reapply "Merge branch 'coop-deluxe:main' into main"

This reverts commit 28c1d97dd5c8a8648d4271bb59d3ca9c16df5c30.

* Fixed the "mallocation" and "static" issues

* more fixes

* Improved, cleaned up and refactored the iZeSaveStates mod and renamed it to just SaveStates

* bug fix

* removed the savestates mod

* combined both for-loops into a single one
This commit is contained in:
iZePlayz 2024-06-12 00:47:54 +02:00 committed by GitHub
parent eb45999791
commit 95fd534e15
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 67 additions and 53 deletions

View file

@ -1,63 +1,63 @@
[NOTIF]
CONNECTED = "@ hat sich mit dem Server verbunden."
DISCONNECTED = "@ hat die Verbindung zum Server getrennt."
CONNECTED = "@ hat den Server betreten."
DISCONNECTED = "@ hat den Server verlassen."
LEFT_THIS_LEVEL = "@ hat dieses Level verlassen."
ENTERED_THIS_LEVEL = "@ ist diesem Level beigetreten."
ENTERED = "@ ist beigetreten zu\n#"
SERVER_CLOSED = "\\#ffa0a0\\Verbindung getrennt:\\#dcdcdc\\ Server wurde geschlossen."
ENTERED_THIS_LEVEL = "@ hat dieses Level betreten."
ENTERED = "@ ist beigetreten\n#"
SERVER_CLOSED = "\\#ffa0a0\\Verbindung getrennt:\\#dcdcdc\\ Der Server wurde geschlossen!"
DISCORD_ERROR = "Discord hat einen Fehler verursacht.\nUm dies zu vermeiden, versuche: \n1. das Spiel zu schließen.\n2. Discord neu zu starten.\n3. das Spiel erneut zu starten."
DISCORD_DETECT = "\\#ffa0a0\\Fehlermeldung:\\#dcdcdc\\ Discord konnte nicht gefunden werden.\n\\#a0a0a0\\Versuche, das Spiel zu schließen, Discord neu zu starten und dann das Spiel anschließend wieder zu öffnen."
DISCONNECT_FULL = "\\#ffa0a0\\Verbindung getrennt:\\#dcdcdc\\ Die Gruppe ist voll."
DISCONNECT_KICK = "\\#ffa0a0\\Verbindung getrennt:\\#dcdcdc\\ Du wurdest vom Server geworfen."
DISCONNECT_BAN = "\\#ffa0a0\\Verbindung getrennt:\\#dcdcdc\\ Du wurdest vom Server gebannt."
DISCONNECT_FULL = "\\#ffa0a0\\Verbindung getrennt:\\#dcdcdc\\ Der Server ist bereits voll."
DISCONNECT_KICK = "\\#ffa0a0\\Verbindung getrennt:\\#dcdcdc\\ Du wurdest vom Server gekickt."
DISCONNECT_BAN = "\\#ffa0a0\\Verbindung getrennt:\\#dcdcdc\\ Der Bann-Hammer hat gesprochen."
DISCONNECT_REJOIN = "\\#ffa0a0\\Verbindung getrennt:\\#dcdcdc\\ Erneut verbinden..."
DISCONNECT_CLOSED = "\\#ffa0a0\\Verbindung getrennt:\\#dcdcdc\\ Der Servereigentümer hat die Verbindung geschlossen."
DISCONNECT_BIG_MOD = "Der Server verwendet eine zu große Modifikation.\nDie Verbindung wird getrennt."
DISCONNECT_CLOSED = "\\#ffa0a0\\Verbindung getrennt:\\#dcdcdc\\ Der Hoster hat den Server geschlosse."
DISCONNECT_BIG_MOD = "Es konnte keine Verbindung hergestellt werden, da zu viele oder zu große Mods auf dem Server vorhanden sind!"
DIED = "@ ist gestorben."
DEBUG_FLY = "@ hat den Debug-Free-Fly-Modus aktiviert."
IMPORT_MOD_SUCCESS = "\\#a0ffa0\\Mod importiert\n\\#dcdcdc\\'@'"
IMPORT_DYNOS_SUCCESS = "\\#a0ffa0\\DynOS-Paket importiert\n\\#dcdcdc\\'@'"
IMPORT_PALETTE_SUCCESS = "\\#a0ffa0\\Importiertes Paletten-Voreinstellung\n\\#dcdcdc\\'@'"
IMPORT_FAIL = "\\#ffa0a0\\Import fehlgeschlagen für\n\\#dcdcdc\\'@'"
IMPORT_FAIL_INGAME = "\\#ffa0a0\\Kann nicht im Spiel importieren."
COOPNET_CONNECTION_FAILED = "\\#ffa0a0\\Verbindung zu CoopNet fehlgeschlagen!"
IMPORT_MOD_SUCCESS = "\\#a0ffa0\\Mod erfolgreich importiert\n\\#dcdcdc\\'@'"
IMPORT_DYNOS_SUCCESS = "\\#a0ffa0\\DynOS-Paket erfolgreich importiert\n\\#dcdcdc\\'@'"
IMPORT_PALETTE_SUCCESS = "\\#a0ffa0\\Paletten-Voreinstellung erfolgreich importiert\n\\#dcdcdc\\'@'"
IMPORT_FAIL = "\\#ffa0a0\\Importierung fehlgeschlagen\n\\#dcdcdc\\'@'"
IMPORT_FAIL_INGAME = "\\#ffa0a0\\Ein Fehler beim Importieren ist aufgetreten."
COOPNET_CONNECTION_FAILED = "\\#ffa0a0\\Es konnte keine Verbindung zu CoopNet hergestellt werden!"
COOPNET_DISCONNECTED = "\\#ffa0a0\\Verbindung zu CoopNet verloren!"
LOBBY_NOT_FOUND = "\\#ffa0a0\\Diese Lobby existiert nicht mehr."
LOBBY_JOIN_FAILED = "\\#ffa0a0\\Konnte der Lobby nicht beitreten!"
LOBBY_JOIN_FAILED = "\\#ffa0a0\\Fehler beim Beitreten der Lobby!"
LOBBY_PASSWORD_INCORRECT = "\\#ffa0a0\\Falsches Lobby-Passwort!"
COOPNET_VERSION = "\\#ffa0a0\\Deine Version ist nicht kompatibel mit CoopNet. Bitte lade die neueste Version des Spiels herunter!"
PEER_FAILED = "\\#ffa0a0\\Konnte keine Verbindung zum Spieler '@' aufbauen."
COOPNET_VERSION = "\\#ffa0a0\\Die Version deines Spieles ist inkompatibel mit CoopNet. Bitte installiere die neuste Version!"
PEER_FAILED = "\\#ffa0a0\\Es konnte keine Verbindung zum Spieler '@' aufgebaut werden."
UNKNOWN = "Unbekannt"
LOBBY_HOST = "Lobby-Hoster"
UPDATE_AVAILABLE = "Neues Update!"
LATEST_VERSION = "Aktuellste Version"
YOUR_VERSION = "Ihre Version"
UPDATE_AVAILABLE = "Ein neues Update ist verfügbar!"
LATEST_VERSION = "Neuste verfügbare Version"
YOUR_VERSION = "Derzeit installierte Version"
[CHAT]
KICKING = "'@' wird hinausgeworfen!"
BANNING = "'@' wird gebannt!"
SERVER_ONLY = "Nur der Server kann diesen Befehl ausführen."
PERM_BANNING = "'@' wird dauerhaft gebannt!"
ADD_MODERATOR = "'@' wird als Moderator hinzugefügt!"
KICKING = "'@' wurde gekickt!"
BANNING = "'@' wurde gebannt!"
SERVER_ONLY = "Dieser Befehl kann nur auf dem Server ausgeführt werden!"
PERM_BANNING = "'@' wurde permanent gebannt!"
ADD_MODERATOR = "'@' ist nun Moderator!"
PLAYERS = "Spieler"
NO_PERMS = "Du hast keine Berechtigung, diesen Befehl auszuführen."
PLAYER_NOT_FOUND = "Spieler konnte nicht gefunden werden."
NAMETAGS_MISSING_PARAMETERS = "Fehlende Parameter: [OPTION]"
SELF_KICK = "Du kannst dich nicht selbst hinauswerfen."
SELF_KICK = "Du kannst dich nicht selbst kicken."
SELF_BAN = "Du kannst dich nicht selbst bannen."
SELF_MOD = "Du kannst dich nicht selbst zum Moderator machen."
KICK_CONFIRM = "Bist du sicher, dass du '@' vom Server werfen möchtest?\nGib '\\#a0ffa0\\/bestätigen\\#fff982\\' ein, um fortzufahren."
KICK_CONFIRM = "Bist du sicher, dass du '@' vom Server kicken möchtest?\nGib '\\#a0ffa0\\/bestätigen\\#fff982\\' ein, um fortzufahren."
BAN_CONFIRM = "Bist du sicher, dass du '@' vom Server bannen möchtest?\nGib '\\#a0ffa0\\/bestätigen\\#fff982\\' ein, um fortzufahren."
PERM_BAN_CONFIRM = "Bist du sicher, dass du '@' dauerhaft vom Server bannen möchtest?\nGib '\\#a0ffa0\\/bestätigen\\#fff982\\' ein, um fortzufahren."
MOD_CONFIRM = "Bist du sicher, dass du '@' zum Moderator ernennen möchtest?\nGib '\\#a0ffa0\\/bestätigen\\#fff982\\' ein."
PLAYERS_DESC = "/players - Zeige alle Spieler und ihre IDs."
KICK_DESC = "/kick [NAME|ID] - Einen Spieler aus dem aktuellen Spiel werfen."
BAN_DESC = "/ban [NAME|ID] - Einen Spieler aus dem aktuellen Spiel bannen."
PERM_BAN_DESC = "/permban [NAME|ID] - Einen Spieler dauerhaft für alle von dir gehosteten Spiele bannen."
MOD_DESC = "/moderator [NAME|ID] - Einem Spieler die Berechtigung für Befehle wie /kick, /ban, /permban in allen von dir gehosteten Spielen geben."
NAMETAGS_DESC = "/nametags [show-tag|show-health] - Ändern Sie, ob Sie Ihr eigenes Namensschild sehen und ob Sie die Gesundheit sehen"
UNRECOGNIZED = "Unbekannter Befehl."
MOD_GRANTED = "\\#fff982\\Du bist jetzt Moderator."
KICK_DESC = "/kick [NAME|ID] - Kicke einen Spieler vom Server."
BAN_DESC = "/ban [NAME|ID] - Banne einen Spieler vom Server."
PERM_BAN_DESC = "/permban [NAME|ID] - Banne einen spieler dauerhaft in allen vor dir gehosteten Lobbys."
MOD_DESC = "/moderator [NAME|ID] - Gebe einem Spieler Moderator rechte wie /kick, /ban, /permban in allen von dir gehosteten Lobbys."
NAMETAGS_DESC = "/nametags [show-tag|show-health] - Sichtbarkeit von Spielernamen sowie der KP/Kraft aktivieren oder deaktivieren "
UNRECOGNIZED = "Unbekannter Befehl!"
MOD_GRANTED = "\\#fff982\\Du bist jetzt ein Moderator."
[MENU]
BACK = "Zurück"

View file

@ -129,7 +129,7 @@ static void djui_chat_box_input_enter(struct DjuiInputbox* chatInput) {
if (strlen(chatInput->buffer) != 0) {
sent_history_add_message(&sentHistory, chatInput->buffer);
if (chatInput->buffer[0] == '/') {
if (strcmp(chatInput->buffer, "/help") == 0 || strcmp(chatInput->buffer, "/?") == 0 || (!configUseStandardKeyBindingsChat && strcmp(chatInput->buffer, "/")) == 0) {
if (strcmp(chatInput->buffer, "/help") == 0 || strcmp(chatInput->buffer, "/?") == 0) {
display_chat_commands();
} else if (!exec_chat_command(chatInput->buffer)) {
char extendedUnknownCommandMessage[MAX_MSG_LENGTH];

View file

@ -1813,35 +1813,49 @@ char** smlua_get_chat_player_list(void) {
return sortedPlayers;
}
char** smlua_get_chat_maincommands_list(void) {
#if defined(DEVELOPMENT)
char* additionalCmds[] = {"players", "kick", "ban", "permban", "moderator", "confirm", "help", "?", "warp", "lua", "luaf"};
s32 additionalCmdsCount = 11;
s32 defaultCmdsCount = 11;
static char* defaultCmds[] = {"players", "kick", "ban", "permban", "moderator", "help", "?", "warp", "lua", "luaf", NULL};
#else
char* additionalCmds[] = {"players", "kick", "ban", "permban", "moderator", "confirm", "help", "?"};
s32 additionalCmdsCount = 8;
s32 defaultCmdsCount = 8;
static char* defaultCmds[] = {"players", "kick", "ban", "permban", "moderator", "help", "?", NULL};
#endif
char** commands = (char**) malloc((sHookedChatCommandsCount + additionalCmdsCount + 1) * sizeof(char*));
s32 defaultCmdsCountNew = 0;
for (s32 i = 0; i < defaultCmdsCount; i++) {
if (defaultCmds[i] != NULL) {
defaultCmdsCountNew++;
} else if (gServerSettings.nametags && defaultCmds[i] == NULL) {
defaultCmds[i] = "nametags";
defaultCmdsCountNew++;
break;
}
}
char** commands = (char**) malloc((sHookedChatCommandsCount + defaultCmdsCountNew + 1) * sizeof(char*));
for (s32 i = 0; i < sHookedChatCommandsCount; i++) {
struct LuaHookedChatCommand* hook = &sHookedChatCommands[i];
commands[i] = strdup(hook->command);
}
for (s32 i = 0; i < additionalCmdsCount; i++) {
commands[sHookedChatCommandsCount + i] = strdup(additionalCmds[i]);
for (s32 i = 0; i < defaultCmdsCount; i++) {
if (defaultCmds[i] != NULL) {
commands[sHookedChatCommandsCount + i] = strdup(defaultCmds[i]);
}
}
commands[sHookedChatCommandsCount + additionalCmdsCount] = NULL;
qsort(commands, sHookedChatCommandsCount + additionalCmdsCount, sizeof(char*), sort_alphabetically);
commands[sHookedChatCommandsCount + defaultCmdsCountNew] = NULL;
qsort(commands, sHookedChatCommandsCount + defaultCmdsCountNew, sizeof(char*), sort_alphabetically);
return commands;
}
char** smlua_get_chat_subcommands_list(const char* maincommand) {
if (gServerSettings.nametags && strcmp(maincommand, "nametags") == 0) {
s32 count = 2;
char** subcommands = (char**) malloc((count + 1) * sizeof(char*));
subcommands[0] = strdup("show-tag");
subcommands[1] = strdup("show-health");
subcommands[2] = NULL;
return subcommands;
}
for (s32 i = 0; i < sHookedChatCommandsCount; i++) {
struct LuaHookedChatCommand* hook = &sHookedChatCommands[i];
if (strcmp(hook->command, maincommand) == 0) {