mirror of
https://github.com/PHIDIAS0303/ExpCluster.git
synced 2025-12-28 20:05:22 +09:00
Added report-control
This commit is contained in:
@@ -5,7 +5,11 @@ local move_items = ext_require('expcore.common','move_items')
|
||||
|
||||
local Public = {
|
||||
old_roles = {},
|
||||
temp_bans = {}
|
||||
temp_bans = {},
|
||||
player_jailed=script.generate_event_name(),
|
||||
player_unjailed=script.generate_event_name(),
|
||||
player_temp_banned=script.generate_event_name(),
|
||||
player_clear_temp_ban=script.generate_event_name()
|
||||
}
|
||||
Global.register({
|
||||
Public.old_roles,
|
||||
@@ -15,6 +19,16 @@ Global.register({
|
||||
Public.temp_bans=tbl[2]
|
||||
end)
|
||||
|
||||
local function event_emit(event,player,by_player_name,reason)
|
||||
script.raise_event(event,{
|
||||
name=event,
|
||||
tick=game.tick,
|
||||
player_index=player.index,
|
||||
by_player_name=by_player_name,
|
||||
reason=reason
|
||||
})
|
||||
end
|
||||
|
||||
--- Jails a player, this is only the logic there is no output to players
|
||||
-- @tparam player LuaPlayer the player that will be jailed, must not be in jail
|
||||
-- @tparam[opt='<server>'] by_player_name string the name of the player doing the action used in logs
|
||||
@@ -27,6 +41,7 @@ function Public.jail_player(player,by_player_name)
|
||||
Public.old_roles[player.name] = old_roles
|
||||
Roles.unassign_player(player,old_roles,by_player_name,true)
|
||||
Roles.assign_player(player,'Jail',by_player_name,true)
|
||||
event_emit(Public.player_jailed,player,by_player_name)
|
||||
return #old_roles
|
||||
end
|
||||
|
||||
@@ -41,6 +56,7 @@ function Public.unjail_player(player,by_player_name)
|
||||
local old_roles = Public.old_roles[player.name]
|
||||
Roles.unassign_player(player,'Jail',by_player_name,true)
|
||||
Roles.assign_player(player,old_roles,by_player_name,true)
|
||||
event_emit(Public.player_unjailed,player,by_player_name)
|
||||
return #old_roles
|
||||
end
|
||||
|
||||
@@ -59,6 +75,7 @@ function Public.temp_ban_player(player,by_player_name,reason)
|
||||
local inv = player.get_main_inventory()
|
||||
move_items(inv.get_contents())
|
||||
inv.clear()
|
||||
event_emit(Public.player_temp_banned,player,by_player_name,reason)
|
||||
return true
|
||||
end
|
||||
|
||||
@@ -72,6 +89,7 @@ function Public.clear_temp_ban_player(player,by_player_name)
|
||||
if not Public.temp_bans[player.name] then return end
|
||||
Public.unjail_player(player,by_player_name)
|
||||
Public.temp_bans[player.name] = nil
|
||||
event_emit(Public.player_clear_temp_ban,player,by_player_name)
|
||||
return true
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user