add back DISABLED_GAMEMODES
can be used by bot operators to disable & hide a gamemode entirely
This commit is contained in:
parent
265a1cc442
commit
dc1b1e7f6a
@ -306,6 +306,9 @@ TEMPLATE_RESTRICTIONS["assassin"] -= {"fallen angel"}
|
||||
# Roles listed here cannot be used in !fgame roles=blah. If they are defined in ROLE_GUIDE they may still be used.
|
||||
DISABLED_ROLES = frozenset()
|
||||
|
||||
# Game modes that cannot be randomly picked or voted for
|
||||
DISABLED_GAMEMODES = frozenset()
|
||||
|
||||
GIF_CHANCE = 1/50
|
||||
FORTUNE_CHANCE = 1/25
|
||||
|
||||
|
@ -7471,7 +7471,7 @@ def start(cli, nick, chan, forced = False, restart = ""):
|
||||
cgamemode(cli, random.choice(voted))
|
||||
else:
|
||||
possiblegamemodes = []
|
||||
for gamemode in var.GAME_MODES.keys():
|
||||
for gamemode in var.GAME_MODES.keys() - var.DISABLED_GAMEMODES:
|
||||
if len(villagers) >= var.GAME_MODES[gamemode][1] and len(villagers) <= var.GAME_MODES[gamemode][2] and var.GAME_MODES[gamemode][3] > 0:
|
||||
possiblegamemodes += [gamemode]*(var.GAME_MODES[gamemode][3]+votes.get(gamemode, 0)*15)
|
||||
cgamemode(cli, random.choice(possiblegamemodes))
|
||||
@ -9048,8 +9048,9 @@ def listroles(cli, nick, chan, rest):
|
||||
elif rest[0] and not rest[0].isdigit():
|
||||
gamemode = rest[0]
|
||||
if gamemode not in var.GAME_MODES.keys():
|
||||
gamemode, _ = complete_match(rest[0], var.GAME_MODES.keys() - ["roles", "villagergame"])
|
||||
if gamemode in var.GAME_MODES.keys() and gamemode != "roles" and gamemode != "villagergame" and hasattr(var.GAME_MODES[gamemode][0](), "ROLE_GUIDE"):
|
||||
gamemode, _ = complete_match(rest[0], var.GAME_MODES.keys() - ["roles", "villagergame"] - var.DISABLED_GAMEMODES)
|
||||
validMode = gamemode in var.GAME_MODES.keys() and gamemode != "roles" and gamemode != "villagergame" and gamemode not in var.DISABLED_GAMEMODES
|
||||
if validMode and hasattr(var.GAME_MODES[gamemode][0](), "ROLE_GUIDE"):
|
||||
mode = var.GAME_MODES[gamemode][0]()
|
||||
if hasattr(mode, "ROLE_INDEX") and hasattr(mode, "ROLE_GUIDE"):
|
||||
roleindex = mode.ROLE_INDEX
|
||||
@ -9059,7 +9060,7 @@ def listroles(cli, nick, chan, rest):
|
||||
roleguide = var.ORIGINAL_SETTINGS["ROLE_GUIDE"]
|
||||
rest.pop(0)
|
||||
else:
|
||||
if gamemode in var.GAME_MODES and gamemode != "roles" and gamemode != "villagergame" and not hasattr(var.GAME_MODES[gamemode][0](), "ROLE_GUIDE"):
|
||||
if validMode and not hasattr(var.GAME_MODES[gamemode][0](), "ROLE_GUIDE"):
|
||||
msg.append("{0}: {1}roles is disabled for the {2} game mode.".format(nick, botconfig.CMD_CHAR, gamemode))
|
||||
else:
|
||||
msg.append("{0}: {1} is not a valid game mode.".format(nick, rest[0]))
|
||||
@ -9354,14 +9355,14 @@ def vote_gamemode(cli, nick, chan, gamemode, doreply):
|
||||
return
|
||||
|
||||
if gamemode not in var.GAME_MODES.keys():
|
||||
match, _ = complete_match(gamemode, var.GAME_MODES.keys() - ["roles", "villagergame"])
|
||||
match, _ = complete_match(gamemode, var.GAME_MODES.keys() - ["roles", "villagergame"] - var.DISABLED_GAMEMODES)
|
||||
if not match:
|
||||
if doreply:
|
||||
cli.notice(nick, messages["invalid_mode_no_list"].format(gamemode))
|
||||
return
|
||||
gamemode = match
|
||||
|
||||
if gamemode != "roles" and gamemode != "villagergame":
|
||||
if gamemode != "roles" and gamemode != "villagergame" and gamemode not in var.DISABLED_GAMEMODES:
|
||||
if var.GAMEMODE_VOTES.get(nick) == gamemode:
|
||||
cli.notice(nick, messages["already_voted_game"].format(gamemode))
|
||||
else:
|
||||
@ -9378,7 +9379,8 @@ def game(cli, nick, chan, rest):
|
||||
vote_gamemode(cli, nick, chan, rest.lower().split()[0], True)
|
||||
else:
|
||||
gamemodes = ", ".join("\u0002{0}\u0002".format(gamemode) if len(var.list_players()) in range(var.GAME_MODES[gamemode][1],
|
||||
var.GAME_MODES[gamemode][2]+1) else gamemode for gamemode in var.GAME_MODES.keys() if gamemode != "roles" and gamemode != "villagergame")
|
||||
var.GAME_MODES[gamemode][2]+1) else gamemode for gamemode in var.GAME_MODES.keys() if gamemode != "roles" and
|
||||
gamemode != "villagergame" and gamemode not in var.DISABLED_GAMEMODES)
|
||||
cli.notice(nick, messages["no_mode_specified"] + gamemodes)
|
||||
return
|
||||
|
||||
@ -9386,14 +9388,14 @@ def game(cli, nick, chan, rest):
|
||||
def show_modes(cli, nick, chan, rest):
|
||||
"""Show the available game modes."""
|
||||
msg = messages["available_modes"]
|
||||
modes = "\u0002, \u0002".join(sorted(var.GAME_MODES.keys() - {"roles", "villagergame"}))
|
||||
modes = "\u0002, \u0002".join(sorted(var.GAME_MODES.keys() - {"roles", "villagergame"} - var.DISABLED_GAMEMODES))
|
||||
|
||||
reply(cli, nick, chan, msg + modes + "\u0002", private=True)
|
||||
|
||||
def game_help(args=""):
|
||||
return (messages["available_mode_setters_help"] +
|
||||
", ".join("\u0002{0}\u0002".format(gamemode) if len(var.list_players()) in range(var.GAME_MODES[gamemode][1], var.GAME_MODES[gamemode][2]+1)
|
||||
else gamemode for gamemode in var.GAME_MODES.keys() if gamemode != "roles"))
|
||||
else gamemode for gamemode in var.GAME_MODES.keys() if gamemode != "roles" and gamemodes not in var.DISABLED_GAMEMODES))
|
||||
game.__doc__ = game_help
|
||||
|
||||
|
||||
@ -9693,9 +9695,9 @@ if botconfig.DEBUG_MODE or botconfig.ALLOWED_NORMAL_MODE_COMMANDS:
|
||||
gamemode = parts[0]
|
||||
modeargs = None
|
||||
|
||||
if gamemode not in var.GAME_MODES.keys():
|
||||
if gamemode not in var.GAME_MODES.keys() - var.DISABLED_GAMEMODES:
|
||||
gamemode = gamemode.split()[0]
|
||||
gamemode, _ = complete_match(gamemode, var.GAME_MODES.keys())
|
||||
gamemode, _ = complete_match(gamemode, var.GAME_MODES.keys() - var.DISABLED_GAMEMODES)
|
||||
if not gamemode:
|
||||
cli.notice(nick, messages["invalid_mode_no_list"].format(rest))
|
||||
return
|
||||
@ -9711,8 +9713,8 @@ if botconfig.DEBUG_MODE or botconfig.ALLOWED_NORMAL_MODE_COMMANDS:
|
||||
args = args.strip()
|
||||
|
||||
if not args:
|
||||
return messages["available_mode_setters"] + ", ".join(var.GAME_MODES.keys())
|
||||
elif args in var.GAME_MODES.keys():
|
||||
return messages["available_mode_setters"] + ", ".join(var.GAME_MODES.keys() - var.DISABLED_GAMEMODES)
|
||||
elif args in var.GAME_MODES.keys() and args not in var.DISABLED_GAMEMODES:
|
||||
return var.GAME_MODES[args][0].__doc__ or messages["setter_no_doc"].format(args)
|
||||
else:
|
||||
return messages["setter_not_found"].format(args)
|
||||
|
Loading…
Reference in New Issue
Block a user