1
0
Fork 0
forked from threeoh6000/joltik
This repository has been archived on 2024-08-05. You can view files and clone it, but cannot push or open issues or pull requests.
sako-counter/bot.lua

102 lines
5 KiB
Lua
Raw Normal View History

2022-11-03 18:55:00 +00:00
local discordia = require('discordia')
local client = discordia.Client()
2022-11-03 20:15:23 +00:00
local http = require("simple-http")
local json = require('json')
local prefix = "."
2022-11-03 21:08:59 +00:00
math.randomseed(os.time())
2022-11-03 20:15:23 +00:00
--- https://stackoverflow.com/a/22843701
string.startswith = function(self, str)
return self:find('^' .. str) ~= nil
end
2022-11-03 18:55:00 +00:00
2022-11-03 21:08:59 +00:00
function getnick(str, guild)
local b = str:gsub("<@",""):gsub(">","")
local user = guild:getMember(b)
if user.nickname == nil then
return user.name
else
return user.nickname
end
end
2022-11-03 18:55:00 +00:00
client:on('ready', function()
print('Logged in as '.. client.user.username)
end)
client:on('messageCreate', function(message)
2022-11-03 20:15:23 +00:00
if message.content == prefix .. 'ping' then
message.channel:send({embed = {title = "Ping?",description = "Pong!",color = 0x00FFFF}})
end
if message.content:startswith(prefix .. 'hug <@') then
2022-11-03 21:08:59 +00:00
local action = "hug"
local actioner = " hugged "
local body, res = http.request("GET", "https://nekos.life/api/v2/img/" .. action)
message.channel:send({embed = {title = "Aww! " .. getnick(message.author.id, message.guild) .. actioner .. getnick(message.content:gsub(prefix .. action .. ' ', ''), message.guild) .. "!",color = 0x00FFFF, image = {url = body.url, height = 0, width = 0}}})
2022-11-03 20:15:23 +00:00
end
if message.content:startswith(prefix .. 'cuddle <@') then
2022-11-03 21:08:59 +00:00
local action = "cuddle"
local actioner = " cuddled "
local body, res = http.request("GET", "https://nekos.life/api/v2/img/" .. action)
message.channel:send({embed = {title = "Aww! " .. getnick(message.author.id, message.guild) .. actioner .. getnick(message.content:gsub(prefix .. action .. ' ', ''), message.guild) .. "!",color = 0x00FFFF, image = {url = body.url, height = 0, width = 0}}})
2022-11-03 20:15:23 +00:00
end
if message.content:startswith(prefix .. 'kiss <@') then
2022-11-03 21:08:59 +00:00
local action = "kiss"
local actioner = " kissed "
local body, res = http.request("GET", "https://nekos.life/api/v2/img/" .. action)
message.channel:send({embed = {title = "Aww! " .. getnick(message.author.id, message.guild) .. actioner .. getnick(message.content:gsub(prefix .. action .. ' ', ''), message.guild) .. "!",color = 0x00FFFF, image = {url = body.url, height = 0, width = 0}}})
2022-11-03 20:15:23 +00:00
end
if message.content:startswith(prefix .. 'slap <@') then
2022-11-03 21:08:59 +00:00
local action = "slap"
local actioner = " slapped "
local body, res = http.request("GET", "https://nekos.life/api/v2/img/" .. action)
message.channel:send({embed = {title = "Woah! " .. getnick(message.author.id, message.guild) .. actioner .. getnick(message.content:gsub(prefix .. action .. ' ', ''), message.guild) .. "!",color = 0x00FFFF, image = {url = body.url, height = 0, width = 0}}})
2022-11-03 20:15:23 +00:00
end
if message.content:startswith(prefix .. 'pat <@') then
2022-11-03 21:08:59 +00:00
local action = "pat"
local actioner = " patted "
local body, res = http.request("GET", "https://nekos.life/api/v2/img/" .. action)
message.channel:send({embed = {title = "Aww! " .. getnick(message.author.id, message.guild) .. actioner .. getnick(message.content:gsub(prefix .. action .. ' ', ''), message.guild) .. "!",color = 0x00FFFF, image = {url = body.url, height = 0, width = 0}}})
end
if message.content:startswith(prefix .. '8ball') then
local array = {"As I see it, yes.", "Ask again later.", "Better not tell you now.", "Cannot predict now.", "Concentrate and ask again.","Dont count on it.", "It is certain.", "It is decidedly so.", "Most likely.", "My reply is no.", "My sources say no.","Outlook not so good.", "Outlook good.", "Reply hazy, try again.", "Signs point to yes.", "Very doubtful.", "Without a doubt.","Yes.", "Yes definitely.", "You may rely on it."}
local r = math.random(1,20)
if message.content:gsub(prefix..'8ball','') == "" or message.content:gsub(prefix..'8ball','') == " " then
message.channel:send("The 8-ball requires a question!")
else
message.channel:send("**" .. getnick(message.author.id,message.guild).. "** has asked the magic 8-ball: **"..message.content:gsub(prefix..'8ball ','').."**\n\nThe magic 8-ball replies: **"..array[r].."**")
end
end
if message.content == prefix .. 'hug' then
message.channel:send("You gotta hug someone!")
end
if message.content == prefix .. 'cuddle' then
message.channel:send("You gotta cuddle someone!")
end
if message.content == prefix .. 'slap' then
message.channel:send("You gotta slap someone!")
end
if message.content == prefix .. 'kiss' then
message.channel:send("You gotta kiss someone!")
end
if message.content == prefix .. 'pat' then
message.channel:send("You gotta pat someone!")
2022-11-03 20:15:23 +00:00
end
if message.content == prefix .. 'help' then
2022-11-03 21:08:59 +00:00
message.channel:send("**Need help? Refer to my handy dandy help sheet!**\n\n```diff\n+ Action\nhug kiss pat cuddle slap\n\n+ Fun\n8ball\n\n+ Info\nping help\n```")
2022-11-03 20:15:23 +00:00
end
if message.content == prefix .. 'shutdown' then
if message.author.id == "867901290336223242" then
message.channel:send("**Shutting down!** Good night mother! :heart:")
client:stop()
else
message.channel:send("You aren't my mother!")
end
2022-11-03 18:55:00 +00:00
end
end)
local f = io.open("token.txt", "r")
local token = f:read("*a")
f:close()
client:run('Bot ' .. token:gsub("\n",""))