Add !switchserver command

This commit is contained in:
Giuseppe Guerra 2017-08-02 01:36:37 +02:00
parent 1e6ee91685
commit 9f647d5f9e
3 changed files with 29 additions and 0 deletions

View File

@ -821,6 +821,27 @@ def multiplayer(fro, chan, message):
except: except:
raise raise
def switchServer(fro, chan, message):
# Get target user ID
target = message[0]
newServer = message[1]
targetUserID = userUtils.getIDSafe(target)
userID = userUtils.getID(fro)
# Make sure the user exists
if not targetUserID:
return "{}: user not found".format(target)
# Connect the user to the end server
userToken = glob.tokens.getTokenFromUserID(userID, ignoreIRC=True, _all=False)
userToken.enqueue(serverPackets.switchServer(newServer))
# Disconnect the user from the origin server
# userToken.kick()
return "{} has been connected to {}".format(target, newServer)
""" """
Commands list Commands list
@ -961,6 +982,11 @@ commands = [
"privileges": privileges.ADMIN_MANAGE_SERVERS, # TODO: replace with admin tournament privilege "privileges": privileges.ADMIN_MANAGE_SERVERS, # TODO: replace with admin tournament privilege
"syntax": "<subcommand>", "syntax": "<subcommand>",
"callback": multiplayer "callback": multiplayer
}, {
"trigger": "!switchserver",
"privileges": privileges.ADMIN_MANAGE_SERVERS,
"syntax": "<username> <server_address>",
"callback": switchServer
} }
# #
# "trigger": "!acc", # "trigger": "!acc",

View File

@ -78,5 +78,6 @@ server_userSilenced = 94
server_userPresenceBundle = 96 server_userPresenceBundle = 96
client_userPanelRequest = 97 client_userPanelRequest = 97
client_tournamentMatchInfoRequest = 93 client_tournamentMatchInfoRequest = 93
server_switchServer = 107
client_tournamentJoinMatchChannel = 108 client_tournamentJoinMatchChannel = 108
client_tournamentLeaveMatchChannel = 109 client_tournamentLeaveMatchChannel = 109

View File

@ -264,6 +264,8 @@ def playerFailed(slotID):
def matchTransferHost(): def matchTransferHost():
return packetHelper.buildPacket(packetIDs.server_matchTransferHost) return packetHelper.buildPacket(packetIDs.server_matchTransferHost)
def switchServer(address):
return packetHelper.buildPacket(packetIDs.server_switchServer, [[address, dataTypes.STRING]])
""" Other packets """ """ Other packets """
def notification(message): def notification(message):