//GENERAL SERVER CONFIGURATION
#define DEBUG 1

#define TCP_LISTEN_PORT 27090
#define WS_LISTEN_PORT 27019

#define MAX_PLAYERS 16
#define MAX_CONNECTIONS MAX_PLAYERS + 15

#define ASSET_LINK ""

#define OOC_HOSTNAME "SCAOS"

#define MOTD "=== MOTD ===\n === No MOTD has been set! ===\n======"
#define SERVER_FULL_MESSAGE "Server is full!"

#define MODPASS "changeme"
#define MAX_ALLOWED_MULTICLIENT 6

#define DEFAULT_AUTOPAIR 0
#define DEFAULT_HIDE_WIT_DESK_ON_JOIN 0

#define LOGGING 1

//BASIC ADVERTISING SETTINGS
#define ADVERTISE 0
#define SERVER_NAME "New SCAOS server"
#define SERVER_DESCRIPTION "This is my flashy new server!"
// #define SERVER_IP /*uncomment and set an ip if custom dns */


//CLIENT RESTRICTIONS
#define CH_MAX_TIMEOUT_SEC 128
#define FLOODGUARD_MAX_SECONDS 2
#define FLOODGUARD_VIOLATIONS_MAX 5

//FUN
char *gimps[] = {
    "Hola hijos de puta",
    "PROBANDOWN",
    "xxxxxxxXXXXXCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCKKKKKKKKKKKKKKKKKKKKKKKFFFFFFFFFFFFFFFFFFJJJJJJJJJJJJJJJJJJJJJJ"
};


//VALID AREA STATUS NAMES (TO USE IN /status)
const char *AREA_STATUS_NAMES[] = {
    "IDLE", /*< FIRST IS THE DEFAULT STATUS*/
    "CASING",
    //PUT THEM BELOW THIS LINE OR SOME FEATURES GET FUCKED UP

    "LOOKING-FOR-PLAYERS",
    "GAMING"
};

//MAX STUFF
#define AREA_TIMERS_MAX 1
#define EVIDENCE_MAX_COUNT 32
#define EVIDENCE_NAME_MAX_CHARS 64
#define EVIDENCE_DESC_MAX_CHARS 1024
#define EVIDENCE_IMAGE_MAX_CHARS 32
#define AREA_MAX_TESTIMONY_STATEMENTS 16

/*set this to the maxium length of the link that a user can put in /play.
if its smaller than one of the songs/realnames in musiclist.txt, 
the macro automatically sets to the length of that song. same with charname*/
#define SONG_NAME_MAX_LENGTH 582
#define CHAR_NAME_MAX_LENGTH 32

#define SHOWNAME_MAX_LENGTH 32
#define OOC_NAME_MAX_LENGTH 32

#define BACKGROUND_NAME_MAX_LENGTH 32

#define IC_MESSAGE_MAX_LENGTH 1024
#define OOC_MESSAGE_MAX_LENGTH 1024
#define AREA_MESSAGE_MAX_LENGTH OOC_MESSAGE_MAX_LENGTH

#define MAX_PACKET_TOLERANCE IC_MESSAGE_MAX_LENGTH + 9000

#define EMOTE_NAME_MAX_LENGTH 32
#define POS_NAME_MAX_LENGTH 32
#define SFX_NAME_MAX_LENGTH 32
/*5 is max 99999*/
#define SFX_DELAY_MS_MAX_LENGTH 5
#define SHOUT_NAME_MAX_LENGTH 32
#define EFFECT_NAME_MAX_LENGTH 32
#define BLIPS_NAME_MAX_LENGTH 32

//OOC NOTIFICATION MESSAGES
#define OOC_IS_CM_MESSAGE "%s is now CM in this area"
#define OOC_NO_LONGER_CM "%s is no longer CM in this area"
#define OOC_GAVE_CM "%s gave CM to client %u"
#define OOC_REMOVED_CM "%s removed CM from client %d"
#define OOC_CANT_JOIN_LOCKED_AREA_MESSAGE "Area %s is currently locked"
#define OOC_JOINED_AREA "Moved to %s"
#define OOC_CURRENT_BG "Current background is %s"
#define OOC_CHANGED_BACKGROUND "%s changed the current background to %s"
#define OOC_CHANGED_STATUS "%s has set the area status to %s"
#define OOC_NEED_CM "You need CM to do that!"
#define OOC_KICKED_PLAYER "Kicking player with ID %u from the server..."
#define OOC_IP_ADDED "IP %s succesfully added to banlist.txt"
#define OOC_TESTIMONY_MAX_REACHED "Unable to add more statements. Maxium amount is %u"
#define OOC_AREA_MESSAGE_UPDATED "%s updated the area message to: %s"
#define OOC_AREA_KICKED "%s kicked client %u from area %s to %s"
#define OOC_ROLL "%s rolled %d out of %u"
#define OOC_COINFLIP "%s flipped a coin and got %s"
#define OOC_PAIRING "Pairing with client %u"
#define OOC_STOP_PAIRING "Stopped pairing with client %u"

#define OOC_PRIVATE_MESSAGE_PACKET "CT#[PM][%u]%s#%s#1#%%"

//ADVANCED ADVERTISING SETTINGS
#define ADVERTISE_SECONDS_INTERVAL 120
#define MASTER_HOST "servers.aceattorneyonline.com"
#define MASTER_PATH "/servers"

#ifdef SERVER_IP
#define IP_PART "\"ip\":\"" SERVER_IP "\","
#else
#define IP_PART ""
#endif

#define ADVERTISER_JSON_FORMAT_STRING "{" \
    IP_PART \
    "\"port\":" XSTR(TCP_LISTEN_PORT) "," \
    "\"ws_port\":" XSTR(WS_LISTEN_PORT) "," \
    "\"players\":%u," \
    "\"name\":\"" SERVER_NAME "\"," \
    "\"description\":\"" SERVER_DESCRIPTION "\"" \
    "}"
