diff --git a/antigrief.lua b/antigrief.lua index de2aa6aa..a17f74b4 100644 --- a/antigrief.lua +++ b/antigrief.lua @@ -4,10 +4,12 @@ local Event = require 'utils.event' local session = require 'utils.session_data' -local Server = require 'utils.server' local Global = require 'utils.global' +local Utils = require 'utils.core' +local Server = require 'utils.server' local Public = {} +local match = string.match local this = { landfill_history = { @@ -50,7 +52,8 @@ local ammo_names = { ['cluster-grenade'] = true, ['grenade'] = true, ['atomic-bomb'] = true, - ['cliff-explosives'] = true + ['cliff-explosives'] = true, + ['rocket'] = true } Global.register( @@ -60,6 +63,24 @@ Global.register( end ) +local function damage_player(player) + if player.character then + player.character.health = player.character.health - math.random(50, 100) + player.character.surface.create_entity({name = 'water-splash', position = player.position}) + local messages = { + 'Ouch.. That hurt! Better be careful now.', + 'Just a fleshwound.', + 'Better keep those hands to yourself or you might loose them.' + } + player.print(messages[math.random(1, #messages)], {r = 0.75, g = 0.0, b = 0.0}) + if player.character.health <= 0 then + player.character.die('enemy') + game.print(player.name .. ' should have obeyed the law.', {r = 0.75, g = 0.0, b = 0.0}) + return + end + end +end + local function on_marked_for_deconstruction(event) local tracker = session.get_session_table() local trusted = session.get_trusted_table() @@ -102,19 +123,19 @@ local function on_player_ammo_inventory_changed(event) if playtime < 1296000 then local nukes = player.remove_item({name = 'atomic-bomb', count = 1000}) if nukes > 0 then - player.print('You have not grown accustomed to this technology yet.', {r = 0.22, g = 0.99, b = 0.99}) - Server.to_discord_bold( - table.concat {'** [Nuke] ' .. player.name .. ' tried to equip nukes but was not trusted. **'} - ) - game.print( - '[Nuke] ' .. player.name .. ' tried to equip nukes but was not trusted.', - {r = 0.22, g = 0.99, b = 0.99} - ) - player.character.health = 0 + Utils.action_warning('{Nuke}', player.name .. ' tried to equip nukes but was not trusted.') + damage_player(player) end end end +local function on_player_joined_game(event) + local player = game.players[event.player_index] + if match(player.name, '^[Ili1|]+$') then + Server.ban_sync(player.name, '', '