Skip to content
Permalink
Browse files
Working developer options
  • Loading branch information
hollan84 committed May 13, 2020
1 parent 63769bf commit 7b5f763e3488b6c64992e710e87e5aed9573a4d6
Show file tree
Hide file tree
Showing 4 changed files with 77 additions and 24 deletions.
@@ -99,7 +99,7 @@ async def on_message(message):
#msg = "{}Total Minecraft Servers: {}\n".format(msg, database.get_total("minecraft_server"))
#msg = "{}Percentage of servers using maps: {}%\n".format(msg, str((int(database.get_total("map"))/int(database.get_total("minecraft_server"))*100)))
elif ('developer') in message_command:
developer.developer_check(message.content, message.author)
msg = developer.developer_check(user_message, message.author, guild_id)
elif ('status') in message_command:
try:
status = server.status()
@@ -2,14 +2,29 @@ import sqlite3
from sqlite3 import Error
import os

def devs(username):
def devs(user):
conn = connect()
sql = '''SELECT username
FROM developers'''
cur = conn.cursor()
cur.execute(sql)
if username in str(cur.fetchall()):
return True
for i in cur.fetchall():
user_value = i[0]
if str(user) in str(user_value):
return True
return False

def permission_check(command, user):
conn = connect()
sql = '''SELECT {}
FROM developers
WHERE username = "{}"'''.format(command, user)
cur = conn.cursor()
cur.execute(sql)
for i in cur.fetchall():
user_value = i[0]
if str(user_value) == "1":
return True
return False

def devs_read(table):
@@ -22,8 +37,9 @@ def devs_read(table):

def add_dev(username):
conn = connect()
sql = '''INSERT INTO developers(username)
VALUES("{}")'''.format(username)
sql = '''INSERT INTO developers(username, data, deploy, add_dev, modify_dev, remove_dev, restart, start, stop)
VALUES("{}", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE)'''.format(username)
print(sql)
cur = conn.cursor()
cur.execute(sql)
conn.commit()
@@ -36,6 +52,19 @@ def remove_dev(username):
cur.execute(sql)
conn.commit()

def modify_dev(username, permission, value):
if value == "true":
value = 1
else:
value = 0
conn = connect()
sql = '''UPDATE developers
SET {} = "{}"
WHERE username = "{}"'''.format(permission, value, username)
cur = conn.cursor()
cur.execute(sql)
conn.commit()

def sql_guard(message):
danger_commands = ["drop", "table", "delete", "from", "update", "insert", "into", "select", "truncate"]
for i in danger_commands:
@@ -61,14 +61,14 @@ def main():

create_dev_table_sql = """CREATE TABLE IF NOT EXISTS developers (
username text PRIMARY KEY,
data text,
deploy text,
add_dev text,
modify_dev text,
remove_dev,
restart text,
start text,
stop text
data bool,
deploy bool,
add_dev bool,
modify_dev bool,
remove_dev bool,
restart bool,
start bool,
stop bool
);"""

if not os.path.isfile(database_path):
@@ -81,6 +81,6 @@ def main():
create_table(conn, create_player_table_sql)
create_table(conn, create_dev_table_sql)

add_primary_developer(conn, "<@!326831993520390154>")
add_primary_developer(conn, "AlastairHolland#6538")

conn.commit()
@@ -2,13 +2,18 @@ import database
import os

def developer_modify(message):
msg = ""
command = message[1]
if command == "deploy":
deploy = True
elif command == "start":
start = True
if message[2]:
if len(message) >= 2:
if command == "data":
if message[2] == "*":
for table_name in ["servers", "players", "developers"]:
msg = "{} \n__________________\n_**{}**_\n__________________ \n{}".format(msg, table_name, database.devs_read(table_name))
return msg
return database.devs_read(message[2])
elif command == "add_dev":
if not database.devs(message[2]):
@@ -19,10 +24,10 @@ def developer_modify(message):
elif command == "remove_dev":
if database.devs(message[2]):
database.remove_dev(message[2])
return "{} is no longer a developer"
return "{} is no longer a developer".format(message[2])
else:
return "{} is not a developer at the moment"
if message[3] and message[4]:
return "{} is not a developer at the moment".format(message[2])
if len(message) == 4:
if command == "modify_dev":
if database.devs(message[2]):
if message[4] == "true" or message[4] == "false":
@@ -32,16 +37,35 @@ def developer_modify(message):
return "Please spefify if you want this to be true or false"
else:
return "{} is not a developer".format(message[2])
else:
return "Invalid command, see the developer help for info"
else:
return "Invalid command, see the developer help for info"
else:
return "You need a variable to change, see '?developer help' for more info"

def check_message(message):
def check_message(message, author, guild_id):
message = message.split()
if permission_check(message[1]):
if len(message) == 1:
return "Please specify a command"
if message[1] == "help":
dev_help = {
"restart" : "Restart all bots",
"deploy" : "Deploy the current code version to all bots and restart",
"data [table]" : "Display all data associated with table",
"add_dev [username]" : "Add Discord developer",
"modify_dev [username] [permission] [true/false]": "Modify permission of a developer",
"remove_dev [username]" : "Remove developer"
}
msg = ""
for i in dev_help:
msg = "{} - {}developers {}\n".format(msg, database.read_database("command_prefix", guild_id), i)
return msg
if database.permission_check(message[1], author):
return developer_modify(message)

def developer_check(message, author):
if database.devs():
return check_message(message)
def developer_check(message, author, guild_id):
if database.devs(author):
return check_message(message, author, guild_id)
else:
return "You don't have developer permissions to use this"

0 comments on commit 7b5f763

Please sign in to comment.