Update !fleave
This commit is contained in:
parent
4ce8888274
commit
08eaa34130
@ -152,9 +152,9 @@
|
|||||||
"not_allowed": "No, that won't be allowed.",
|
"not_allowed": "No, that won't be allowed.",
|
||||||
"fjoin_success": "\u0002{0}\u0002 used fjoin and raised the number of players to \u0002{1}\u0002.",
|
"fjoin_success": "\u0002{0}\u0002 used fjoin and raised the number of players to \u0002{1}\u0002.",
|
||||||
"fquit_success": "\u0002{0}\u0002 is forcing \u0002{1}\u0002 to leave.",
|
"fquit_success": "\u0002{0}\u0002 is forcing \u0002{1}\u0002 to leave.",
|
||||||
"fquit_goodbye": " Say goodbye to the \u0002{0}\u0002.",
|
"fquit_goodbye": "Say goodbye to the \u0002{0}\u0002.",
|
||||||
"no_players_remaining": " No more players remaining.",
|
"no_players_remaining":" No more players remaining.",
|
||||||
"new_player_count": " New player count: \u0002{0}\u0002",
|
"new_player_count": "New player count: \u0002{0}\u0002",
|
||||||
"fstart_success": "\u0002{0}\u0002 has forced the game to start.",
|
"fstart_success": "\u0002{0}\u0002 has forced the game to start.",
|
||||||
"account_reidentify": "Please reidentify to the account \u0002{0}\u0002",
|
"account_reidentify": "Please reidentify to the account \u0002{0}\u0002",
|
||||||
"account_midgame_change": "Please do not change accounts midgame",
|
"account_midgame_change": "Please do not change accounts midgame",
|
||||||
|
@ -49,6 +49,7 @@ import src.settings as var
|
|||||||
from src.utilities import *
|
from src.utilities import *
|
||||||
from src import db, events, dispatcher, channels, users, hooks, logger, proxy, debuglog, errlog, plog
|
from src import db, events, dispatcher, channels, users, hooks, logger, proxy, debuglog, errlog, plog
|
||||||
from src.decorators import command, cmd, hook, handle_error, event_listener, COMMANDS
|
from src.decorators import command, cmd, hook, handle_error, event_listener, COMMANDS
|
||||||
|
from src.functions import get_players
|
||||||
from src.messages import messages
|
from src.messages import messages
|
||||||
from src.warnings import *
|
from src.warnings import *
|
||||||
from src.context import IRCContext
|
from src.context import IRCContext
|
||||||
@ -1050,61 +1051,61 @@ def fjoin(var, wrapper, message):
|
|||||||
fake = True
|
fake = True
|
||||||
|
|
||||||
if maybe_user is not users.Bot:
|
if maybe_user is not users.Bot:
|
||||||
if maybe_user is None:
|
if maybe_user is None and users.predicate(tojoin) and botconfig.DEBUG_MODE:
|
||||||
maybe_user = users.FakeUser.from_nick(tojoin)
|
maybe_user = users._add(wrapper.client, nick=tojoin) # FIXME
|
||||||
evt.data["join_player"](var, type(wrapper)(maybe_user, wrapper.target), forced=True, who=wrapper.source)
|
evt.data["join_player"](var, type(wrapper)(maybe_user, wrapper.target), forced=True, who=wrapper.source)
|
||||||
else:
|
else:
|
||||||
wrapper.pm(messages["not_allowed"])
|
wrapper.pm(messages["not_allowed"])
|
||||||
if fake:
|
if fake:
|
||||||
wrapper.send(messages["fjoin_success"].format(wrapper.source, len(list_players())))
|
wrapper.send(messages["fjoin_success"].format(wrapper.source, len(list_players())))
|
||||||
|
|
||||||
@cmd("fleave", "fquit", flag="A", pm=True, phases=("join", "day", "night"))
|
@command("fleave", "fquit", flag="A", pm=True, phases=("join", "day", "night"))
|
||||||
def fleave(cli, nick, chan, rest):
|
def fleave(var, wrapper, message):
|
||||||
"""Forces someone to leave the game."""
|
"""Force someone to leave the game."""
|
||||||
|
|
||||||
for a in re.split(" +",rest):
|
for person in re.split(" +", message):
|
||||||
a = a.strip()
|
person = person.strip()
|
||||||
if not a:
|
if not person:
|
||||||
continue
|
continue
|
||||||
pl = list_players()
|
|
||||||
pll = [x.lower() for x in pl]
|
target, _ = users.complete_match(person, get_players())
|
||||||
dcl = [user.nick for user in var.DEADCHAT_PLAYERS] if var.PHASE != "join" else []
|
dead_target = None
|
||||||
dcll = [x.lower() for x in dcl]
|
if var.PHASE in var.GAME_PHASES:
|
||||||
if a.lower() in pll:
|
dead_target, _ = users.complete_match(person, var.DEADCHAT_PLAYERS)
|
||||||
if chan != botconfig.CHANNEL:
|
if target is not None:
|
||||||
reply(cli, nick, chan, messages["fquit_fail"], private=True)
|
if wrapper.target is not channels.Main:
|
||||||
|
wrapper.pm(messages["fquit_fail"])
|
||||||
return
|
return
|
||||||
a = pl[pll.index(a.lower())]
|
|
||||||
|
|
||||||
message = messages["fquit_success"].format(nick, a)
|
msg = [messages["fquit_success"].format(wrapper.source, target)]
|
||||||
if get_role(a) != "person" and var.ROLE_REVEAL in ("on", "team"):
|
if get_role(target.nick) != "person" and var.ROLE_REVEAL in ("on", "team"):
|
||||||
message += messages["fquit_goodbye"].format(get_reveal_role(a))
|
msg.append(messages["fquit_goodbye"].format(get_reveal_role(target.nick)))
|
||||||
if var.PHASE == "join":
|
if var.PHASE == "join":
|
||||||
lpl = len(list_players()) - 1
|
player_count = len(list_players()) - 1
|
||||||
if lpl == 0:
|
to_say = "new_player_count"
|
||||||
message += messages["no_players_remaining"]
|
if not player_count:
|
||||||
else:
|
to_say = "no_players_remaining"
|
||||||
message += messages["new_player_count"].format(lpl)
|
msg.append(messages[to_say].format(player_count))
|
||||||
cli.msg(chan, message)
|
|
||||||
|
wrapper.send(*msg)
|
||||||
|
|
||||||
if var.PHASE != "join":
|
if var.PHASE != "join":
|
||||||
for r, rset in var.ORIGINAL_ROLES.items():
|
for roleset in var.ORIGINAL_ROLES.values():
|
||||||
if a in rset:
|
if target.nick in roleset:
|
||||||
var.ORIGINAL_ROLES[r].remove(a)
|
roleset.remove(target.nick)
|
||||||
var.ORIGINAL_ROLES[r].add("(dced)"+a)
|
roleset.add("(dced)" + target.nick)
|
||||||
if a in var.PLAYERS:
|
if target.nick in var.PLAYERS:
|
||||||
var.DCED_PLAYERS[a] = var.PLAYERS.pop(a)
|
var.DCED_PLAYERS[target.nick] = var.PLAYERS.pop(target.nick)
|
||||||
|
|
||||||
del_player(cli, a, death_triggers=False)
|
del_player(wrapper.client, target.nick, death_triggers=False) # FIXME: Need to fix once del_player is updated
|
||||||
|
|
||||||
elif a.lower() in dcll:
|
elif dead_target is not None:
|
||||||
a = dcl[dcll.index(a.lower())]
|
leave_deadchat(var, dead_target, force=wrapper.source)
|
||||||
|
if wrapper.source not in var.DEADCHAT_PLAYERS:
|
||||||
leave_deadchat(var, users._get(a), force=nick) # FIXME
|
wrapper.pm(messages["admin_fleave_deadchat"].format(dead_target))
|
||||||
if nick.lower() not in dcll:
|
|
||||||
reply(cli, nick, chan, messages["admin_fleave_deadchat"].format(a), private=True)
|
|
||||||
|
|
||||||
else:
|
else:
|
||||||
cli.msg(chan, messages["not_playing"].format(a))
|
wrapper.send(messages["not_playing"].format(person))
|
||||||
return
|
return
|
||||||
|
|
||||||
@cmd("fstart", flag="A", phases=("join",))
|
@cmd("fstart", flag="A", phases=("join",))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user