Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --[[I don't use my bot anymore, so I just decided to release it. Even a skid can edit it lmao (I made it that easy) and I know my codes ugly. Bully it if you wish
- Dependencies:
- https://luvit.io/install.html
- https://github.com/SinisterRectus/Discordia
- If you need help:
- Cy#5148
- ]]
- local Discordia = require'discordia'
- local Client = Discordia.Client{
- cacheAllMembers = true;
- }
- local Enums = Discordia.enums
- local GuildId = "" -- your guild Id
- local WelcomeChannelId = "" -- where you want the bot to message the leave/join
- local RoleId = "" -- the role id you want to give to people when they join
- local BotOwnerUserId = "" -- Your UserId
- local BotToken = "" -- the bot token (needed to login to the bot so it can actually function)
- local Tries = 5
- local Playing = false
- local Min,Max = nil
- local RandomNumber = nil
- local Cmds = {}
- local BallTable = {"Yes.","No.","Maybe.","I can't answer right now."}
- local RpsTable = {"Rock","Paper","scissors"}
- Discordia.extensions()
- math.randomseed(os.time() / os.time() * os.time())
- Client:on('ready',function()
- Client:setGame("Type 'Help' for help. Bot Rewrite!")
- end)
- Client:on('memberJoin',function(Member)
- if Member.guild.id == GuildId then
- Client:getChannel(WelcomeChannelId):send{embed = {author = {name = "Bot";url = "https://pastebin.com/M0VxVNYF";icon_url = Member.avatarURL;};fields = {{name = Member.name.."#"..Member.discriminator;value = "Welcome <@"..Member.id..">";inline = false;}}};color = Discordia.Color.fromRGB(139,0,0).value;timestamp = os.date('!%Y-%m-%dT%H:%M:%S');footer = {text = "Made by Cy#5148"};};
- Member:addRole(RoleId)
- end
- end)
- Client:on('memberLeave',function(Member)
- if Member.guild.id == GuildId then
- Client:getChannel(WelcomeChannelId):send{embed = {author = {name = "Bot";url = "https://pastebin.com/M0VxVNYF";icon_url = Member.avatarURL;};fields = {{name = Member.name.."#"..Member.discriminator;value = "has left.";inline = false;}};color = Discordia.Color.fromRGB(139,0,0).value;timestamp = os.date('!%Y-%m-%dT%H:%M:%S');footer = {text = "Made by Cy#5148"};};};
- end
- end)
- local function RunCmd(Msg,Member)
- local CommandName
- local NewCommandName
- local Arguments = {}
- local Content = Msg.content:lower()
- local NewMsg = string.match(Content,"")
- if NewMsg then
- Content = string.gsub(Content,""..NewMsg,"",1)
- for Arguments2 in string.gmatch(Content,"[^%s]+") do
- table.insert(Arguments,Arguments2)
- end
- CommandName = Arguments[1]
- table.remove(Arguments,1)
- NewCommandName = Cmds[CommandName]
- if NewCommandName then
- NewCommandName(Arguments,Member,Msg)
- end
- end
- end
- Client:on('messageCreate',function(Message)
- if Message.author == Client.user or Message.member.bot then return end
- RunCmd(Message,Message.author)
- local MemberId = Message.author.id
- local Content = Message.content:lower()
- if not Message.member:hasPermission(Message.content.channel,Enums.permission.administrator) and string.find(Content,'roblox') or string.find(Content,'fortnite') or string.find(Content,'raid this') then
- Message:reply("<@"..MemberId.."> You said a blacklisted word.")
- Message:delete()
- end
- if Message.embeds or Message.embed then
- if Message.member:hasPermission(Message.content.channel,Enums.permission.administrator) or string.find(Content,'https://') or string.find(Content,'http://') then return end
- Message:reply("<@"..MemberId.."> Self Bots are not allowed as they break ToS.")
- Message:delete()
- end
- if string.find(Content,"discord.gg/") and not Message.member:hasPermission(Message.content.channel,Enums.permission.administrator) then
- Message:reply("<@"..MemberId.."> Discord Links are not allowed.")
- Message:delete()
- end
- if tonumber(Content) and tonumber(Content) == RandomNumber and Playing then
- Message:reply('You were correct! Thanks for playing.')
- Playing = false
- Tries = 5
- elseif Playing and tonumber(Content) and tonumber(Content) ~= RandomNumber and tonumber(Content) < RandomNumber then
- Message:reply('The number you guessed was too low! try with different number!')
- Tries = Tries - 1
- elseif Playing and tonumber(Content) and tonumber(Content) ~= RandomNumber and tonumber(Content) > RandomNumber then
- Message:reply('The number you guessed was too high! Try with a different number!')
- Tries = Tries - 1
- end
- if Playing and Tries == 0 and tonumber(Content) then
- Message:reply('You ran out of tries. Your number was: '..RandomNumber)
- Playing = false
- Tries = 5
- end
- end)
- Cmds.say = function(Arguments,Member,Message)
- if Arguments[1] then
- local Chat = table.concat(Arguments, " ")
- Message:reply{
- embed = {
- author = {
- name = "Bot";
- url = "https://pastebin.com/M0VxVNYF";
- icon_url = "http://cyhost.x10.mx/Gallery/80cf2ec6a5.png";
- },
- fields = {
- {
- name = Message.author.name.." Says ";
- value = tostring(Chat);
- inline = true;
- }
- };
- color = Discordia.Color.fromRGB(139,0,0).value;
- timestamp = os.date('!%Y-%m-%dT%H:%M:%S');
- footer = {text = "Made by Cy#5148"};
- }
- }
- end
- end
- Cmds.help = function(Arguments,Member,Message)
- if Message.guild then
- Message:reply("<@"..Message.member.id.."> check your dms for the help you requested!")
- end
- Member:send{
- embed = {
- author = {
- name = "Bot";
- url = "https://pastebin.com/M0VxVNYF";
- icon_url = "http://cyhost.x10.mx/Gallery/80cf2ec6a5.png";
- };
- fields = {
- {name = "[ Game ] RandomNumber";value = "Picks a random number.";inline = false;};
- {name = "[ Game ] 8ball";value = "Tells you the answer to your question.";inline = false;};
- {name = "[ Game ] HowGay";value = "Tells you how gay you are (optional @person to say how gay they are)";inline = false;};
- {name = "[ Game ] Rps";value = "Game of Rock Paper Scissors";inline = false;};
- {name = "[ Mod+ ] Ban"; value = "ban @user";inline = false;};
- {name = "[ Mod+ ] Kick";value = "kick @user";inline = false;};
- {name = "[ Mod+ ] Unban";value = "kick @user";inline = false;};
- {name = "[ Misc ] Say";value = "Make the bot say something.";inline = false;};
- {name = "[ Misc ] Ping";value = "Returns the amount of Milliseconds that it took for the bot to respond.";inline = false;};
- {name = "[ Misc ] Enlarge";value = "Gives you the link of the emoji.";inline = false;};
- {name = "[ Misc ] ServerInfo";value = "Gives you the servers info!";inline = false;};
- {name = "[ Misc ] ServerIcon";value = "Gives you the server Icon";inline = false;};
- {name = "[ Misc ] Avatar";value = "Avatar Gives you the avatar URL of yourself or (optional @person gives you their avatar URL)";inline = false;};
- };
- color = Discordia.Color.fromRGB(139,0,0).value;
- timestamp = os.date('!%Y-%m-%dT%H:%M:%S');
- footer = {text = "Made by Cy#5148"};
- }
- }
- end
- Cmds.randomnumber = function(Arguments,Member,Message)
- Min,Max = math.random(1,50), math.random(51, 100)
- RandomNumber = math.random(Min,Max)
- Playing = true
- Message:reply("I'm thinking of a number between "..Min..' and '..Max)
- end
- Cmds.kick = function(Arguments,Member,Message)
- if Arguments[1] and Message.guild then
- if Arguments[2] then
- if Message.member:hasPermission(Message.content.channel,Enums.permission.kickMembers) or Message.member:hasPermission(Message.content,channel,Enums.permission.administrator) then
- for user in Message.mentionedUsers:iter() do
- local Kick = table.concat(Arguments, " ")
- Message:reply("<@"..user.id.."> has been kicked. For: "..Kick:sub(23))
- user:send("You were kicked from: "..Message.member.guild.name.." For: "..Kick:sub(23))
- Message.guild:kickUser(user,Kick:sub(23))
- end
- end
- elseif Message.member:hasPermission(Message.content.channel,Enums.permission.kickMembers) or Message.member:hasPermission(Message.content,channel,Enums.permission.administrator) and not Arguments[2] then
- for user in Message.mentionedUsers:iter() do
- Message:reply("<@"..user.id.."> has been kicked. For: Unspecified.")
- user:send("You were kicked from: "..Message.member.guild.name.." For: Unspecified.")
- Message.guild:kickUser(user,"Unspecified")
- end
- end
- end
- end
- Cmds.ban = function(Arguments,Member,Message)
- if Arguments[1] and Message.guild then
- if Arguments[2] then
- if Message.member:hasPermission(Message.content.channel,Enums.permission.banMembers) or Message.member:hasPermission(Message.content,channel,Enums.permission.administrator) then
- for user in Message.mentionedUsers:iter() do
- local Ban = table.concat(Arguments, " ")
- Message:reply("<@"..user.id.."> has been banned. For: "..Ban:sub(23))
- Message.guild:banUser(user,Ban:sub(23))
- user:send("You were banned from: "..Message.member.guild.name.." For: "..Ban:sub(23))
- end
- end
- elseif Message.member:hasPermission(Message.content.channel,Enums.permission.banMembers) or Message.member:hasPermission(Message.content,channel,Enums.permission.administrator) and not Arguments[2] then
- for user in Message.mentionedUsers:iter() do
- Message:reply("<@"..user.id.."> has been banned. For: Unspecified.")
- Message.guild:banUser(user,"Unspecified")
- user:send("You were banned from: "..Message.member.guild.name.." For: Unspecified.")
- end
- end
- end
- end
- Cmds.unban = function(Arguments,Member,Message)
- if Arguments[1] and Message.guild then
- if Message.member:hasPermission(Message.channel,Enums.permission.banMembers) or Message.member:hasPermission(Message.channel,Enums.permission.administrator) then
- local Unban = table.concat(Arguments, " ")
- Message:reply("<@"..Unban.."> has been unbanned.")
- Message.member.guild:unbanUser(Unban)
- end
- end
- end
- Cmds.howgay = function(Arguments,Member,Message)
- if Arguments[1] then
- for user in Message.mentionedUsers:iter() do
- Message:reply("<@"..user.id.."> is "..math.random(0,100).."% homosexual.")
- end
- else
- Message:reply("You are "..math.random(0,100).."% homosexual.")
- end
- end
- Cmds.stopbot = function(Arguments,Member,Message)
- if Message.member.id == BotOwnerUserId then
- Client:stop()
- else
- Message:reply("<@"..Message.member.id.."> Only <@"..BotOwnerUserId.."> can use this command.")
- end
- end
- Cmds["8ball"] = function(Arguments,Member,Message)
- Message:reply(BallTable[math.random(1,#BallTable)])
- end
- Cmds.ping = function(Arguments,Member,Message)
- local Tick = os.clock()
- Message:reply("Pong! It took "..tostring(os.clock() - Tick):sub(1,6).."ms to return this message.")
- end
- Cmds.rps = function(Arguments,Member,Message)
- if Arguments[1] then
- local UserAnswer
- local RpsbotAnswer = RpsTable[math.random(1,#RpsTable)]
- if tostring(string.lower(Arguments[1])) == "rock" then
- UserAnswer = "Rock"
- Message:reply{
- embed = {
- author = {
- name = "Bot";
- url = "https://pastebin.com/M0VxVNYF";
- icon_url = "http://cyhost.x10.mx/Gallery/80cf2ec6a5.png";
- };
- fields = {
- {name = Message.author.name..", Your Answer was "..UserAnswer;value = "The Bots Answer was "..RpsbotAnswer;inline = false;}
- }
- }
- }
- elseif tostring(string.lower(Arguments[1])) == "paper" then
- UserAnswer = "Paper"
- Message:reply{
- embed = {
- author = {
- name = "Bot";
- url = "https://pastebin.com/M0VxVNYF";
- icon_url = "http://cyhost.x10.mx/Gallery/80cf2ec6a5.png";
- };
- fields = {
- {name = Message.author.name..", Your Answer was "..UserAnswer;value = "The Bots Answer was "..RpsbotAnswer;inline = false;}
- }
- }
- }
- elseif tostring(string.lower(Arguments[1])) == "scissors" then
- UserAnswer = "Scissors"
- Message:reply{
- embed = {
- author = {
- name = "Bot";
- url = "https://pastebin.com/M0VxVNYF";
- icon_url = "http://cyhost.x10.mx/Gallery/80cf2ec6a5.png";
- };
- fields = {
- {name = Message.author.name..", Your Answer was "..UserAnswer;value = "The Bots Answer was "..RpsbotAnswer;inline = false;}
- }
- }
- }
- end
- end
- end
- Cmds.enlarge = function(Arguments,Member,Message)
- if Arguments[1] then
- if not tostring(Arguments[1]).animated then
- Message:reply("https://cdn.discordapp.com/emojis/"..tostring(Arguments[1]:match"%d+")..".png")
- else
- Message:reply("https://cdn.discordapp.com/emojis/"..tostring(Arguments[1]:match"%d+")..".gif")
- end
- end
- end
- Cmds.serverinfo = function(Arguments,Member,Message)
- if not Message.guild then return Message:reply'Trying to break the bot? Nope!' end
- local VoiceChannels
- local TextChannels
- local Categories
- local Emojis
- local RoleAmount
- local BotAmount
- local BotTable = {}
- local Normies = {}
- local Humans
- local CreatedAt = Message.guild.createdAt
- local Date = os.date("*t", CreatedAt)
- local Online
- for i,v in pairs(Message.guild.members) do
- if v.bot then
- table.insert(BotTable,v)
- else
- table.insert(Normies,v)
- end
- end
- for i = 1,#Message.guild.emojis do
- Emojis = i
- end
- for i = 1,#Message.guild.voiceChannels do
- VoiceChannels = i
- end
- for i = 1,#Message.guild.categories do
- Categories = i
- end
- for i = 1,#Message.guild.textChannels do
- TextChannels = i
- end
- for i = 1,#Message.guild.roles do
- RoleAmount = i
- end
- for i = 1,#BotTable do
- BotAmount = i
- end
- for i = 1,#Normies do
- Normies = i
- end
- Message:reply{
- embed = {
- author = {name = Message.guild.name;url = "https://pastebin.com/3NABhEEw";icon_url = Message.guild.iconURL or "http://cyhost.x10.mx/Gallery/80cf2ec6a5.png";};
- fields = {
- {name = "Owner";value = Message.guild.owner.tag;inline = true;};
- {name = "Region";value = Message.guild.region;inline = true;};
- {name = "Channel Categories";value = Categories;inline = true;};
- {name = "Text Channels";value = TextChannels;inline = true;};
- {name = "Voice Channels";value = VoiceChannels;inline = true;};
- {name = "Members";value = Message.guild.totalMemberCount;inline = true;};
- {name = "People";value = Normies or 0;inline = true;};
- {name = "Bots";value = BotAmount or 0;inline = true;};
- {name = "Created At";value = Date.year.."-".."0"..Date.month.."-"..Date.day;inline = true;};
- {name = "Roles";value = RoleAmount;inline = true;};
- {name = "Emojis";value = Emojis or 0;inline = true;};
- {name = "Joined At";value = Message.member.joinedAt:sub(1,10);inline = true;};
- };
- color = Discordia.Color.fromRGB(139,0,0).value;
- footer = {text = "Made by Cy#5148 | Server Id "..Message.guild.id};
- };
- }
- end
- Cmds.servericon = function(Arguments,Member,Message)
- Message:reply("The server Icon is "..Message.guild.iconURL)
- end
- Cmds.avatar = function(Arguments,Member,Message)
- if Arguments[1] then
- for user in Message.mentionedUsers:iter() do
- Message:reply("<@"..user.id..">'s Avatar is "..user.avatarURL)
- end
- else
- Message:reply("Your Avatar is "..Member.avatarURL)
- Message:reply("Your Avatar is "..Member.avatarURL)
- end
- end
- Client:run(BotToken)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement