コード例 #1
0
        public override void handle(EzyArray data)
        {
            int      pluginId     = data.get <int>(0);
            EzyArray commandData  = data.get <EzyArray>(1);
            String   cmd          = commandData.get <String>(0);
            EzyData  responseData = commandData.get <EzyData>(1, null);

            EzyPlugin plugin = client.getPluginById(pluginId);

            if (plugin == null)
            {
                logger.info("receive message when has not joined plugin yet");
                return;
            }
            EzyPluginDataHandler dataHandler = plugin.getDataHandler(cmd);

            if (dataHandler != null)
            {
                dataHandler.handle(plugin, responseData);
            }
            else
            {
                logger.warn("plugin: " + plugin.getName() + " has no handler for command: " + cmd);
            }
        }
コード例 #2
0
 public EzyPlugin getPluginById(int pluginId)
 {
     if (zone != null)
     {
         EzyPluginManager pluginManager = zone.getPluginManager();
         EzyPlugin        plugin        = pluginManager.getPluginById(pluginId);
         return(plugin);
     }
     return(null);
 }
コード例 #3
0
        public EzyPlugin getPluginByName(String pluginName)
        {
            EzyPlugin plugin = null;

            if (pluginsByName.ContainsKey(pluginName))
            {
                plugin = pluginsByName[pluginName];
            }
            return(plugin);
        }
コード例 #4
0
        public EzyPlugin getPluginById(int pluginId)
        {
            EzyPlugin plugin = null;

            if (pluginsById.ContainsKey(pluginId))
            {
                plugin = pluginsById[pluginId];
            }
            return(plugin);
        }
コード例 #5
0
        public EzyPlugin getPlugin()
        {
            if (pluginList.Count == 0)
            {
                throw new ArgumentException("has no plugin in zone: " + zoneName);
            }
            EzyPlugin plugin = pluginList[0];

            return(plugin);
        }
コード例 #6
0
        public override void handle(EzyArray data)
        {
            EzyZone          zone          = client.getZone();
            EzyPluginManager pluginManager = zone.getPluginManager();
            EzyPlugin        plugin        = newPlugin(zone, data);

            pluginManager.addPlugin(plugin);
            postHandle(plugin, data);
            logger.info("access plugin: " + plugin.getName() + " successfully");
        }
コード例 #7
0
        public EzyPlugin removePlugin(int pluginId)
        {
            EzyPlugin plugin = null;

            if (pluginsById.ContainsKey(pluginId))
            {
                plugin = pluginsById[pluginId];
                pluginsById.Remove(pluginId);
                pluginsByName.Remove(plugin.getName());
                pluginList.Remove(plugin);
            }
            return(plugin);
        }
コード例 #8
0
 public void addPlugin(EzyPlugin plugin)
 {
     this.pluginList.Add(plugin);
     this.pluginsById[plugin.getId()]     = plugin;
     this.pluginsByName[plugin.getName()] = plugin;
 }
 public void handle(EzyPlugin plugin, EzyData data)
 {
     process(plugin, (D)data);
 }
コード例 #10
0
 protected abstract void process(EzyPlugin plugin, D data);
コード例 #11
0
 protected virtual void postHandle(EzyPlugin plugin, EzyArray data)
 {
 }
コード例 #12
0
    protected override void process(EzyPlugin plugin, EzyObject data)
    {
        var result = data.get <int>("result");

        spinResponseEvent?.Invoke(result);
    }
コード例 #13
0
 protected override void postHandle(EzyPlugin plugin, EzyArray data)
 {
     logger.debug("Completed setting up socket client!");
     socketSetupCompletedEvent?.Invoke();
 }