summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDico200 <dico.karssiens@gmail.com>2016-05-30 01:11:34 +0200
committerDico200 <dico.karssiens@gmail.com>2016-05-30 01:11:34 +0200
commitc78d0f651bd1250ad2de34005edd782e11218e7a (patch)
tree83ae2cec0a6a826173cf228c2aa9633e3ad8ac2f
parentfe32e7a49cea69678101da332827ca7603a8fe90 (diff)
Hotfix for chatalias
-rw-r--r--chatalias.py48
-rwxr-xr-xhelpers.py14
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()
diff --git a/helpers.py b/helpers.py
index d6e46bd..da0d423 100755
--- a/helpers.py
+++ b/helpers.py
@@ -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):