From f6de0a6c78268207a47839da9d19e5a8779f9823 Mon Sep 17 00:00:00 2001 From: Dico200 Date: Mon, 23 Mar 2015 20:08:38 +0100 Subject: [PATCH] Added synchronizeranks. Untested! --- synchronizeranks.py | 61 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 synchronizeranks.py diff --git a/synchronizeranks.py b/synchronizeranks.py new file mode 100644 index 0000000..946b952 --- /dev/null +++ b/synchronizeranks.py @@ -0,0 +1,61 @@ +from helpers import * +from secrets import * +import mysqlhack +from com.ziclix.python.sql import zxJDBC + +ranks = { + "member" : 3, + "builder" : 7, + "trusted" : 8, + "helper" : 9, + "trainingmod" : 10, + "mod" : 4, + "admin" : 5 +} + + +@hook.event("player.PlayerJoinEvent", "normal") +def on_player_join(event): + user = event.getPlayer() + uuid = uid(player) + role = get_role(uuid) + if role in [1, 2, 6]: #Disabled/Banned/Superadmin + return + if role != None: + for rank in ranks: + if user.hasPermission("group." + rank): + set_role(uuid, ranks[rank]) + return + if not user.hasPlayedBefore(): + return + if role == None: + msg(user, "&cYou haven't registed yet! Make sure to do so on redstoner.com") + elif not is_email_confirmed(uuid): + msg(user, "&cWe noticed that you haven't confirmed your website email! Don't forget to do so!") + + + +def get_role(uuid): + return execute_query("SELECT `role_id` FROM users WHERE `uuid` = ? LIMIT 1")[0][17] + + +def set_role(uuid, role_id): + execute_query("UPDATE users SET `role_id` = %d WHERE `uuid` = ?" % role_id) + + +def is_email_confirmed(uuid): + return execute_query("SELECT `confirmed` FROM users WHERE `uuid` = ? LIMIT 1")[0][15] + + +def execute_query(query, uuid): + conn = zxJDBC.connect(mysql_database, mysql_user, mysql_pass, "com.mysql.jdbc.Driver") + curs = conn.cursor() + uuid = uid(player).replace("-", "") + curs.execute(query, (uuid,)) + results = curs.fetchall() + curs.close() + conn.close() + return results + + +