X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fcommon%2Fminigames%2Fsv_minigames.qc;h=57f6f46b6153570fe0b4c276875d07664191b539;hb=HEAD;hp=21f81055a463f59aa7650992bb59b14c6b5d36dd;hpb=c859a2a87cbeb3dd30f402782cf7e59d132b1b81;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/common/minigames/sv_minigames.qc b/qcsrc/common/minigames/sv_minigames.qc index 21f81055a..e1e6eec9e 100644 --- a/qcsrc/common/minigames/sv_minigames.qc +++ b/qcsrc/common/minigames/sv_minigames.qc @@ -148,9 +148,7 @@ int minigame_addplayer(entity minigame_session, entity player) Net_LinkEntity(player_pointer, false, 0, minigame_SendEntity); if ( !IS_OBSERVER(player) && autocvar_sv_minigames_observer ) - { - PutObserverInServer(player); - } + PutObserverInServer(player, true, true); if ( autocvar_sv_minigames_observer == 2 ) Player_SetForcedTeamIndex(player, TEAM_FORCE_SPECTATOR); @@ -215,7 +213,7 @@ entity join_minigame(entity player, string game_id ) return NULL; } -void part_minigame(entity player ) +void part_minigame(entity player) { entity minig = CS(player).active_minigame; @@ -270,6 +268,8 @@ string invite_minigame(entity inviter, entity player) return "Invalid player"; if ( inviter == player ) return "You can't invite yourself"; + if (autocvar_g_playban_minigames && PlayerInList(player, autocvar_g_playban_list)) // playban + return "You can't invite a banned player"; if ( CS(player).active_minigame == CS(inviter).active_minigame ) return strcat(player.netname," is already playing"); @@ -304,7 +304,8 @@ bool MinigameImpulse(entity this, int imp) return false; } - +// this macro exists only to shorten code lines +#define MINIGAME_CMD(cmd_id) MINIGAME_COMMON_CMD[MINIGAME_COMMON_CMD_ID_##cmd_id] void ClientCommand_minigame(entity caller, int request, int argc, string command) { @@ -314,10 +315,17 @@ void ClientCommand_minigame(entity caller, int request, int argc, string command return; } + if (autocvar_g_playban_minigames && PlayerInList(caller, autocvar_g_playban_list)) // playban + { + Send_Notification(NOTIF_ONE_ONLY, caller, MSG_CENTER, CENTER_JOIN_PLAYBAN); + sprint(caller, "You aren't allowed to play minigames because you are banned from them in this server.\n"); + return; + } + if (request == CMD_REQUEST_COMMAND ) { string minig_cmd = argv(1); - if ( minig_cmd == "create" && argc > 2 ) + if ( minig_cmd == MINIGAME_CMD(CREATE) && argc > 2 ) { entity minig = start_minigame(caller, argv(2)); if ( minig ) @@ -326,7 +334,7 @@ void ClientCommand_minigame(entity caller, int request, int argc, string command sprint(caller,"Cannot start minigame session!\n"); return; } - else if ( minig_cmd == "join" && argc > 2 ) + else if ( minig_cmd == MINIGAME_CMD(JOIN) && argc > 2 ) { entity minig = join_minigame(caller, argv(2)); if ( minig ) @@ -338,19 +346,19 @@ void ClientCommand_minigame(entity caller, int request, int argc, string command } return; } - else if ( minig_cmd == "list" ) + else if ( minig_cmd == MINIGAME_CMD(LIST) ) { FOREACH(Minigames, true, sprint(caller, it.netname, " (", it.message, ") ", "\n")); return; } - else if ( minig_cmd == "list-sessions" ) + else if ( minig_cmd == MINIGAME_CMD(LIST_SESSIONS) ) { entity e; for ( e = minigame_sessions; e != NULL; e = e.list_next ) sprint(caller,e.netname,"\n"); return; } - else if ( minig_cmd == "end" || minig_cmd == "part" ) + else if ( minig_cmd == MINIGAME_CMD(END) || minig_cmd == MINIGAME_CMD(PART) ) { if ( CS(caller).active_minigame ) { @@ -361,7 +369,7 @@ void ClientCommand_minigame(entity caller, int request, int argc, string command sprint(caller,"You aren't playing any minigame...\n"); return; } - else if ( minig_cmd == "invite" && argc > 2 ) + else if ( minig_cmd == MINIGAME_CMD(INVITE) && argc > 2 ) { if ( CS(caller).active_minigame ) {