Files
NGECore2/scripts/commands/server.py
T

84 lines
3.0 KiB
Python

import sys
from engine.resources.scene import Point3D
from resources.datatables import GalaxyStatus
from services.sui.SUIService import MessageBoxType
from services.sui.SUIWindow import Trigger
from java.util import Vector
import main.NGECore
def setup():
return
def run(core, actor, target, commandString):
core.scriptService.callScript("scripts/commands/", "server", "serverCommand", core, actor);
return
def serverCommand (core, owner):
actor = owner.getSlottedObject('ghost')
window = core.suiService.createSUIWindow('Script.listBox', owner, owner, 0)
window.setProperty('bg.caption.lblTitle:Text', 'ProjectSWG')
window.setProperty('Prompt.lblPrompt:Text', 'Server Commands')
window.setProperty('btnOk:visible', 'True')
window.setProperty('btnCancel:visible', 'True')
window.setProperty('btnOk:Text', '@ok')
window.setProperty('btnCancel:Text', '@cancel')
returnList = Vector()
returnList.add('List.lstList:SelectedRow')
window.addHandler(0, '', Trigger.TRIGGER_OK, returnList, serverCommandCallback)
window.addListBoxMenuItem('Lock Server', 0)
window.addListBoxMenuItem('Unlock Server', 1)
window.addListBoxMenuItem('Shutdown Server (15 Minute Countdown)', 2)
window.addListBoxMenuItem('Stop Server (10 Seconds)', 3)
window.addListBoxMenuItem('Active Connections', 4)
core.suiService.openSUIWindow(window)
def serverCommandCallback(owner, window, eventType, returnList):
if returnList.size()==0:
owner.sendSystemMessage('NULL', 0)
return
if returnList.get(0)=='0':
lockedHandler(owner)
return
if returnList.get(0)=='1':
onlineHandler(owner)
return
if returnList.get(0)=='2':
shutdownHandler(owner)
return
if returnList.get(0)=='3':
stopHandler(owner)
return
if returnList.get(0)=='4':
connectionHandler(owner)
return
def lockedHandler(owner):
core = main.NGECore.getInstance()
core.setGalaxyStatus(GalaxyStatus.Locked)
owner.sendSystemMessage(' \\#FE2EF7 [GM] \\#FFFFFF Server lockServer: Command completed successfully. Server is now in Locked Status.', 0)
return
def onlineHandler(owner):
core = main.NGECore.getInstance()
core.setGalaxyStatus(GalaxyStatus.Online)
owner.sendSystemMessage(' \\#FE2EF7 [GM] \\#FFFFFF Server unlockServer: Command completed successfully. Server is now in Online Status.', 0)
return
def shutdownHandler(owner):
core = main.NGECore.getInstance()
core.initiateShutdown()
owner.sendSystemMessage(' \\#FE2EF7 [GM] \\#FFFFFF Server shutdown: Command completed successfully. Server shutdown initiated.', 0)
return
def stopHandler(owner):
core = main.NGECore.getInstance()
core.initiateStop()
owner.sendSystemMessage(' \\#FE2EF7 [GM] \\#FFFFFF Server stop: Command completed successfully. Emergency server shutdown initiated.', 0)
return
def connectionHandler(owner):
core = main.NGECore.getInstance()
clients = str(core.getActiveZoneClients())
owner.sendSystemMessage(' \\#FE2EF7 [GM] \\#FFFFFF Active Connections: Command completed successfully.', 0)
owner.sendSystemMessage('There are currently ' + clients + ' Characters connected to the Galaxy.', 0)
return