Hotfix for chatalias

This commit is contained in:
Dico200
2016-05-30 01:11:34 +02:00
parent fe32e7a49c
commit c78d0f651b
2 changed files with 35 additions and 31 deletions

View File

@@ -120,23 +120,26 @@ def on_join(event):
@hook.event("player.AsyncPlayerChatEvent", "high") @hook.event("player.AsyncPlayerChatEvent", "high")
def on_player_chat(event): def on_player_chat(event):
if enabled: try:
if event.isCancelled(): if enabled:
return if event.isCancelled():
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)
return 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): def hasPerm(player, permission):
@@ -316,14 +319,12 @@ def load_data_thread(uuid):
curs = conn.cursor() curs = conn.cursor()
curs.execute("SELECT `alias` FROM `chatalias` WHERE `uuid` = ?;", (uuid, )) curs.execute("SELECT `alias` FROM `chatalias` WHERE `uuid` = ?;", (uuid, ))
results = curs.fetchall() results = curs.fetchall()
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() curs.close()
conn.close() conn.close()
if len(results) == 0:
value = dict(global_aliases)
else:
value = json_loads(results[0][0])
data[uuid] = value data[uuid] = value
@@ -341,10 +342,9 @@ def save_data(uuid):
def save_data_thread(uuid): def save_data_thread(uuid):
conn = zxJDBC.connect(mysql_database, mysql_user, mysql_pass, "com.mysql.jdbc.Driver") conn = zxJDBC.connect(mysql_database, mysql_user, mysql_pass, "com.mysql.jdbc.Driver")
curs = conn.cursor() curs = conn.cursor()
try: value = json_dumps(data[uuid])
curs.execute("UPDATE `chatalias` SET `alias` = ? WHERE `uuid` = ?;", (json_dumps(data[uuid]), uuid, )) curs.execute("INSERT INTO `chatalias` VALUES (?, ?) ON DUPLICATE KEY UPDATE `alias` = ?;",
except: (uuid, value, value))
error(trace())
conn.commit() conn.commit()
curs.close() curs.close()
conn.close() conn.close()

View File

@@ -279,11 +279,15 @@ def is_ip(tocheck):
# Allows the use of e.g. numeric permission nodes like "permission.amount.5" and similar. # 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." # To get the data fetch the player and the start of the permission node, looking like "permission.amount."
def get_permission_content(player, permnode): def get_permission_content(player, permnode, default_value = None):
perms = player.getEffectivePermissions() try:
for perm in perms: perms = player.getEffectivePermissions()
if str(perm.getPermission()).startswith(permnode): for perm in perms:
return str(perm.getPermission())[len(permnode):] if str(perm.getPermission()).startswith(permnode):
return str(perm.getPermission())[len(permnode):]
return default_value
except:
error(trace())
def array_to_list(array): def array_to_list(array):