@events.send_messageможно отменить3 методаКогда игрок отправляет сообщение или команду в чат, до отправки на сервер.
Текст ещё можно прочитать, переписать или не пустить дальше.
На этом строят префиксы и подписи к сообщениям, автозамены, защиту от случайной отправки пароля, свои команды через чат.
| Метод | Возвращает | Зачем |
|---|---|---|
getMessage() | str | Что игрок собирается отправить |
setMessage(text) | ничего | Подменить текст |
cancel() / isCancelled() | ничего / bool | Не отправлять сообщение |
mod = Module("ChatGuard", "Other")
mod.setDesc("Не даёт случайно отправить пароль")
BAD = ["/login", "/reg", "password"]
@events.send_message
def on_send(event):
if not mod.isEnabled():
return
text = event.getMessage()
if any(word in text.lower() for word in BAD):
event.cancel()
client.warn("Сообщение заблокировано: похоже на пароль")# своя команда через чат: скрипт ловит её и не пускает на сервер
mod = Module("Coords", "Other")
@events.send_message
def on_send(event):
if event.getMessage().strip() != ".coords":
return
event.cancel()
p = world.self()
if p is not None:
client.msg("Я тут: %d %d %d" % (p.getX(), p.getY(), p.getZ()))Общий список всех событий и правила подписки лежат на странице События.