diff options
author | Dico200 <dico.karssiens@gmail.com> | 2016-05-30 01:11:42 +0200 |
---|---|---|
committer | Dico200 <dico.karssiens@gmail.com> | 2016-05-30 01:11:42 +0200 |
commit | ba78151e4992abcc89d53083ef69b3fb0cc3f9df (patch) | |
tree | 9cbd0c28a4c3105721cce07419f459c726406f7e | |
parent | fa03a689639435fbf023679b09efb7782820c919 (diff) | |
parent | c78d0f651bd1250ad2de34005edd782e11218e7a (diff) |
Merge branch 'dev'
-rw-r--r-- | chatalias.py | 48 | ||||
-rwxr-xr-x | helpers.py | 14 |
2 files changed, 33 insertions, 29 deletions
diff --git a/chatalias.py b/chatalias.py index bc21e13..9db8fdb 100644 --- a/chatalias.py +++ b/chatalias.py @@ -120,23 +120,26 @@ def on_join(event): @hook.event("player.AsyncPlayerChatEvent", "high") def on_player_chat(event): - if enabled: - if event.isCancelled(): - return - player = event.getPlayer() - if not hasPerm(player, permission_USE): - return - msg_limit = int(get_permission_content(player, permission_LENGTH)) - for alias, value in data[str(uid(player))].items(): - if player.hasPermission("essentials.chat.color"): - event.setMessage(event.getMessage().replace(colorify(alias), colorify(value))) - else: - event.setMessage(event.getMessage().replace(alias, value)) - if not player.hasPermission(permission_ALL) and len(event.getMessage()) > msg_limit: - event.setCancelled(True) - plugin_header(player, "Alias") - msg(player, "The message you wanted to generate would exceed the length limit limit of %d. Please make it shorter!" % msg_limit) + try: + if enabled: + if event.isCancelled(): + return + player = event.getPlayer() + if not hasPerm(player, permission_USE): return + msg_limit = int(get_permission_content(player, permission_LENGTH)) + for alias, value in data[uid(player)].iteritems(): + if player.hasPermission("essentials.chat.color"): + event.setMessage(event.getMessage().replace(colorify(alias), colorify(value))) + else: + event.setMessage(event.getMessage().replace(alias, value)) + if not player.hasPermission(permission_ALL) and len(event.getMessage()) > msg_limit: + event.setCancelled(True) + plugin_header(player, "Alias") + msg(player, "The message you wanted to generate would exceed the length limit limit of %d. Please make it shorter!" % msg_limit) + return + except: + error(trace()) def hasPerm(player, permission): @@ -316,14 +319,12 @@ def load_data_thread(uuid): curs = conn.cursor() curs.execute("SELECT `alias` FROM `chatalias` WHERE `uuid` = ?;", (uuid, )) results = curs.fetchall() + curs.close() + conn.close() if len(results) == 0: value = dict(global_aliases) - curs.execute("INSERT INTO `chatalias` VALUES (?,?);", (uuid, json_dumps(results), )) - conn.commit() else: value = json_loads(results[0][0]) - curs.close() - conn.close() data[uuid] = value @@ -341,10 +342,9 @@ def save_data(uuid): def save_data_thread(uuid): conn = zxJDBC.connect(mysql_database, mysql_user, mysql_pass, "com.mysql.jdbc.Driver") curs = conn.cursor() - try: - curs.execute("UPDATE `chatalias` SET `alias` = ? WHERE `uuid` = ?;", (json_dumps(data[uuid]), uuid, )) - except: - error(trace()) + value = json_dumps(data[uuid]) + curs.execute("INSERT INTO `chatalias` VALUES (?, ?) ON DUPLICATE KEY UPDATE `alias` = ?;", + (uuid, value, value)) conn.commit() curs.close() conn.close() @@ -279,11 +279,15 @@ def is_ip(tocheck): # Allows the use of e.g. numeric permission nodes like "permission.amount.5" and similar. # To get the data fetch the player and the start of the permission node, looking like "permission.amount." -def get_permission_content(player, permnode): - perms = player.getEffectivePermissions() - for perm in perms: - if str(perm.getPermission()).startswith(permnode): - return str(perm.getPermission())[len(permnode):] +def get_permission_content(player, permnode, default_value = None): + try: + perms = player.getEffectivePermissions() + for perm in perms: + if str(perm.getPermission()).startswith(permnode): + return str(perm.getPermission())[len(permnode):] + return default_value + except: + error(trace()) def array_to_list(array): |