2023-02-21 12:29:04 +01:00
/*
This is part of WHY2
Copyright ( C ) 2022 Václav Š mejkal
This program is free software : you can redistribute it and / or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation , either version 3 of the License , or
( at your option ) any later version .
This program is distributed in the hope that it will be useful ,
but WITHOUT ANY WARRANTY ; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
GNU General Public License for more details .
You should have received a copy of the GNU General Public License
along with this program . If not , see < https : //www.gnu.org/licenses/>.
*/
2023-02-09 17:39:11 +01:00
# ifndef WHY2_CHAT_COMMON_H
# define WHY2_CHAT_COMMON_H
2024-01-23 18:27:24 +01:00
# ifdef __cplusplus
extern " C " {
# endif
2023-04-01 12:56:14 +02:00
//MACROS
2023-03-12 15:01:04 +01:00
# define WHY2_SA struct sockaddr
2024-02-21 09:01:35 +01:00
# define WHY2_CHAT_SERVER_PORT 1204 //PORT
2024-02-21 08:49:05 +01:00
# define WHY2_MAX_CONNECTIONS 1000 //MAX USERS CONNECTED AT ONE TIME
2023-02-09 17:39:11 +01:00
2023-04-01 12:56:14 +02:00
# define WHY2_CLEAR_AND_GO_UP "\33[2K\r\033[A" //i mean read the name
2023-03-12 14:44:55 +01:00
2023-04-05 10:12:12 +02:00
# define WHY2_INVALID_POINTER (void*) 0xffffffffffffffff
2024-04-19 20:06:35 +02:00
//(SERVER -> CLIENT) CODES
2024-08-28 11:42:13 +02:00
# define WHY2_CHAT_CODE_ACCEPT_MESSAGES "code_000" //TELL CLIENT THEY CAN SEND MESSAGES
2024-08-28 11:35:09 +02:00
# define WHY2_CHAT_CODE_PICK_USERNAME "code_001" //TELL CLIENT TO PICK USERNAME
# define WHY2_CHAT_CODE_SERVER_SIDE_QUIT_COMMUNICATION "code_002" //TELL CLIENT TO END COMMUNICATION (just so they don't get segfault on server-side disconnect)
# define WHY2_CHAT_CODE_INVALID_USERNAME "code_003" //haha
2024-04-28 11:49:51 +02:00
# define WHY2_CHAT_CODE_LIST_SERVER "code_004" //SAME AS WHY2_CHAT_CODE_LIST BUT BACK TO THE CLIENT
2024-08-28 12:07:32 +02:00
# define WHY2_CHAT_CODE_VERSION_SERVER "code_005" //SAME AS WHY2_CHAT_CODE_VERSION BUT BACK TO THE CLIENT
2024-08-28 14:00:24 +02:00
# define WHY2_CHAT_CODE_PM_SERVER "code_006" //SAME AS WHY2_CHAT_CODE_PM BUT BACK TO THE CLIENT
2024-09-01 20:05:17 +02:00
# define WHY2_CHAT_CODE_ENTER_PASSWORD "code_007" //RECEIVE PASSWORD FROM USER
# define WHY2_CHAT_CODE_INVALID_PASSWORD "code_008" //🌸ꗥ~ꗥ🌸 𝐢 𝐡 𝐚 𝐭 𝐞 𝐲 𝐨 𝐮 🌸ꗥ~ꗥ🌸
2024-02-21 08:49:05 +01:00
2024-04-28 15:25:43 +02:00
//(CLIENT -> SERVER) CODES
2024-08-28 11:35:09 +02:00
# define WHY2_CHAT_CODE_EXIT "code_999" //TELL SERVER YOU ARE ENDING COMMUNICATION
# define WHY2_CHAT_CODE_LIST "code_998" //TELL SERVER TO GIVE YOU ALL CONNECTED USERS
# define WHY2_CHAT_CODE_PM "code_997" //TELL SERVER TO SEND MESSAGE ONLY TO SPECIFIC ID
# define WHY2_CHAT_CODE_VERSION "code_996" //TELL SERVER TO GIVE YOU ITS VERSION
2024-04-19 20:06:35 +02:00
2024-04-17 17:43:25 +02:00
//COMMANDS
# define WHY2_CHAT_COMMAND_PREFIX "!" //the little thingy you write before the command names to make the program recognise them boy. You know? Like in minecraft you use /kill... Also, are you dumb?
# define WHY2_CHAT_COMMAND_EXIT "exit" //QUIT THE PROGRAM CMD
2024-04-19 16:08:54 +02:00
# define WHY2_CHAT_COMMAND_HELP "help" //PRINT ALL COMMANDS
2024-04-27 11:47:04 +02:00
# define WHY2_CHAT_COMMAND_LIST "list" //LIST ALL CONNECTIONS
2024-04-19 20:06:35 +02:00
# define WHY2_CHAT_COMMAND_PM "pm" //PRIVATE MESSAGES
2024-08-28 11:35:09 +02:00
# define WHY2_CHAT_COMMAND_VERSION "version" //COMPARE CLIENT VERSION AND SERVER VERSION
2024-04-17 17:43:25 +02:00
2024-02-21 08:49:05 +01:00
//SHORTCUTS CAUSE I'M LAZY BITCH
# define WHY2_CHAT_CODE_SSQC WHY2_CHAT_CODE_SERVER_SIDE_QUIT_COMMUNICATION
2024-04-17 18:03:40 +02:00
char * why2_chat_client_get_server_exit_cmd ( ) ; //GETTER AND SETTER FOR !exit FROM SERVER
void why2_chat_client_set_server_exit_cmd ( char * cmd ) ;
2024-01-23 18:27:24 +01:00
# ifdef __cplusplus
}
# endif
2023-02-09 17:39:11 +01:00
# endif