コード例 #1
0
        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);
        }