# # _____ _____ ____ _____ _____ ____ _____ # | __| | \ | | | \| __| # | | | | | | | | | | | | | | | __| # |_____|_____|____/ |_|_|_|_____|____/|_____| # _____ _____ _____ _____ _____ __ _____ # | | | | | __| | | | __| # | --| | | | | |__ | | | |__| __| # |_____|_____|_|___|_____|_____|_____|_____| # # SmartFoxServer2X Admin Console Scripts # # (c) 2012-2016 gotoAndPlay() # @author Marco Lapi # # Version 2.x # # Python Imports import types import sys # # This global variable allows to lock the Console so that it can't be misused # __CONSOLE_LOCK = False # Java Imports import java from com.smartfoxserver.v2.entities.data import * __scripts = [ {'name':'version()', 'doc':'Shows the Console extension version'}, {'name':'reloadScripts()', 'doc':'Reload the dynamic server scripts'}, {'name':'execute()', 'doc':'Launches the last loaded script again'}, {'name':'files(path)', 'doc':'Shows the files at the specified path'}, {'name':'controller(id)', 'doc':'Obtain one of the controllers from its id. 0=System, 1=Extension, 2=Smasher'}, {'name':'zones()', 'doc':'List of active zones'} ] __shortcuts = [ {'name':'ESC', 'doc':'Clears current command'}, {'name':'UP ARROW', 'doc':'Previous command in history'}, {'name':'DOWN ARROW', 'doc':'Next command in history'}, {'name':'CTRL + SPACE', 'doc':'Show code hinting'}, {'name':'CTRL + BACKSPACE', 'doc':'Clear console text'} ] grid = None if sfs.isGrid(): from com.smartfoxserver.grid import SFSGrid grid = SFSGrid.manager() _2XGlobals_['grid'] = grid def help(): """Shows a list of useful global objects""" text = "" for (key, value) in _2XGlobals_.items(): if value != None: cl = str(value.getClass()) text += "" + key + "\t\t\t" + cl.split(".")[-1] + "\n" text += "\nextras()\t\tFor more custom function calls" text += "\nshortcuts()\tFor keyboard shortcuts details\n" return text def shortcuts(): """Shows list of useful keyboard shortcuts""" return __showList__(__shortcuts) def extras(): """Shows list of useful methods""" return __showList__(__scripts) # -- == -- == -- == -- == -- == -- == -- == -- == -- == -- == -- == -- == -- == -- == -- == -- == -- == -- == -- == -- == -- == -- == # Useful methods # (can be added dynamically) # -- == -- == -- == -- == -- == -- == -- == -- == -- == -- == -- == -- == -- == -- == -- == -- == -- == -- == -- == -- == -- == -- == def version(): return __parent__.VER def controller(id): from java.lang import Byte bb = Byte(id) return eng.controllerManager.getControllerById(bb) def reloadScripts(): __parent__.init() return "[[ Reload success! ]]" def files(path='.'): import os return os.listdir(path) def zones(): return zm.getZoneList() # -- == -- == -- == -- == -- == -- == -- == -- == -- == -- == -- == -- == -- == -- == -- == -- == -- == -- == -- == -- == -- == -- == # Private methods # -- == -- == -- == -- == -- == -- == -- == -- == -- == -- == -- == -- == -- == -- == -- == -- == -- == -- == -- == -- == -- == -- == def __showList__(someList): text = "" for item in someList: text += "" + item['name'] + "" text += ":" + __getSpacer__(item['name']) + item['doc'] + "\n" return text def __hints__(obj, target): if obj == None: return # # Generate all hints excluding private members # hints = None try: hints = [item for item in dir(obj)] except: pass # No hints available if hints == None or len(hints) == 0: hints = [] # Send hint list from com.smartfoxserver.v2.entities.data import SFSObject sfso = SFSObject() sfso.putUtfStringArray('h', hints) return sfso def __getSpacer__(inputStr): DEFAULT_SPACES = 25 spacer = " " nSpaces = DEFAULT_SPACES - len(inputStr) if nSpaces > 0: spacer = " " * nSpaces return spacer