diff --git a/mods/Fifty.ServerVote/mod/scripts/vscripts/fsv_command_callbacks.nut b/mods/Fifty.ServerVote/mod/scripts/vscripts/fsv_command_callbacks.nut index 0acd200..7615327 100644 --- a/mods/Fifty.ServerVote/mod/scripts/vscripts/fsv_command_callbacks.nut +++ b/mods/Fifty.ServerVote/mod/scripts/vscripts/fsv_command_callbacks.nut @@ -134,6 +134,7 @@ void function FSV_CommandCallback_NextMap( entity player, array< string > args ) void function FSV_CommandCallback_Skip( entity player, array< string > args ) { if( FSA_IsAdmin( player ) && args.len() >= 1 ) { if( args[0].tolower() == "force" ) { + FSU_ChatBroadcast("%AMap skipped by admin!") FSV_SkipMatch() } else { FSU_PrivateChatMessage( player, "You are admin. You can force skip: %H%Pskip force") @@ -250,6 +251,7 @@ void function FSV_CommandCallback_Extend( entity player, array< string > args ) if( FSA_IsAdmin( player ) && args.len() >= 1 ) { FSV_ExtendMatch( float( args[0].tointeger() ) ) FSU_PrivateChatMessage( player, "%SExtended match." ) + FSU_ChatBroadcast("%AMap time extended by admin!") return } @@ -290,7 +292,7 @@ void function FSV_ExtendThread(){ } wait 1 foreach (entity player in GetPlayerArray()) { - NSCreateStatusMessageOnPlayer( player, FSV_TimerToMinutesAndSeconds(timer), extendVoters.len() + "/" + extendThreshold + "have voted to extend map time", "extend" ) + NSCreateStatusMessageOnPlayer( player, FSV_TimerToMinutesAndSeconds(timer), extendVoters.len() + "/" + extendThreshold + " have voted to extend map time", "extend" ) } } if(GetConVarBool("FSV_ENABLE_CHATUI")){ @@ -418,8 +420,13 @@ void function FSV_CommandCallback_Kick( entity player, array args) { } FSU_Print( targetName + " kicked by admin:" + player.GetPlayerName()) - ServerCommand("kick " + target.GetPlayerName()) - FSU_ChatBroadcast("%H"+player.GetPlayerName() + " %Nwas kicked by an admin.") + NSDisconnectPlayer(target, "You got kicked by admin") + FSU_ChatBroadcast("%H"+target.GetPlayerName() + " %Nwas kicked by an admin.") + if (targetUid in kickTable){ + if( playersWithActiveVotes.find( kickTable[targetUid].voters[0] ) > -1 ) + playersWithActiveVotes.remove( playersWithActiveVotes.find( kickTable[targetUid].voters[0] ) ) + delete kickTable[targetUid] + } return } @@ -477,12 +484,9 @@ void function FSV_CommandCallback_Kick( entity player, array args) { FSU_SaveArrayArrayToConVar("FSV_KICK_BLOCK", newKickedArray) } - ServerCommand("kick " + player.GetPlayerName()) + NSDisconnectPlayer(target, "You got kicked by vote") if( playersWithActiveVotes.find( kickInfo.voters[0] ) > -1 ) playersWithActiveVotes.remove( playersWithActiveVotes.find( kickInfo.voters[0] ) ) - if (targetUid in kickTable) { - delete kickTable[targetUid] - } } return } @@ -504,7 +508,7 @@ void function FSV_KickThread(string targetName, string targetUid){ } wait 1 foreach (entity player in GetPlayerArray()) { - if( player.GetUID() != targetUid){ + if(targetUid in kickTable && player.GetUID() != targetUid){ NSCreateStatusMessageOnPlayer( player, FSV_TimerToMinutesAndSeconds(timer), kickTable[targetUid].voters.len() + "/" + kickTable[targetUid].threshold + " have voted to kick " + targetName, "kick" + targetName ) } } @@ -517,7 +521,7 @@ void function FSV_KickThread(string targetName, string targetUid){ wait 5 // Timer and UI update loop - while(timer > 0 && kickTable[targetUid].voters.len() < kickTable[targetUid].threshold){ + while(targetUid in kickTable && timer > 0 && kickTable[targetUid].voters.len() < kickTable[targetUid].threshold){ if(timer == nextUpdate){ if(GetConVarBool("FSV_ENABLE_RUI")){ foreach (entity player in GetPlayerArray()) { @@ -537,41 +541,54 @@ void function FSV_KickThread(string targetName, string targetUid){ wait 1 } - // Announce results of vote - KickInfo kickInfo = kickTable[targetUid] - if(GetConVarBool("FSV_ENABLE_RUI")){ - if (kickInfo.voters.len() >= kickInfo.threshold){ - foreach ( entity player in GetPlayerArray() ){ - NSSendAnnouncementMessageToPlayer( player, targetName + " has been kicked", "", <1,0,0>, 0, 1 ) + if( targetUid in kickTable ){ + // Announce results of vote + KickInfo kickInfo = kickTable[targetUid] + if(GetConVarBool("FSV_ENABLE_RUI")){ + if (kickInfo.voters.len() >= kickInfo.threshold){ + foreach ( entity player in GetPlayerArray() ){ + NSSendAnnouncementMessageToPlayer( player, targetName + " has been kicked", "", <1,0,0>, 0, 1 ) + } + wait 1 + foreach (entity player in GetPlayerArray()) { + NSEditStatusMessageOnPlayer( player, "PASS", targetName + " has been kicked!", "kick" + targetName ) + } } - wait 1 - foreach (entity player in GetPlayerArray()) { - NSEditStatusMessageOnPlayer( player, "PASS", targetName + " has been kicked!", "kick" + targetName ) + else{ + foreach (entity player in GetPlayerArray()) { + if( player.GetUID() != targetUid ){ + NSEditStatusMessageOnPlayer( player, "FAIL", "Not enough votes to kick " + targetName + "!", "kick" + targetName ) + } + } } } - else{ + if (GetConVarBool("FSV_ENABLE_CHATUI") ){ + if (kickInfo.voters.len() >= kickInfo.threshold){ + FSU_ChatBroadcast("Final vote received! %H"+ targetName + " %Shas been kicked!") + } + else{ + FSU_ChatBroadcast("%EThe vote to kick "+ targetName +" has failed! %NNot enough votes to kick.") + } + } + }else{ + if(GetConVarBool("FSV_ENABLE_RUI")){ foreach (entity player in GetPlayerArray()) { if( player.GetUID() != targetUid ){ - NSEditStatusMessageOnPlayer( player, "FAIL", "Not enough votes to kick " + targetName + "!", "kick" + targetName ) + NSEditStatusMessageOnPlayer( player, "ADMN", "Admin kicked " + targetName + "!", "kick" + targetName ) } } } - } - if (GetConVarBool("FSV_ENABLE_CHATUI") ){ - if (kickInfo.voters.len() >= kickInfo.threshold){ - FSU_ChatBroadcast("Final vote received! %H"+ targetName + " %Shas been kicked!") - } - else{ - FSU_ChatBroadcast("%EThe vote to kick "+ targetName +" has failed! %NNot enough votes to kick.") + if (GetConVarBool("FSV_ENABLE_CHATUI") ){ + FSU_ChatBroadcast("%SAdmin has kicked %H"+ targetName +"%S!") } } // Reset everything if (targetUid in kickTable){ + if( playersWithActiveVotes.find( kickTable[targetUid].voters[0] ) > -1 ) + playersWithActiveVotes.remove( playersWithActiveVotes.find( kickTable[targetUid].voters[0] ) ) delete kickTable[targetUid] } - if( playersWithActiveVotes.find( kickInfo.voters[0] ) > -1 ) - playersWithActiveVotes.remove( playersWithActiveVotes.find( kickInfo.voters[0] ) ) wait 10 if(GetConVarBool("FSV_ENABLE_RUI")){ foreach ( entity player in GetPlayerArray() ){