Files
factorio-scenario-ExpCluster/config/chat_reply.lua
badgamernl c2676d3bd6 Added ChatBot Async commands:
- makepopcorn
- passsomesnaps
- makecocktail
- makecoffee
- orderpizza
- maketea
- meadplease
- passabeer
2020-02-25 22:41:41 +01:00

118 lines
6.1 KiB
Lua

--- This file defines the different triggers for the chat bot
-- @config Chat-Reply
local Async = require 'expcore.async'
local format_time = ext_require('expcore.common','format_time') --- @dep expcore.common
local async_message = Async.register(function(player, message)
player.print(message)
end)
return {
allow_command_prefix_for_messages = true, --- @setting allow_command_prefix_for_messages when true any message trigger will print to all player when prefixed
messages = { --- @setting messages will trigger when ever the word is said
['discord']={'info.discord'},
['expgaming']={'info.website'},
['website']={'info.website'},
['wiki']={'info.wiki'},
['status']={'info.status'},
['github']={'info.github'},
['command']={'info.custom-commands'},
['commands']={'info.custom-commands'},
['softmod']={'info.softmod'},
['script']={'info.softmod'},
['loop']={'chat-bot.loops'},
['loops']={'chat-bot.loops'},
['rhd']={'info.lhd'},
['lhd']={'info.lhd'},
['roundabout']={'chat-bot.loops'},
['roundabouts']={'chat-bot.loops'},
['redmew']={'info.redmew'},
['afk']=function(player)
local max=player
for _,next_player in pairs(game.connected_players) do
if max.afk_time < next_player.afk_time then
max=next_player
end
end
return {'chat-bot.afk',max.name,format_time(max.afk_time,{minutes=true,seconds=true,long=true})}
end,
['players']=function()
return {'chat-bot.players',#game.players}
end,
['online']=function()
return {'chat-bot.players-online',#game.connected_players}
end,
['time']=function()
return {'chat-bot.map-time',format_time(game.tick,{days=true,hours=true,minutes=true,seconds=true,long=true})}
end,
},
command_admin_only = false, --- @setting command_admin_only when true will only allow chat commands for admins
command_permission = 'command/chat-bot', --- @setting command_permission the permission used to allow command prefixes
command_prefix = '!', --- @setting command_prefix prefix used for commands below and to print to all players (if enabled above)
commands = { --- @setting commands will trigger only when command prefix is given
['dev']={'chat-bot.not-real-dev'},
['blame']=function(player)
local names = {'Cooldude2606','arty714','badgamernl', 'mark9064', 'aldldl', 'Drahc_pro',player.name}
for _,next_player in pairs(game.connected_players) do
names[#names + 1] = next_player.name
end
return {'chat-bot.blame',table.get_random_dictionary_entry(names)}
end,
['magic']={'chat-bot.magic'},
['aids']={'chat-bot.aids'},
['riot']={'chat-bot.riot'},
['lenny']={'chat-bot.lenny'},
['hodor']=function()
local options = {'?','.','!','!!!'}
return {'chat-bot.hodor',table.get_random_dictionary_entry(options)}
end,
['evolution']=function()
return {'chat-bot.current-evolution',string.format('%.2f',game.forces['enemy'].evolution_factor)}
end,
['makepopcorn']=function(player)
local timeout = math.floor(180*(math.random()+0.5))
Async(async_message,player,{'chat-bot.reply',{'chat-bot.get-popcorn-1'}})
Async.wait(timeout,async_message,player,{'chat-bot.reply',{'chat-bot.get-popcorn-2',player.name}})
end,
['passsomesnaps']=function(player)
local timeout = math.floor(180*(math.random()+0.5))
Async(async_message,player,{'chat-bot.reply',{'chat-bot.get-snaps-1'}})
Async.wait(timeout,async_message,player,{'chat-bot.reply',{'chat-bot.get-snaps-2',player.name}})
Async.wait(timeout*(math.random()+0.5),async_message,player,{'chat-bot.reply',{'chat-bot.get-snaps-3',player.name}})
end,
['makecocktail']=function(player)
local timeout = math.floor(180*(math.random()+0.5))
Async(async_message,player,{'chat-bot.reply',{'chat-bot.get-cocktail-1'}})
Async.wait(timeout,async_message,player,{'chat-bot.reply',{'chat-bot.get-cocktail-2',player.name}})
Async.wait(timeout*(math.random()+0.5),async_message,player,{'chat-bot.reply',{'chat-bot.get-cocktail-3',player.name}})
end,
['makecoffee']=function(player)
local timeout = math.floor(180*(math.random()+0.5))
Async(async_message,player,{'chat-bot.reply',{'chat-bot.make-coffee-1'}})
Async.wait(timeout,async_message,player,{'chat-bot.reply',{'chat-bot.make-coffee-2',player.name}})
end,
['orderpizza']=function(player)
local timeout = math.floor(180*(math.random()+0.5))
Async(async_message,player,{'chat-bot.reply',{'chat-bot.order-pizza-1'}})
Async.wait(timeout,async_message,player,{'chat-bot.reply',{'chat-bot.order-pizza-2',player.name}})
Async.wait(timeout*(math.random()+0.5),async_message,player,{'chat-bot.reply',{'chat-bot.order-pizza-3',player.name}})
end,
['maketea']=function(player)
local timeout = math.floor(180*(math.random()+0.5))
Async(async_message,player,{'chat-bot.reply',{'chat-bot.make-tea-1'}})
Async.wait(timeout,async_message,player,{'chat-bot.reply',{'chat-bot.make-tea-2',player.name}})
end,
['meadplease']=function(player)
local timeout = math.floor(180*(math.random()+0.5))
Async(async_message,player,{'chat-bot.reply',{'chat-bot.get-mead-1'}})
Async.wait(timeout,async_message,player,{'chat-bot.reply',{'chat-bot.get-mead-2',player.name}})
end,
['passabeer']=function(player)
local timeout = math.floor(180*(math.random()+0.5))
Async(async_message,player,{'chat-bot.reply',{'chat-bot.get-beer-1'}})
Async.wait(timeout,async_message,player,{'chat-bot.reply',{'chat-bot.get-beer-2',player.name}})
end
}
}