public bool ProcessUniversalPacketCommand(UniversalPacket universalPacket, ClientWorkObject client, AsynchronousSocketListener server) { bool sentClientData = false; string[] commandArgs = ((string[])JsonConvert.DeserializeObject <string[]>(universalPacket.MessageData.Data)); //Process plugins UniversalPlugin plugin = server.GetPlugin(commandArgs[0]); if (plugin != null) { sentClientData = plugin.core.Invoke(client, commandArgs); server.serverPluginLogger.AddToLog(ILogger.Levels.INFO, "Client [" + client.clientTracker.userID + "] has used command [" + plugin.core.Name + "."); } //Processes default commands if (!sentClientData) { foreach (IUniversalCommand universalCommand in UniversalCommand.GetDefaultCommands()) { if (universalCommand.GetNamespace().ToLower() == commandArgs[0].ToLower()) { bool tmpbool = universalCommand.Invoke(commandArgs, universalPacket, client); server.serverPluginLogger.AddToLog(ILogger.Levels.INFO, "Client [" + client.clientTracker.userID + "] has used command [" + universalCommand.GetNamespace() + "."); if (tmpbool == true) { sentClientData = true; return(tmpbool); } } } } return(sentClientData); }
public bool Initialize(string pluginDataDirectory, UniversalPlugin baseClass) { universalAPI = baseClass; ServerAPI.Log.AddToLog(ILogger.Levels.INFO, Yellow("Running Universaldatabase by Moonbyte Corporation, Version 1.3.6.0")); //TO-DO: Add dynamic plugin version here userDirectories = Path.Combine(pluginDataDirectory, "Users"); globalSettingDirectories = Path.Combine(pluginDataDirectory, "GlobalSettings"); adminFileDirectory = Path.Combine(pluginDataDirectory, "Admins.ini"); if (!Directory.Exists(userDirectories)) { Directory.CreateDirectory(userDirectories); } if (!Directory.Exists(globalSettingDirectories)) { Directory.CreateDirectory(globalSettingDirectories); } if (!File.Exists(adminFileDirectory)) { File.Create(adminFileDirectory).Close(); } return(true); }
public bool Initialize(string PluginDataDirectory, UniversalPlugin BaseClass) { if (!Directory.Exists(PluginDataDirectory)) { Directory.CreateDirectory(PluginDataDirectory); } return(true); }
public List <UniversalPlugin> LoadPlugins(string PluginDirectory) { returnPlugins = new List <UniversalPlugin>(); string pluginDataDirectory = Path.Combine(PluginDirectory, "Data"); ILogger.AddWhitespace(); if (!Directory.Exists(pluginDataDirectory)) { Directory.CreateDirectory(pluginDataDirectory); } if (Directory.Exists(PluginDirectory)) { string[] files = Directory.GetFiles(PluginDirectory); foreach (string file in files) { if (file.EndsWith(".dll")) { Assembly.LoadFile(Path.GetFullPath(file)); } } } else { Directory.CreateDirectory(PluginDirectory); } Type interfaceType = typeof(IUniversalPlugin); Type[] types = AppDomain.CurrentDomain.GetAssemblies().SelectMany(a => a.GetTypes()).Where(p => interfaceType.IsAssignableFrom(p) && p.IsClass).ToArray(); foreach (Type type in types) { try { IUniversalPlugin plugin = (IUniversalPlugin)Activator.CreateInstance(type); UniversalPlugin pluginInstance = new UniversalPlugin(plugin); pluginInstance.core = plugin; ILogger.AddToLog(ILogger.Levels.INFO, "Initializing [" + pluginInstance.core.Name + "]"); pluginInstance.core.SetUniversalPluginAPI(pluginInstance); pluginInstance.core.Initialize(Path.Combine(pluginDataDirectory, pluginInstance.core.Name), pluginInstance); returnPlugins.Add(pluginInstance); ILogger.AddToLog(ILogger.Levels.INFO, "Plugin [" + pluginInstance.core.Name + "] Fully loaded!"); } catch (Exception e) { //Tried to load the assembly instance } } ILogger.AddWhitespace(); return(returnPlugins); }
public bool Initialize(string PluginDataDirectory, UniversalPlugin BaseClass) { if (!Directory.Exists(PluginDataDirectory)) { Directory.CreateDirectory(PluginDataDirectory); } BaseClass.EventManager.OnBeforeClientRequest += (obj, args) => { args.CancelRequest = Moonbyte.UniversalServer.Core.Model.Utility.MoonbyteCancelRequest.Cancel; }; return(true); }
public void SetUniversalPluginAPI(UniversalPlugin Plugin) { ServerAPI = Plugin; }