Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import os
- import sys
- import time
- import shlex
- import shutil
- import inspect
- import aiohttp
- import discord
- import asyncio
- import traceback
- #import youtube_dl
- import json
- import random
- from discord import utils
- from discord.object import Object
- from discord.enums import ChannelType
- from discord.voice_client import VoiceClient
- from discord.ext.commands.bot import _get_variable
- from io import BytesIO
- from functools import wraps
- from textwrap import dedent
- from datetime import timedelta
- from random import choice, shuffle
- from collections import defaultdict
- prefix = '!'
- EPICFROG_EMOJI = "<:epicfrog:312012175822684160>"
- ytdl_format_options = {
- 'format': 'bestaudio/best',
- 'extractaudio': True,
- 'audioformat': 'mp3',
- 'outtmpl': '%(extractor)s-%(id)s-%(title)s.%(ext)s',
- 'restrictfilenames': True,
- 'noplaylist': True,
- 'nocheckcertificate': True,
- 'ignoreerrors': False,
- 'logtostderr': False,
- 'quiet': True,
- 'no_warnings': True,
- 'default_search': 'auto',
- 'source_address': '0.0.0.0'
- }
- client = discord.Client()
- @client.event
- async def on_ready():
- #with open("user_data.json") as json_file:
- # client.user_data = json.load(json_file)
- #youtube_dl.utils.bug_reports_message = lambda: ''
- print('Logged in as')
- print(client.user.name)
- print(client.user.id)
- print('------')
- print(client)
- chan = client.get_channel('222238144500596744')
- truechan=chan
- for log in client.logs_from(chan, limit=100):
- if log.content.startswith('brb hot pocket'):
- await client.delete_message(log)
- truechan=chan
- chan = client.get_channel('196125431278206976')
- async for log in client.logs_from(chan, limit=100):
- if log.content.startswith('brb hot pocket'):
- await client.delete_message(log)
- truechan=chan
- async for log in client.logs_from(truechan, limit=100):
- if log.content.startswith(prefix):
- #counter += 1
- await client.delete_message(log)
- if log.content.startswith('/who'):
- await client.delete_message(log)
- if log.content.startswith('/atwho'):
- await client.delete_message(log)
- if log.author == client.user:
- #counter += 1
- await client.delete_message(log)
- jointext = await client.send_message(truechan,'Beware! I live.')
- await asyncio.sleep(10)
- await client.delete_message(jointext)
- @client.event
- async def on_member_leave(member):
- if member.server.id != '110373943822540800':
- msg = await client.send_message(member.server.default_channel,'Goodbye '+member.name+'!')
- @client.event
- async def onserverjoin(self, server):
- print('JOINED SERVER: '+server.name)
- msg = await client.send_message(server.default_channel,'Thank you for inviting me to your server, '+server.owner.mention+'!')
- msg2 = await client.send_message(client.get_channel('333059895567843328'),'Connected to server: '+server.name+'')
- #print('Connected to server: '+server.name)
- for member in server.members:
- Getpoints(member)
- await asyncio.sleep(15)
- await client.delete_message(msg)
- @client.event
- async def on_member_join(member):
- if member.server.id != '110373943822540800':
- msg = await client.send_message(member.server.default_channel,'Welcome to the server, '+member.mention+'!')
- GetIDpoints(member.id)
- #await asyncio.sleep(15)
- msg = await client.send_message(client.get_channel('333059895567843328'),member.server.name+' | '+'member: '+member.name+' joined.')
- print(member.server.name+'|'+'MEMBER: '+member.name+' JOINED AT '+time.ctime())
- #await client.delete_message(msg)
- @client.event
- async def duelgame(channel, betamt, member, target):
- msg2 = await client.send_message(channel, target.mention+', '+member.mention+', duel accepted! When I send the message: \'FIRE!\', react with :gun: as fast as possible. Ready?')
- await asyncio.sleep(random.randint(5,15))
- msg3 = await client.send_message(channel, 'FIRE! '+member.mention+', '+target.mention)
- res2 = await client.wait_for_reaction(['\N{PISTOL}'], message=msg3)
- bettxt=""
- if betamt!=0:
- bettxt=" "+str(betamt*2)+" points"
- await client.delete_message(msg2)
- winner=0
- pool=betamt*2
- if res2.user.id == target.id:
- winner = 1
- Updatepoints(target.id, pool)
- Updatepoints(member.id,-1*betamt)
- if res2.user.id == member.id:
- winner = 2
- Updatepoints(member.id, pool)
- Updatepoints(target.id,-1*betamt)
- if res2.user.id !=target.id and res2.user.id!=member.id:
- winner = 3
- if winner==1 or winner==2:
- msg4 = await client.send_message(channel, res2.user.mention+' wins'+bettxt+'!')
- if winner==3:
- msg4 = await client.send_message(channel, member.mention+', '+target.mention+', a third party, '+res2.user.mention+', drew first. '+res2.user.name+' is the winner! No transactions were made.')
- @client.event
- async def openduel(channel,betamt, member):
- print ("openduel has been reached.")
- bettxt=""
- if betamt!=0:
- bettxt=" Bet value: "+str(betamt)+"."
- msg = await client.send_message(channel, 'OPEN DUEL: anyone, react with :gun: to start the duel.'+bettxt)
- res = await client.wait_for_reaction(['\N{PISTOL}'], message = msg)
- if res.user.id != member.id:
- if GetIDpoints(res.user.id)>=betamt:
- msg2 = await client.send_message(channel, member.mention+', your duel has been accepted by '+res.user.mention)
- await duelgame(channel,betamt,member,res.user)
- else:
- msg2 = await client.send_message(channel, res.user.mention+" doesn't have enough points ("+betamt+") to accept. "+member.mention+"'s duel has been canceled.")
- await asyncio.sleep(10)
- await client.delete_message(msg2)
- await client.delete_message(msg)
- else:
- msg2 = await client.send_message(channel, member.mention+" just tried to duel himself.")
- await asyncio.sleep(10)
- await client.delete_message(msg2)
- await client.delete_message(msg)
- return
- return
- @client.event
- async def consentduel(channel,betamt, member, target):
- print ("consentduel has been reached.")
- bettxt=""
- if betamt!=0:
- bettxt=" Bet value: "+str(betamt)+"."
- if target.id!=member.id:
- if GetIDpoints(target.id)>=betamt:
- msg2 = await client.send_message(channel, member.mention+', your duel has been accepted by '+target.mention+"."+bettxt)
- await duelgame(channel,betamt,member,target)
- else:
- msg2 = await client.send_message(channel, target.mention+" doesn't have enough points ("+betamt+") to accept. "+member.mention+"'s duel has been canceled.")
- await asyncio.sleep(10)
- await client.delete_message(msg2)
- await client.delete_message(msg)
- else:
- msg2 = await client.send_message(channel, member.mention+" just tried to duel himself.")
- await asyncio.sleep(10)
- await client.delete_message(msg2)
- await client.delete_message(msg)
- return
- return
- @client.event
- async def on_message(message):
- ampm = time.strftime('%p')
- chan = message.channel
- #print(message):gun:
- if message.content.startswith(prefix+'sendnude') or message.content.startswith(prefix+'sendnudes') or message.content.startswith(prefix+'link2k'):
- await client.send_message(message.channel,':mailbox_with_mail:')
- name=os.listdir("nudes/")[random.randint(0,len(os.listdir("nudes/"))-1)]
- await client.send_file(message.author,"nudes/"+name)
- if message.content.startswith(prefix+'duel'):
- betamt=0
- messagesplit=message.content.split(' ')
- messagelength=len(messagesplit)
- print (messagelength)
- if messagelength==1:
- await openduel(message.channel,betamt, message.author)
- elif messagelength==2:
- if messagesplit[1].isdigit():
- print("second var is digit")
- if int(messagesplit[1]) <= Getpoints(message.author) and int(messagesplit[1])>=0:
- print("has enough money to bet")
- betamt=int(messagesplit[1])
- await openduel(message.channel,betamt, message.author)
- else:
- msg1=await client.send_message(message.channel, message.author.mention+", you do not have enough points to make this duel.")
- await asyncio.sleep(10)
- client.delete_message(msg1)
- else:
- betamt=0
- targfound=0
- for mem in message.channel.server.members:
- if messagesplit[1]==str(mem.mention):
- print('target member found.')
- targfound=1
- msg = await client.send_message(message.channel, mem.mention+', react with :gun: to accept the duel.')
- res = await client.wait_for_reaction(['\N{PISTOL}'], message = msg)
- if res.user.id!=mem.id:
- msg2 = await client.send_message(message.channel, message.author.mention+', a third party has accepted your duel. Your duel has been canceled.')
- else:
- await consentduel(message.channel,betamt, message.author, mem)
- if targfound==0:
- print("target not found.")
- errormsg=await client.send_message(message.channel,message.author.mention+", user \'"+str(messagesplit[1])+"\' not found.")
- await asyncio.sleep(10)
- client.delete_message(errormsg)
- elif messagelength==3:
- betamt=0
- targfound=0
- for mem in message.channel.server.members:
- if messagesplit[1]==str(mem.mention):
- print('target member found.')
- targfound=1
- if messagesplit[2].isdigit():
- print("third var is digit")
- if int(messagesplit[2]) <= Getpoints(message.author) and int(messagesplit[2])>=0:
- print("has enough money to bet")
- betamt=int(messagesplit[2])
- worthtxt=""
- if betamt!=0:
- worthtxt=" worth "+str(betamt)+" points"
- msg = await client.send_message(message.channel, mem.mention+', react with :gun: to accept the duel'+worthtxt+'.')
- res = await client.wait_for_reaction(['\N{PISTOL}'], message = msg)
- if res.user.id!=mem.id:
- msg2 = await client.send_message(message.channel, message.author.mention+', a third party (or you) accepted your duel. Your duel has been canceled.')
- else:
- await consentduel(message.channel,betamt, message.author, mem)
- else:
- print("not enough money")
- errormsg = await client.send_message(message.channel, mem.mention+', you do not have enough money ('+betamt+') to bet. Your duel has been canceled')
- await asyncio.sleep(10)
- else:
- print("invalid number")
- errormsg=await client.send_message(message.channel,message.author.mention+", invalid number for the betting entry. Your duel has been canceled.")
- await asyncio.sleep(10)
- client.delete_message(errormsg)
- if targfound==0:
- print("target not found.")
- errormsg=await client.send_message(message.channel,message.author.mention+", user \'"+str(messagesplit[1])+"\' not found.")
- await asyncio.sleep(10)
- client.delete_message(errormsg)
- if message.content.startswith(prefix+'obsoleteduel'):
- messagesplit=message.content.split(' ')
- if len(messagesplit)>1 and messagesplit[1].isdigit==False:
- target = messagesplit[1]
- targfound=0
- targself=0
- for mem in message.channel.server.members:
- if str(mem.mention) == target:
- if mem == message.author:
- targself=1
- targfound=1
- targmember = mem
- if targfound==0:
- msg1 = await client.send_message(message.channel, 'Target not found.')
- await asyncio.sleep(20)
- await client.delete_message(msg1)
- if targfound==1 and targself==1:
- msg = await client.send_message(message.channel, message.author+', you can\'t duel yourself, idiot.')
- if targfound==1 and targself==0:
- bettxt=''
- betamt='0'
- if len(messagesplit) > 2:
- betamt = messagesplit[2]
- cashpool=0
- canbet=0
- if betamt!=''and betamt!='0':
- if betamt.isdigit:
- betamt=int(betamt)
- if betamt > 0:
- if betamt < Getpoints(message.author):
- if betamt < Getpoints(targmember):
- canbet=1
- else:
- errormsg=await client.send_message(message.channel, 'Target does not have enough points: duel canceled')
- else:
- errormsg=await client.send_message(message.channel, 'You do not have enough points: duel canceled')
- else:
- errormsg=await client.send_message(message.channel, 'Invalid bet amount: duel canceled')
- else:
- errormsg=await client.send_message(message.channel, 'bet is not a number: duel canceled')
- msg = await client.send_message(message.channel, targmember.mention+', react with :gun: to accept the duel.')
- res = await client.wait_for_reaction(['\N{PISTOL}'], message = msg)
- if res.user.id!=targmember.id:
- msg2 = await client.send_message(message.channel, message.author.mention+', a third party has accepted your duel. Your duel has been canceled.')
- else:
- if canbet==1:
- cashpool = int(betamt)*2
- bettxt=' '+str(cashpool)+' points'
- msg2 = await client.send_message(message.channel, targmember.mention+', '+message.author.mention+', duel accepted! When I send the message: \'FIRE!\', react with :gun: as fast as possible. Ready?')
- await asyncio.sleep(random.randint(5,15))
- msg3 = await client.send_message(message.channel, 'FIRE! '+message.author.mention+', '+targmember.mention)
- res2 = await client.wait_for_reaction(['\N{PISTOL}'], message=msg3)
- winner=0
- if res2.user.id == targmember.id:
- winner = 1
- Updatepoints(targmember.id, cashpool)
- Updatepoints(message.author.id,-1*int(betamt))
- if res2.user.id == message.author.id:
- winner = 2
- Updatepoints(message.author.id, cashpool)
- Updatepoints(targmember.id,-1*int(betamt))
- if res2.user.id !=targmember.id and res2.user.id!=message.author.id:
- winner = 3
- if winner==1 or winner==2:
- msg4 = await client.send_message(message.channel, res2.user.mention+res2.reaction.emoji+' wins'+bettxt+'!')
- if winner==3:
- msg4 = await client.send_message(message.channel, message.author.mention+', '+targmember.mention+', a third party, '+res2.user.mention+', drew first. '+res2.user.name+' is the winner!')
- await asyncio.sleep(30)
- await client.delete_message(msg)
- await client.delete_message(msg2)
- elif (len(messagesplit)<=2):
- cashpool=0
- canbet=0
- bettxt=''
- if len(messagesplit)<=2 and messagesplit[1].isdigit():
- betamt=messagesplit[1]
- betamt=int(betamt)
- if betamt > 0:
- if betamt < Getpoints(message.author):
- canbet=1
- cashpool=betamt*2
- bettxt=' '+str(cashpool)+' points'
- else:
- errormsg=await client.send_message(message.channel, 'You do not have enough points: duel canceled')
- else:
- errormsg=await client.send_message(message.channel, 'Invalid bet amount: duel canceled')
- msg = await client.send_message(message.channel, 'OPEN DUEL: anyone, react with :gun: to start the duel.')
- res = await client.wait_for_reaction(['\N{PISTOL}'], message = msg)
- targself=0
- for mem in message.channel.server.members:
- if mem.id == res.user.id:
- targmember = mem
- if targmember.id == message.author.id:
- targself=1
- if targself==1:
- msg2 = await client.send_message(message.channel, message.author.mention+', you can\'t duel yourself.')
- else:
- if betamt < Getpoints(targmember):
- canbet=1
- msg2 = await client.send_message(message.channel, targmember.mention+', '+message.author.mention+', duel accepted! When I send the message: \'FIRE!\', react with :gun: as fast as possible. Ready?')
- await asyncio.sleep(random.randint(5,15))
- msg3 = await client.send_message(message.channel,'FIRE! '+message.author.mention+', '+targmember.mention)
- res2 = await client.wait_for_reaction(['\N{PISTOL}'], message=msg3)
- winner=0
- if res2.user.id == targmember.id:
- winner = 1
- Updatepoints(targmember.id, cashpool)
- Updatepoints(message.author.id,-1*int(betamt))
- if res2.user.id == message.author.id:
- winner = 2
- Updatepoints(targmember.id, -1*int(betamt))
- Updatepoints(message.author.id,cashpool)
- if res2.user.id !=targmember.id and res2.user.id!=message.author.id:
- winner = 3
- if winner==1 or winner==2:
- msg4 = await client.send_message(message.channel, res2.user.mention+res2.reaction.emoji+' wins'+bettxt+'!')
- if winner==3:
- msg4 = await client.send_message(message.channel, message.author.mention+', '+targmember.mention+', a third party, '+res2.user.mention+', drew first. '+res2.user.name+' is the winner!')
- else:
- errormsg=await client.send_message(message.channel, 'Target does not have enough points: duel canceled')
- await asyncio.sleep(30)
- await client.delete_message(msg)
- await client.delete_message(msg2)
- if message.author.id !='311798043282505728' and message.channel.id != '333059895567843328' and message.channel.server.id != '110373943822540800':
- await client.send_message(client.get_channel('333059895567843328'),message.channel.server.name+'|'+message.channel.name+'|'+message.author.name+': '+message.content)
- #if message.content.startswith('!spiders'):
- # tmp = await client.send_message(message.channel, 'AAH')
- if message.author.id !='311798043282505728':
- print(message.channel.server.name+'|'+message.channel.name+'|'+message.author.name+': '+message.content)
- if message.content.startswith(prefix+'broadcast ') and message.author.id == '195698132644790281':
- cont=message.content.replace(prefix+'broadcast ','')
- msgs = []
- #for srv in client.servers:
- #srv.default_channel
- for srv in client.servers:
- msg = await client.send_message(srv.default_channel, '**BROADCAST FROM CHUPACHU:** '+cont)
- if message.content.startswith(prefix+'freepoints') and (message.channel.server.owner == message.author or message.author.id == '195698132644790281'):
- if message.content.replace(prefix+'freepoints','') != '':
- amt = message.content.replace(prefix+'freepoints ','')
- if amt.isdigit():
- numofpts = amt
- else:
- numofpts = random.randint(5,15)
- else:
- numofpts = random.randint(5,15)
- msg = await client.send_message(message.channel, 'React with :hamburger: to win '+str(numofpts)+' point(s)!')
- res = await client.wait_for_reaction(['\N{HAMBURGER}'], message=msg)
- winner = ('{0.user.id}'.format(res))
- GetIDpoints(winner)
- Updatepoints(winner,numofpts)
- msg2 = await client.send_message(message.channel, '{0.user.mention} reacted with {0.reaction.emoji}!'.format(res)+' You have earned '+str(numofpts)+' point(s)!')
- await client.delete_message(message)
- await client.delete_message(msg)
- await asyncio.sleep(20)
- await client.delete_message(msg2)
- if message.content.startswith('%p'):
- msg = await client.send_message(message.channel, ampm+'')
- if message.content.startswith(prefix+'creator'):
- if message.author.id == '195698132644790281':
- owner = message.author
- msg = await client.send_message(message.channel,'Ok, '+message.author.name+'.')
- await asyncio.sleep(5)
- await client.delete_message(msg)
- if message.author.id != '195698132644790281':
- if message.author.name == 'Wizcleavuh':
- msg = await client.send_message(message.channel,'owner is NOT '+message.author.name+'! DUMMY BOBBY DUMMY')
- else:
- msg = await client.send_message(message.channel,'owner is NOT '+message.author.name+'! DUMMY '+message.author.name+' DUMMY')
- await asyncio.sleep(5)
- await client.delete_message(msg)
- await asyncio.sleep(5)
- await client.delete_message(message)
- if message.content.startswith(prefix+'owner'):
- if message.author == message.channel.server.owner:
- owner = message.author
- msg = await client.send_message(message.channel,'Ok, '+message.author.name+'.')
- await asyncio.sleep(5)
- await client.delete_message(msg)
- else:
- if message.author.name == 'Wizcleavuh':
- msg = await client.send_message(message.channel,'owner is NOT '+message.author.name+'! DUMMY BOBBY DUMMY')
- else:
- msg = await client.send_message(message.channel,'owner is NOT '+message.author.name+'! DUMMY '+message.author.name+' DUMMY')
- await asyncio.sleep(5)
- await client.delete_message(msg)
- await asyncio.sleep(5)
- await client.delete_message(message)
- #elif message.content.startswith('!play'):
- #self.emit('play', player=self, entry=entry)
- elif message.content.startswith(prefix+'blockmode'):
- x=0
- newstring = ''
- blocktext = message.content.replace(prefix+'blockmode ','')
- for x in range(0, len(blocktext)):
- if blocktext[x] == 'a' or blocktext[x] == 'b'or blocktext[x] == 'c'or blocktext[x] == 'd'or blocktext[x] == 'e'or blocktext[x] == 'f'or blocktext[x] == 'g'or blocktext[x] == 'h'or blocktext[x] == 'i'or blocktext[x] == 'j'or blocktext[x] == 'k'or blocktext[x] == 'l'or blocktext[x] == 'm'or blocktext[x] == 'n'or blocktext[x] == 'o'or blocktext[x] == 'p'or blocktext[x] == 'q'or blocktext[x] == 'r'or blocktext[x] == 's'or blocktext[x] == 't'or blocktext[x] == 'u'or blocktext[x] == 'v'or blocktext[x] == 'w'or blocktext[x] == 'x'or blocktext[x] == 'y'or blocktext[x] == 'z' or blocktext[x] == 'A' or blocktext[x] == 'B'or blocktext[x] == 'C'or blocktext[x] == 'D'or blocktext[x] == 'E'or blocktext[x] == 'F'or blocktext[x] == 'G'or blocktext[x] == 'H'or blocktext[x] == 'I'or blocktext[x] == 'J'or blocktext[x] == 'K'or blocktext[x] == 'L'or blocktext[x] == 'M'or blocktext[x] == 'N'or blocktext[x] == 'O'or blocktext[x] == 'P'or blocktext[x] == 'Q'or blocktext[x] == 'R'or blocktext[x] == 'S'or blocktext[x] == 'T'or blocktext[x] == 'U'or blocktext[x] == 'V'or blocktext[x] == 'W'or blocktext[x] == 'X'or blocktext[x] == 'Y'or blocktext[x] == 'Z':
- texttoprint = ':regional_indicator_'+blocktext[x].lower()+':'
- else:
- texttoprint = blocktext[x]
- if blocktext[x]=='0':
- texttoprint = ':zero:'
- if blocktext[x]=='1':
- texttoprint = ':one:'
- if blocktext[x]=='2':
- texttoprint = ':two:'
- if blocktext[x]=='3':
- texttoprint = ':three:'
- if blocktext[x]=='4':
- texttoprint = ':four:'
- if blocktext[x]=='5':
- texttoprint = ':five:'
- if blocktext[x]=='6':
- texttoprint = ':six:'
- if blocktext[x]=='7':
- texttoprint = ':seven:'
- if blocktext[x]=='8':
- texttoprint = ':eight:'
- if blocktext[x]=='9':
- texttoprint = ':nine:'
- if blocktext[x]=='!':
- texttoprint = ':exclamation:'
- if blocktext[x]=='?':
- texttoprint = ':question:'
- newstring += texttoprint
- await client.send_message(message.channel, newstring)
- await client.delete_message(message)
- elif message.content.startswith(prefix+'testingstuff'):
- for chan in client.get_all_channels():
- if chan.id == '182990342671433728':
- chantouse = chan
- msg = await client.send_message(chantouse,':epicfrog: ')
- elif message.content.startswith(prefix+'updatepoints') and (message.author == message.channel.server.owner or message.author.name == 'Jimbo-Bot JR'):
- targ = message.content.replace(prefix+'updatepoints ','')[:18]
- amt = message.content.replace(prefix+'updatepoints '+targ+' ','')
- await client.delete_message(message)
- #await client.send_message(message.channel, 'target: '+targ)
- #await client.send_message(message.channel, 'amount: '+amt)
- Updatepoints(targ, int(amt))
- elif message.content.startswith(prefix+'totalgeneralclean') and message.author.id == '195698132644790281':
- counter = 0
- tmp = await client.send_message(message.channel, 'TOTALGENCLEAN: Cleaning...')
- for srv in client.servers:
- async for log in client.logs_from(srv.default_channel, limit=100):
- if log.author == tmp.author and log != tmp:
- counter += 1
- await client.delete_message(log)
- counter+=1
- await client.delete_message(tmp)
- tmp2 = await client.send_message(message.channel, 'TOTALGENCLEAN: Complete. STATS: '+str(counter)+' bot messages deleted.')
- elif message.content.startswith(prefix+'totalclean') and message.author.id == '195698132644790281':
- counter = 0
- tmp = await client.send_message(message.channel, 'TOTALCLEAN: Cleaning...')
- for srv in client.servers:
- for chann in srv.channels:
- async for log in client.logs_from(chann, limit=100):
- if log.author == tmp.author and log != tmp:
- counter += 1
- await client.delete_message(log)
- tmp2 = await client.send_message(message.channel, 'TOTALCLEAN: Complete. STATS: '+counter+' bot messages deleted.')
- elif message.content.startswith(prefix+'commands'):
- commandlist=prefix+'getrole\n/who\n'+prefix+'losing\n'+prefix+'commands\n'+prefix+'clearposts\n'+prefix+'clean\n'+prefix+'restart\n'+prefix+'snooze\n'+prefix+'time\n'+prefix+'spiders\n'+prefix+'points\n'+prefix+'dubroll\n'+prefix+'resetpoints (use this if you have no reserved memory for points)'
- tmp = await client.send_message(message.channel, 'Commands: \n'+commandlist)
- await client.delete_message(message)
- await asyncio.sleep(30)
- await client.delete_message(tmp)
- elif message.content.startswith(prefix+'clean'):
- counter = 0
- tmp = await client.send_message(message.channel, 'Cleaning...')
- async for log in client.logs_from(message.channel, limit=100):
- if log.author == tmp.author:
- counter += 1
- await client.delete_message(log)
- async for log in client.logs_from(message.channel, limit=100):
- if str(log.author.id) == '332725699645538304':
- counter+=1
- await client.delete_message(log)
- if log.content.startswith(prefix):
- counter += 1
- await client.delete_message(log)
- if log.content.startswith('/who'):
- counter += 1
- await client.delete_message(log)
- if log.content.startswith('/atwho'):
- counter += 1
- await client.delete_message(log)
- msg = await client.send_message(message.channel,'All bot messages have been cleared.')
- await asyncio.sleep(5)
- await client.delete_message(msg)
- await client.delete_message(message)
- elif message.content.startswith(prefix+'points'):
- if message.content.replace(prefix+'points','')=='':
- msg3=await client.send_message(message.channel, message.author.mention+', you have '+str(Getpoints(message.author))+' points.')
- await asyncio.sleep(10)
- await client.delete_message(msg3)
- else:
- targ = message.content.replace(prefix+'points ','')
- result = 0
- for member in client.get_all_members():
- if targ == str(member.mention):
- result = 1
- points = GetIDpoints(member.id)
- msg3= await client.send_message(message.channel, message.author.mention+', '+member.name+' has '+str(points)+' points.')
- await asyncio.sleep(10)
- await client.delete_message(msg3)
- if result == 0:
- msg3=await client.send_message(message.channel, message.author.mention+', name unknown.')
- await asyncio.sleep(5)
- await client.delete_message(msg3)
- await client.delete_message(message)
- elif message.content.startswith('/who'):
- target = message.content.replace('/who','')
- if target != ' help':
- plys = []
- string = 'Users'+message.content.replace('/who','')+': \n'
- for member in message.channel.server.members:
- if str(member.status) == 'idle':
- emoji = ':sleeping: '
- if str(member.status) == 'online':
- emoji = ':grinning: '
- if str(member.status) == 'dnd':
- emoji = ':rage: '
- if str(member.status) == 'offline':
- emoji = ':skull: '
- if str(member.status) == target[1:] or target == '' or (target[1:] == 'active' and (str(member.status)=='online' or str(member.status)=='dnd' or str(member.status)=='idle')):
- string+=(emoji+member.name+': '+str(member.status)+'\n')
- for role in member.roles:
- if str(role.mention)==target[1:]:
- string+=(emoji+member.name+': '+str(member.status)+'\n')
- msg3=await client.send_message(message.channel, string+'')
- await asyncio.sleep(45)
- await client.delete_message(msg3)
- await client.delete_message(message)
- else:
- msg3=await client.send_message(message.channel, message.author.mention+', the syntax is as follows: \n/who (this works by itself but you can specify):\n/who [online|idle|dnd|offline|active (custom for all but offline)]')
- await asyncio.sleep(25)
- await client.delete_message(msg3)
- elif message.content.startswith('/totalwho') and message.author.id == '195698132644790281':
- target = message.content.replace('/totalwho','')
- charlim=1900
- charused=0
- if target != ' help':
- plys = []
- messages = []
- string = 'Users'+message.content.replace('/totalwho','')+': '
- msg3=await client.send_message(message.channel, string+'')
- messages.append(msg3)
- string=''
- for member in client.get_all_members():
- if str(member.status) == 'idle':
- emoji = ':sleeping: '
- if str(member.status) == 'online':
- emoji = ':grinning: '
- if str(member.status) == 'dnd':
- emoji = ':rage: '
- if str(member.status) == 'offline':
- emoji = ':skull: '
- if str(member.status) == target[1:] or target == '' or (target[1:] == 'active' and (str(member.status)=='online' or str(member.status)=='dnd' or str(member.status)=='idle')):
- charlen=len(emoji+member.name+': '+str(member.status))
- if charused+charlen < charlim:
- string+=(emoji+member.name+': '+str(member.status)+'\n')
- charused+=charlen
- if charused+charlen >= charlim:
- msg3=await client.send_message(message.channel,string)
- string=''
- charused=0
- messages.append(msg3)
- await asyncio.sleep(45)
- for msg in messages:
- await client.delete_message(msg)
- await client.delete_message(message)
- else:
- msg3=await client.send_message(message.channel, message.author.mention+', the syntax is as follows: \n/who (this works by itself but you can specify):\n/who [online|idle|dnd|offline|active (custom for all but offline)]')
- await asyncio.sleep(25)
- await client.delete_message(msg3)
- elif message.content.startswith('/atwho'):
- if str(message.author.mention) == message.channel.server.owner.mention:
- target = message.content.replace('/atwho','')
- if target != ' help':
- plys = []
- string = 'Users'+message.content.replace('/atwho','')+': \n'
- for member in message.channel.server.members:
- if str(member.status) == 'idle':
- emoji = ':sleeping: '
- if str(member.status) == 'online':
- emoji = ':thumbsup: '
- if str(member.status) == 'dnd':
- emoji = ':rage: '
- if str(member.status) == 'offline':
- emoji = ':skull: '
- if str(member.status) == target[1:] or target == '' or (target[1:] == 'active' and (str(member.status)=='online' or str(member.status)=='dnd' or str(member.status)=='idle')):
- string+=(emoji+member.mention+': '+str(member.status)+'\n')
- msg3=await client.send_message(message.channel, string+'')
- await client.delete_message(message)
- await asyncio.sleep(30)
- await client.delete_message(msg3)
- else:
- msg3=await client.send_message(message.channel, message.author.mention+', you do not have permission.')
- await client.delete_message(message)
- await asyncio.sleep(5)
- await client.delete_message(msg3)
- elif message.content.startswith(prefix+'getroles'):
- target = message.content.replace(prefix+'getroles','')
- if target == '':
- val=0
- msgarray = []
- for role in message.author.roles:
- if role.name !='@everyone':
- msg = await client.send_message(message.channel,message.author.mention+', your role is: '+role.name+'.')
- msgarray.append(msg)
- val+=1
- await asyncio.sleep(5)
- await client.delete_message(message)
- await asyncio.sleep(5)
- for msg2 in msgarray:
- await client.delete_message(msg2)
- await client.delete_message(msg)
- else:
- for member in client.get_all_members():
- if member.mention == target[1:] or member.name == target[1:]:
- newtarg = member
- msg1 = message.author.mention+', '+newtarg.mention+'\'s'+' roles are: \n'
- for role in newtarg.roles:
- if role.name !='@everyone':
- msg1+=role.name+'\n'
- msg = await client.send_message(message.channel,msg1)
- await asyncio.sleep(5)
- await client.delete_message(message)
- await asyncio.sleep(5)
- await client.delete_message(msg)
- elif message.content.startswith(prefix+'getroledebug'):
- target = message.content.replace(prefix+'getroledebug','')
- if target == '':
- val=0
- msgarray = []
- for role in message.author.roles:
- if role.name !='@everyone':
- msg = await client.send_message(message.channel,message.author.mention+', your role is: '+role.name+', or '+role.id+'.')
- msgarray.append(msg)
- val+=1
- await asyncio.sleep(5)
- await client.delete_message(message)
- await asyncio.sleep(5)
- for msg2 in msgarray:
- await client.delete_message(msg2)
- await client.delete_message(msg)
- else:
- for member in client.get_all_members():
- if member.mention == target[1:] or member.name == target[1:]:
- newtarg = member
- msg1 = message.author.mention+', '+newtarg.mention+'\'s'+' roles are: \n'
- for role in newtarg.roles:
- if role.name !='@everyone':
- msg1+=role.name+', or '+role.id+'\n'
- msg = await client.send_message(message.channel,msg1)
- await asyncio.sleep(5)
- await client.delete_message(message)
- await asyncio.sleep(5)
- await client.delete_message(msg)
- elif message.content.startswith(prefix+'clearposts') and (message.author.name == 'Chupachu' or message.author.name == 'Jimbo-Bot JR') and message.content.replace(prefix+'clearposts ','') !='':
- target = message.content.replace(prefix+'clearposts ','')
- counter = 0
- tmp = await client.send_message(message.channel, 'Clearing...')
- async for log in client.logs_from(message.channel, limit=100):
- if (log.author.id == target or log.author.mention == target or log.author.name == target):
- counter += 1
- await client.delete_message(log)
- if target=='*':
- counter += 1
- await client.delete_message(log)
- msg = await client.send_message(message.channel,'All %s targetted messages have been cleared.' % counter)
- await asyncio.sleep(5)
- await client.delete_message(msg)
- await client.delete_message(message)
- await client.delete_message(tmp)
- elif message.content.startswith(prefix+'generatepointsforall')and (message.author.id == '195698132644790281' or message.author == message.channel.server.owner):
- if message.author.id=='195698132644790281':
- for member in client.get_all_members():
- if len(member.server.members) < 500:
- Generatepoints(member)
- await client.delete_message(message)
- msg = await client.send_message(message.channel,'Done')
- await asyncio.sleep(5)
- await client.delete_message(msg)
- if message.author.id!='195698132644790281':
- for member in message.channel.server.members:
- Generatepoints(member)
- await client.delete_message(message)
- msg = await client.send_message(message.channel,'Done')
- await asyncio.sleep(5)
- await client.delete_message(msg)
- elif message.content.startswith(prefix+'resetpoints'):
- Updatepoints(message.author,5)
- msg = await client.send_message(message.channel,'Done')
- await asyncio.sleep(5)
- await client.delete_message(msg)
- elif message.content.startswith(prefix+'time'):
- msg1=await client.send_message(message.channel, 'The time is: '+time.ctime()+' (CST).')
- await client.delete_message(message)
- await asyncio.sleep(30)
- await client.delete_message(msg1)
- elif message.content.startswith(prefix+'coinflip'):
- wager=0
- if message.content.replace(prefix+'coinflip','')!='':
- if message.content.replace(prefix+'coinflip','').isdigit:
- wager = int(message.content.replace(prefix+'coinflip',''))
- wager = abs(wager)
- Getpoints(message.author)
- if (Getpoints(message.author)-wager)<=0:
- wager=0
- msg1=await client.send_message(message.channel, message.author.mention+'The coin is flipped. PING!')
- num1 = random.randint(0,1)
- wagertext=''
- if wager!=0:
- Updatepoints(message.author.id,-wager)
- if num1==0:
- wagertext = ' You have won '+str(wager)+' point(s)!'
- if num1==1:
- wagertext = ' You have lost '+str(wager)+' point(s)!'
- await asyncio.sleep(5)
- if num1==0:
- msg2=await client.send_message(message.channel, message.author.mention+', you landed on: Heads!'+wagertext)
- if wager!=0:
- Updatepoints(message.author.id,wager)
- if num1==1:
- msg2=await client.send_message(message.channel, message.author.mention+', you landed on: Tails!'+wagertext)
- await asyncio.sleep(5)
- await client.delete_message(msg1)
- await client.delete_message(message)
- await client.delete_message(msg2)
- elif message.content.startswith(prefix+'dubroll'):
- Getpoints(message.author)
- payin=1
- if message.content.replace(prefix+'dubroll','')!='':
- if message.content.replace(prefix+'dubroll ','').isdigit:
- payin=int(message.content.replace(prefix+'dubroll ',''))
- if Getpoints(message.author) <payin:
- poor=await client.send_message(message.channel, message.author.mention+' Come back when you got some cash, poor guy. ')
- await asyncio.sleep(5)
- client.delete_message(poor)
- else:
- Updatepoints(message.author.id,-payin)
- msg1=await client.send_message(message.channel, message.author.mention+' You spent '+str(payin)+' point(s) for this roll, please wait for the roll to end.')
- num1 = random.randint(0,9)
- num2 = random.randint(0,9)
- num3 = random.randint(0,9)
- num4 = random.randint(0,9)
- matches=0
- await asyncio.sleep(5)
- #await client.delete_message(message)
- msgroll=await client.send_message(message.channel, ''+message.author.mention+' You rolled: '+str(num1)+', '+str(num2)+', '+str(num3)+', and '+str(num4)+'.')
- if (num1 != num2 and num2 !=num3 and num1 != num3):
- msgresult=await client.send_message(message.channel, ''+message.author.mention+' Sorry, no points.')
- if ((num1 == num2) or (num2 == num3) or (num3 == num4)):
- matches = 2
- if ((num1 == num2 and num1 == num3) or (num2 == num3 and num2 == num4)):
- matches = 3
- if (num1 == num2 and num1 == num3 and num3 == num4):
- matches = 4
- if matches == 2:
- msgresult=await client.send_message(message.channel, ''+message.author.mention+' Dubs! You win '+str((payin*5))+' points.')
- Updatepoints(message.author.id,5*payin)
- if matches == 3:
- Updatepoints(message.author.id,500*payin)
- msgresult=await client.send_message(message.channel, ''+message.author.mention+' Trips! You win '+str((payin*500))+' points.')
- if matches == 4:
- Updatepoints(message.author.id,50000*payin)
- msgresult=await client.send_message(message.channel, ''+message.author.mention+' QUAD! You win '+str((payin*50000))+' points.')
- await client.delete_message(msg1)
- await client.delete_message(message)
- await asyncio.sleep(10)
- await client.delete_message(msgroll)
- await client.delete_message(msgresult)
- elif message.content.startswith(prefix+'servers'):
- serverlist = ''
- for server in client.servers:
- serverlist+='\n|'+server.name+'|'
- msg = await client.send_message(message.channel, '```Servers I am currently in: '+serverlist+'```')
- elif message.content.startswith(prefix+'memberdebug') and message.author.id == '195698132644790281':
- memberstoadd = 0
- for member in client.get_all_members():
- if member.server.members<500:
- memberstoadd+=1
- registered = UserCount()
- diff = abs(memberstoadd-registered)
- msg = await client.send_message(message.channel, 'There are '+str(memberstoadd)+' members visible and '+str(registered)+' members with points, with a difference of '+str(diff)+'.')
- await asyncio.sleep(60)
- await client.delete_message(msg)
- await client.delete_message(message)
- elif message.content.startswith(prefix+'snooze'):
- msg1=await client.send_message(message.channel, 'I\'m a cat who loves to snooze. ZZZZZZ')
- await asyncio.sleep(25)
- await client.delete_message(msg1)
- msg2=await client.send_message(message.channel, 'Done snoozin\'')
- await asyncio.sleep(15)
- await client.delete_message(msg2)
- await client.delete_message(message)
- elif message.content.startswith(prefix+'channelcode'):
- tmp = await client.send_message(message.channel, message.channel.id)
- await client.delete_message(message)
- await asyncio.sleep(15)
- await client.delete_message(tmp)
- elif message.content.startswith(prefix+'spiders'):
- msg1=await client.send_message(message.channel, '?')
- await asyncio.sleep(3)
- msg2=await client.send_message(message.channel, 'AAH')
- await asyncio.sleep(10)
- await client.delete_message(msg1)
- await client.delete_message(msg2)
- await client.delete_message(message)
- elif message.content.startswith(prefix+'die'):
- msg1=await client.send_message(message.channel, ':(')
- asyncio.get_event_loop().stop()
- quit()
- elif message.content.startswith(prefix+'restart') and message.author.id == '195698132644790281':
- msg1=await client.send_message(message.channel, 'brb hot pocket')
- asyncio.get_event_loop().stop()
- quit()
- elif message.content.startswith(prefix+'losing') and (message.author.id == '195698132644790281' or message.author.id == '250091700066844672'):
- msg1=await client.send_message(message.channel, 'brb gotta poop')
- await asyncio.sleep(10)
- await client.delete_message(msg1)
- msg2=await client.send_message(message.channel, 'it\'s gonna be a while...')
- await asyncio.sleep(5)
- await client.delete_message(msg2)
- await client.delete_message(message)
- msg3=await client.send_message(message.channel, '...')
- asyncio.get_event_loop().stop()
- quit()
- for role in message.author.roles:
- if role.id == '333040777183887370':
- msg1=await client.send_message(message.channel,'...')
- roletomention=role
- await client.delete_message(msg1)
- newstring=''
- for num in range(len(message.content)):
- if num % 2 == 1:
- newstring+=(message.content[num:num+1].upper())
- if num % 2 == 0:
- newstring+=(message.content[num:num+1])
- msg2=await client.send_message(message.channel, '['+time.ctime()+'] '+roletomention.mention+' said: '+newstring)
- await client.delete_message(message)
- def Getpoints(targ):
- if os.path.isfile("data/"+targ.id):
- f = open("data/"+targ.id, "r")
- txt = f.read()
- ptct = txt.replace('points:','')
- points = int(ptct)
- return points
- else:
- Generatepoints(targ)
- f = open("data/"+targ.id, "r")
- txt = f.read()
- ptct = txt.replace('points:','')
- points = int(ptct)
- return points
- def GetIDpoints(id):
- if os.path.isfile("data/"+id):
- f = open("data/"+id, "r")
- txt = f.read()
- ptct = txt.replace('points:','')
- points = int(ptct)
- return points
- else:
- GenerateIDpoints(id)
- f = open("data/"+id, "r")
- txt = f.read()
- ptct = txt.replace('points:','')
- points = int(ptct)
- return points
- def UserCount():
- usercount=len(os.listdir('data/'))
- return usercount
- def Updatepoints(targ,amount):
- f = open("data/"+targ, "r")
- txt = f.read()
- ptct = txt.replace('points:','')
- points = int(ptct)
- points+=int(amount)
- f = open("data/"+targ, "w")
- f.write('points:'+str(points))
- #msg1=await client.send_message(message.channel, '')
- def Generatepoints(targ):
- f = open("data/"+targ.id, "w+")
- f.write('points:50')
- def Generateserver(id, chanid):
- f = open("servers/"+id, "w+")
- f.write(chanid)
- def GenerateIDpoints(id):
- f = open("data/"+id, "w+")
- f.write('points:50')
- #client.run('[TOKEN HIDDEN]')
- #class JimboBot(client):
- # async def __init__(self, config_file=ConfigDefaults.options_file, perms_file=PermissionsDefaults.perms_file):
- # self.players = {}
- # self.the_voice_clients = {}
- #tmp = await client.send_message(message.channel, 'Beware! I live.')
- client.run('[TOKEN HIDDEN]')
- client.close()
- #client.run()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement