summaryrefslogtreecommitdiff
path: root/adminchat.py
blob: 2955564371676175c8eb42fe7191402200cf59d7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#pylint: disable = F0401
from helpers import *

ac_permission  = "utils.ac"
ac_key         = ","
ac_toggle_list = []
ac_prefix      = "&8[&cAC&8]"

def adminchat(sender, msg):
  name = "&7{unknown}"
  try:
    name = sender.getDisplayName()
  except AttributeError:
    name = sender.getName()
  broadcast(ac_permission, "%s &9%s&8: &b%s" % (ac_prefix, name, msg))


# ac toggle
@hook.command("act")
def on_act_command(sender, args):
  if sender.hasPermission(ac_permission):
    p = sender.getName()
    if p in ac_toggle_list:
      ac_toggle_list.remove(p)
      msg(sender, "%s &aAC toggle: off" % ac_prefix)
    else:
      ac_toggle_list.append(p)
      msg(sender, "%s &aAC toggle: on" % ac_prefix)
  else:
    noperm(sender)
  return True


@hook.command("ac")
def on_ac_command(sender, args):
  if sender.hasPermission(ac_permission):
    if not checkargs(sender, args, 1, -1):
      return True
    adminchat(sender, " ".join(args))
  else:
    noperm(sender)
  return True


@hook.event("player.AsyncPlayerChatEvent", "low")
def on_chat(event):
  sender = event.getPlayer()
  msg = event.getMessage()
  if sender.hasPermission(ac_permission) and not event.isCancelled():
    if msg[:len(ac_key)] == ac_key:
      adminchat(sender, msg[1:])
      event.setCancelled(True)
    elif sender.getName() in ac_toggle_list:
      adminchat(sender, msg)
      event.setCancelled(True)