BanPlayer: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
mNo edit summary
(Replace to predefined variables.)
 
(41 intermediate revisions by 25 users not shown)
Line 1: Line 1:
{{note| Don't forget to give admin rights to the resource, in which you are using banPlayer function or it won't work.}}
__NOTOC__  
__NOTOC__  
This function will ban the specified player from the server.
{{Server function}}
{{New feature|3|1.0|
This function will ban the specified player by either IP, [[serial]] or username
}}
 
{{Deprecated_feature|3|1.0|
This function will ban the specified player from the server by IP.
}}


==Syntax==  
==Syntax==  
{{New feature|3|1.0|
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
bool banPlayer ( player bannedPlayer , [ player responsiblePlayer , string reason ] )        
ban banPlayer ( player bannedPlayer, [ bool IP = true, bool Username = false, bool Serial = false, player/string responsiblePlayer = nil, string reason = nil, int seconds = 0 ] )
</syntaxhighlight>  
</syntaxhighlight>
}}


{{Deprecated_feature|3|1.0|
<syntaxhighlight lang="lua">
bool banPlayer ( player bannedPlayer , [ element responsibleElement, string reason ] )       
</syntaxhighlight>
}}
{{OOP||[[player]]:ban||}}
===Required Arguments===  
===Required Arguments===  
*'''bannedPlayer:''' The player that will be banned from the server
*'''bannedPlayer:''' The player that will be banned from the server.


===Optional Arguments===  
===Optional Arguments===  
{{OptionalArg}}  
{{OptionalArg}}  
*'''responsiblePlayer:''' The player that is responsible the event
{{New feature|3|1.0|
*'''reason:''' The reason the player will be banned from the server
*'''IP:''' Will player be banned by IP?
*'''Username:''' Will player be banned by [http://community.mtasa.com/ MTA Community] username (obsolete, set to ''false'')?
*'''Serial:''' Will player be banned by serial?
}}
*'''responsibleElement:''' The element that is responsible for banning the player. This can be a player or the root ([[getRootElement]]()) (Maximum 30 characters if using a string).
*'''reason:''' The reason the player will be banned from the server.
*'''seconds:''' The amount of seconds the player will be banned from the server for. This can be 0 for an infinite amount of time.


===Returns===
===Returns===
Returns ''true'' if the player was banned succesfully, ''false'' if invalid arguments are specified.
Returns a [[ban]] object if banned successfully, or ''false'' if unsuccessful.


==Example==
==Example==
This example lets a player ban anyone who has a lower level.
This example lets a player ban anyone if he has ACL rights.
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
--Add the "ban" command handler
--Add the "ban" command handler
addCommandHandler ( "ban", "banPlayer" )
-- Example with the player
function banPlayer ( player, commandname, bannedname, reason )
function banPlayerCommand ( theClient, commandName, bannedName, reason )
--Get player element from the name
 
local banned = getPlayerFromNick ( bannedname )
-- Give the player a nice error if he doesn't have rights
--If the client who sent the command has a higher level
if ( hasObjectPermissionTo ( theClient, "function.banPlayer" ) ) then
if getClientLevel ( player ) > getClientLevel ( banned ) then
--Get player element from the name
local bannedPlayer = getPlayerFromName ( bannedName )
 
--Ban the player
--Ban the player
banPlayer ( banned, player, reason )
banPlayer ( bannedPlayer, theClient, reason )
outputChatBox ( "ban: " .. bannedName .. " successfully banned", theClient )
 
else
outputChatBox ( "ban: You don't have enough permissions", theClient )
end
end
end
addCommandHandler ( "ban", banPlayerCommand )
-- Example function with the root element. Here you would pass a player element to the function.
function banCheater(theCheater)
banPlayer(theCheater, root, "You are banned because of cheating.")
end
end
</syntaxhighlight>
This example is Firewall Account Player by serial on Login
<syntaxhighlight lang="lua">
Firewall =
{
    [ 'AccountName' ] = 'SerialPlayer',
    [ '3ash8' ] = '9C9F3B55D9D7BB7135FF274D3BF444E4',
    [ 'test5' ] = '1D6F76CF8D7193792D13789849498452',
}
addEventHandler ( 'onPlayerLogin', root,
    function ( _, theCurrentAccount )
    local Serial = Firewall[getAccountName(theCurrentAccount)]
        if ( Serial ) then
            if Serial ~= getPlayerSerial ( source ) then
                banPlayer ( source, false, false, true, root, 'reason ban' )
            end
        end
    end
)
</syntaxhighlight>
</syntaxhighlight>


==See Also==
==See Also==
{{Admin_functions}}
{{Admin_functions}}
[[es:banPlayer]]
[[ru:BanPlayer]]

Latest revision as of 09:37, 4 June 2023

[[{{{image}}}|link=|]] Note: Don't forget to give admin rights to the resource, in which you are using banPlayer function or it won't work.

This function will ban the specified player by either IP, serial or username

Syntax

ban banPlayer ( player bannedPlayer, [ bool IP = true, bool Username = false, bool Serial = false, player/string responsiblePlayer = nil, string reason = nil, int seconds = 0 ] )

OOP Syntax Help! I don't understand this!

Method: player:ban(...)


Required Arguments

  • bannedPlayer: The player that will be banned from the server.

Optional Arguments

NOTE: When using optional arguments, you might need to supply all arguments before the one you wish to use. For more information on optional arguments, see optional arguments.

  • IP: Will player be banned by IP?
  • Username: Will player be banned by MTA Community username (obsolete, set to false)?
  • Serial: Will player be banned by serial?
  • responsibleElement: The element that is responsible for banning the player. This can be a player or the root (getRootElement()) (Maximum 30 characters if using a string).
  • reason: The reason the player will be banned from the server.
  • seconds: The amount of seconds the player will be banned from the server for. This can be 0 for an infinite amount of time.

Returns

Returns a ban object if banned successfully, or false if unsuccessful.

Example

This example lets a player ban anyone if he has ACL rights.

--Add the "ban" command handler
-- Example with the player
function banPlayerCommand ( theClient, commandName, bannedName, reason )

	-- Give the player a nice error if he doesn't have rights
	if ( hasObjectPermissionTo ( theClient, "function.banPlayer" ) ) then
		--Get player element from the name
		local bannedPlayer = getPlayerFromName ( bannedName )

		--Ban the player
		banPlayer ( bannedPlayer, theClient, reason )
		outputChatBox ( "ban: " .. bannedName .. " successfully banned", theClient )

	else
		outputChatBox ( "ban: You don't have enough permissions", theClient )
	end

end
addCommandHandler ( "ban", banPlayerCommand )

-- Example function with the root element. Here you would pass a player element to the function.
function banCheater(theCheater)
	banPlayer(theCheater, root, "You are banned because of cheating.")
end


This example is Firewall Account Player by serial on Login

Firewall = 
{
    [ 'AccountName' ] = 'SerialPlayer',
    [ '3ash8' ] = '9C9F3B55D9D7BB7135FF274D3BF444E4',
    [ 'test5' ] = '1D6F76CF8D7193792D13789849498452',
}
 
addEventHandler ( 'onPlayerLogin', root,
    function ( _, theCurrentAccount )
    local Serial = Firewall[getAccountName(theCurrentAccount)]
        if ( Serial ) then
            if Serial ~= getPlayerSerial ( source ) then
                banPlayer ( source, false, false, true, root, 'reason ban' )
            end
        end
    end
)

See Also