Improve parsing chat commands
This commit is contained in:
@@ -161,24 +161,25 @@ class ChatManager:
|
||||
def translate_chat(self, data):
|
||||
if isinstance(data, str):
|
||||
return data
|
||||
|
||||
result = data.get('text', '')
|
||||
result += data.get('translate', '')
|
||||
|
||||
if 'with' in data:
|
||||
result += ' ' + ' '.join([self.translate_chat(x) for x in data['with']])
|
||||
elif 'extra' in data:
|
||||
return ''.join([self.translate_chat(x) for x in data['extra']])
|
||||
elif 'text' in data:
|
||||
return data['text']
|
||||
elif 'with' in data:
|
||||
if len(data['with']) >= 2:
|
||||
return '<{}> {}'.format(*[self.translate_chat(x) for x in data['with']])
|
||||
else:
|
||||
return self.translate_chat(data['with'][0])
|
||||
elif 'translate' in data:
|
||||
return data['translate']
|
||||
else:
|
||||
print(data)
|
||||
return '?'
|
||||
result += ''.join([self.translate_chat(x) for x in data['extra']])
|
||||
|
||||
return result
|
||||
|
||||
def print_chat(self, chat_packet):
|
||||
#print(chat_packet)
|
||||
#print(chat_packet.json_data)
|
||||
#import json
|
||||
#print(json.dumps(json.loads(chat_packet.json_data), indent=4))
|
||||
try:
|
||||
source = chat_packet.field_string('position')
|
||||
sender = chat_packet.sender
|
||||
text = self.translate_chat(json.loads(chat_packet.json_data))
|
||||
print('[%s] %s'%(source, text))
|
||||
except Exception as ex:
|
||||
@@ -186,7 +187,7 @@ class ChatManager:
|
||||
return
|
||||
|
||||
if self.handler:
|
||||
self.handler((source, text))
|
||||
self.handler((source, sender, text))
|
||||
|
||||
def set_handler(self, func):
|
||||
self.handler = func
|
||||
|
Reference in New Issue
Block a user