Hotfix for chatalias
This commit is contained in:
52
chatalias.py
52
chatalias.py
@@ -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()
|
||||||
|
|||||||
14
helpers.py
14
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.
|
# 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):
|
||||||
|
|||||||
Reference in New Issue
Block a user