WHY2/include/chat/flags.h

96 lines
4.1 KiB
C
Raw Normal View History

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
2024-09-01 20:57:29 +02:00
#include <why2/flags.h>
2025-01-31 16:30:32 +01:00
//ENUMS
enum WHY2_CHAT_SERVER_TYPE //TYPE OF SERVER
{
WHY2_CHAT_SERVER, //CLASSIC COMMUNICATION SERVER
WHY2_CHAT_AUTHORITY //CA
};
2023-04-01 12:56:14 +02:00
//MACROS
2025-01-31 15:53:42 +01:00
#define WHY2_CHAT_SERVER_PORT 1204 //PORT FOR SERVER
#define WHY2_CHAT_AUTHORITY_PORT 1203 //PORT FOR CA
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
#define WHY2_INVALID_POINTER (void*) 0xffffffffffffffff
2024-04-19 20:06:35 +02:00
//(SERVER -> CLIENT) CODES
2025-02-01 21:08:15 +01:00
#define WHY2_CHAT_CODE_SERVER_CLIENT_KEY_EXCHANGE "SC0" //TELL CLIENT YOU ARE SHARING YOUR PUBLIC KEY
#define WHY2_CHAT_CODE_ACCEPT_MESSAGES "SC1" //TELL CLIENT THEY CAN SEND MESSAGES
#define WHY2_CHAT_CODE_PICK_USERNAME "SC2" //TELL CLIENT TO PICK USERNAME
#define WHY2_CHAT_CODE_SERVER_SIDE_QUIT_COMMUNICATION "SC3" //TELL CLIENT TO END COMMUNICATION (just so they don't get segfault on server-side disconnect)
#define WHY2_CHAT_CODE_INVALID_USERNAME "SC4" //haha
#define WHY2_CHAT_CODE_LIST_SERVER "SC5" //SAME AS WHY2_CHAT_CODE_LIST BUT BACK TO THE CLIENT
#define WHY2_CHAT_CODE_VERSION_SERVER "SC6" //SAME AS WHY2_CHAT_CODE_VERSION BUT BACK TO THE CLIENT
#define WHY2_CHAT_CODE_DM_SERVER "SC7" //SAME AS WHY2_CHAT_CODE_DM BUT BACK TO THE CLIENT
#define WHY2_CHAT_CODE_ENTER_PASSWORD "SC8" //RECEIVE PASSWORD FROM USER
#define WHY2_CHAT_CODE_INVALID_PASSWORD "SC9"//🌸ꗥ~ꗥ🌸 𝐢 𝐡𝐚𝐭𝐞 𝐲𝐨𝐮 🌸ꗥ~ꗥ🌸
2024-02-21 08:49:05 +01:00
2024-04-28 15:25:43 +02:00
//(CLIENT -> SERVER) CODES
2025-02-01 21:06:50 +01:00
#define WHY2_CHAT_CODE_CLIENT_SERVER_KEY_EXCHANGE "CS0" //TELL SERVER YOU ARE SHARING YOUR PUBLIC KEY
#define WHY2_CHAT_CODE_EXIT "CS1" //TELL SERVER YOU ARE ENDING COMMUNICATION
#define WHY2_CHAT_CODE_LIST "CS2" //TELL SERVER TO GIVE YOU ALL CONNECTED USERS
#define WHY2_CHAT_CODE_DM "CS3" //TELL SERVER TO SEND MESSAGE ONLY TO SPECIFIC ID
#define WHY2_CHAT_CODE_VERSION "CS4" //TELL SERVER TO GIVE YOU ITS VERSION
2025-02-01 20:39:36 +01:00
#define WHY2_CHAT_CODE_USERNAME "CS5" //TELL SERVER YOU ARE GIVING IT YOUR USERNAME
2025-02-01 20:58:46 +01:00
#define WHY2_CHAT_CODE_PASSWORD "CS6" //TELL SERVER YOU ARE GIVING IT YOUR PASSWORD (HASHED)
2024-04-19 20:06:35 +02:00
//(AUTHORITY -> CLIENT) CODES
2025-02-01 21:08:15 +01:00
#define WHY2_CHAT_CODE_KEY_EXCHANGE "AC0" //TELL CLIENT TO SEND CA THEIR PUBKEY
#define WHY2_CHAT_CODE_SUCCESS "AC1" //TELL CLIENT THEY ARE GOOD TO GO
#define WHY2_CHAT_CODE_FAILURE "AC2" //TELL CLIENT THEY FUCKED UP
//(CLIENT -> AUTHORITY) CODES
#define WHY2_CHAT_CODE_CLIENT_KEY_EXCHANGE "CA0" //TELL AUTHORITY YOU ARE SENDING YOUR PUBLIC KEY
//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
#define WHY2_CHAT_COMMAND_DM "dm" //DIRECT (UNENCRYPTED) MESSAGES
#define WHY2_CHAT_COMMAND_VERSION "version" //COMPARE CLIENT VERSION AND SERVER VERSION
2025-01-30 22:49:38 +01:00
#define WHY2_CHAT_COMMAND_PM "pm" //PRIVATE (ENCRYPTED) MESSAGES
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-09-01 20:49:40 +02:00
//FUNCTIONS
2024-09-01 20:57:29 +02:00
void __why2_set_asking_password(why2_bool value); //IF HASH SHOULD BE SENT INSTEAD OF NORMAL MESSAGE
why2_bool __why2_get_asking_password();
2024-09-01 20:49:40 +02:00
2025-02-01 20:47:45 +01:00
void __why2_set_asking_username(why2_bool value);
why2_bool __why2_get_asking_username();
2024-01-23 18:27:24 +01:00
#ifdef __cplusplus
}
#endif
2023-02-09 17:39:11 +01:00
#endif