Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import discord
- from discord.ext import commands
- import logging
- from datetime import datetime
- bot = commands.Bot(command_prefix='$')
- @bot.event
- async def on_ready():
- print('Logged in')
- print('ID: ' + bot.user.id)
- await bot.change_presence(game=discord.Game(name="benis"))
- @bot.event
- async def on_message(message):
- # we do not want the bot to reply to itself
- if message.author == bot.user:
- return
- if message.content.startswith('benis') and message.author.name == 'sercankd':
- await bot.send_message(message.channel, "benis ebin :DDD")
- #await bot.send_message(message.channel, message.author.name)
- await bot.process_commands(message)
- @bot.command(pass_context=True, description='Usage: $giveme "title you want" #colorcodeinhex')
- async def giveme(ctx, title: str, color: str):
- """Usage: $giveme "title you want" #colorcodeinhex"""
- server = ctx.message.server
- msg_author = ctx.message.author
- user_role = "[" + msg_author.name + "] " + title
- if color.startswith("#"):
- color = color[1:]
- if len(color) == 6:
- roles_list = []
- for r in ctx.message.author.roles:
- roles_list.append(r.position)
- color_var = discord.Colour(int(color, 16))
- for val in server.roles:
- if val.name.startswith("[" + msg_author.name + "]"):
- try:
- await bot.delete_role(server, val)
- except Exception as e:
- await bot.say(e)
- #pass
- else:
- role = await bot.create_role(server, name=user_role, permissions=discord.Permissions(0), color=color_var)
- bots_role = discord.utils.get(server.roles, name="ColorMeBot")
- await bot.move_role(server, role, bots_role.position - 1)
- await bot.add_roles(ctx.message.author, role)
- await bot.say("Done")
- elif val.position == max(roles_list):
- try:
- if ("[" in val.name) or ("]" in val.name):
- await bot.delete_role(server, val)
- except Exception as e:
- await bot.say(e)
- else:
- role = await bot.create_role(server, name=user_role, permissions=discord.Permissions(0), color=color_var)
- bots_role = discord.utils.get(server.roles, name="ColorMeBot")
- await bot.move_role(server, role, bots_role.position - 1)
- await bot.add_roles(ctx.message.author, role)
- await bot.say("Done")
- # await bot.say("DEBUG: title =" + user_role + ", color =" + color)
- else:
- await bot.say("Invalid color: Use only 6 digits Hex value")
- '''@bot.command(pass_context=True, description='DEV ONLY')
- async def removeroles(ctx):
- server = ctx.message.server
- for val in ctx.message.author.roles:
- if ("[" in val.name) or ("]" in val.name):
- try:
- await bot.delete_role(server, val)
- except Exception as e:
- pass
- #await bot.say(e)
- await bot.say("Done!")
- @bot.command(pass_context=True, description='DEV ONLY')
- async def roles(ctx, command: str):
- server = ctx.message.server
- roles_list = []
- await bot.say("Working on it...")
- with open('roles.txt', 'w') as file_handler:
- for val in server.roles:
- if command.startswith("standart"):
- if ("[" not in val.name) or ("]" not in val.name):
- file_handler.write("{}\n".format(val.name))
- elif command.startswith("all"):
- file_handler.write("{}\n".format(val.name))
- await bot.say("Done!")
- @bot.command(pass_context=True, description='Usage: $lobby <region> <password> <players> <time>')
- async def lobby(ctx, region: str, password: str, players: str, time: str = None):
- mentions = []
- for rol in region.upper().split(","):
- rol_ = discord.utils.get(ctx.message.server.roles, name=rol)
- mentions.append(rol_.mention)
- channel = discord.utils.get(ctx.message.server.channels, name='lobby')
- if time is None:
- await bot.send_message(channel, "**Lobby up!**\n" + "**Region:** " + ", ".join(
- mentions) + "\n**Password:** " + password + "\n**Game Type:** " + players)
- else:
- await bot.send_message(channel, "**Lobby up!**\n" + "**Region:** " + ", ".join(
- mentions) + "\n**Password:** " + password + "\n**Game Type:** " + players + "\n*Going public in ~" + time + " minutes*")
- @bot.command(pass_context=True, description='admin only')
- async def tell(ctx):
- server = ctx.message.server
- rol_ = discord.utils.get(server.roles, name="ColorMeBot")
- await bot.say("**My role: **" + rol_.name + ", **Position:** " + str(rol_.position))
- await bot.say("**Total Roles:** " + str(len(server.roles)))
- rol_top = discord.utils.get(server.roles, position=len(server.roles)-1)
- await bot.say("**Highest Role:** " + rol_top.name + ", **Position** " + str(rol_top.position))
- rol_low = discord.utils.get(server.roles, position=1)
- await bot.say("**Lowest Role:** " + rol_low.name + ", **Position** " + str(rol_low.position))
- rol_latest = discord.utils.get(server.roles, position=rol_.position - 1)
- await bot.say("**Latest Role I gave** " + rol_latest.mention + ", **Position** " + str(rol_latest.position))
- roles_list = []
- user_roles_count = len(ctx.message.author.roles)
- await bot.say("**Your roles count is:** " + str(user_roles_count-1))
- for r in ctx.message.author.roles:
- #await bot.say(r.name + " " + r.id + " " + str(r.position))
- roles_list.append(r.position)
- await bot.say(discord.utils.get(server.roles, position=max(roles_list)))
- '''
- epoch_time = str(datetime.now().strftime('%Y-%m-%d %H:%M:%S'))
- logger = logging.getLogger('discord')
- logger.setLevel(logging.ERROR)
- handler = logging.FileHandler(filename=epoch_time+'.log', encoding='utf-8', mode='w')
- handler.setFormatter(logging.Formatter('%(asctime)s:%(levelname)s:%(name)s: %(message)s'))
- logger.addHandler(handler)
- bot.run('accestoken')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement