mirror of
https://github.com/PHIDIAS0303/ExpCluster.git
synced 2025-12-27 03:25:23 +09:00
46 lines
1.7 KiB
Lua
46 lines
1.7 KiB
Lua
--- Disable new players from having certain items in their inventory, most commonly nukes
|
|
-- @addon Nukeprotect
|
|
|
|
local ExpUtil = require("modules/exp_util")
|
|
local Event = require("modules/exp_legacy/utils/event") --- @dep utils.event
|
|
local Roles = require("modules.exp_legacy.expcore.roles") --- @dep expcore.roles
|
|
local config = require("modules.exp_legacy.config.nukeprotect") --- @dep config.nukeprotect
|
|
|
|
--- Check all items in the given inventory
|
|
---@param player LuaPlayer
|
|
---@param type defines.inventory
|
|
local function check_items(player, type)
|
|
-- if the player has perms to be ignored, then they should be
|
|
if config.ignore_permisison and Roles.player_allowed(player, config.ignore_permisison) then return end
|
|
-- if the players
|
|
if config.ignore_admins and player.admin then return end
|
|
|
|
local items = {} --- @type LuaItemStack[]
|
|
local inventory = assert(player.get_inventory(type))
|
|
for i = 1, #inventory do
|
|
local item = inventory[i]
|
|
if item.valid and item.valid_for_read and config[tostring(type)][item.name] then
|
|
player.print{ "nukeprotect.found", { "item-name." .. item.name } }
|
|
items[#items + 1] = item
|
|
end
|
|
end
|
|
|
|
ExpUtil.move_items_to_surface{
|
|
items = items,
|
|
surface = game.planets.nauvis.surface,
|
|
allow_creation = true,
|
|
name = "steel-chest",
|
|
}
|
|
end
|
|
|
|
for _, inventory in ipairs(config.inventories) do
|
|
if #inventory.items > 0 then
|
|
Event.add(inventory.event, function(event)
|
|
local player = game.players[event.player_index]
|
|
if player and player.valid then
|
|
check_items(player, inventory.inventory)
|
|
end
|
|
end)
|
|
end
|
|
end
|