示例#1
0
        /// <summary> Unhooks IRC events so they are no longer handled. </summary>
        public void Unhook()
        {
            if (!hookedEvents)
            {
                return;
            }
            hookedEvents = false;
            userMap.Clear();

            OnPlayerActionEvent.Unregister(HandlePlayerAction);
            OnShuttingDownEvent.Unregister(HandleShutdown);
            OnGroupLoadEvent.Unregister(HandleGroupLoad);

            OnChatEvent.Unregister(HandleChat);
            OnChatSysEvent.Unregister(HandleChatSys);
            OnChatFromEvent.Unregister(HandleChatFrom);

            // Regster events for incoming
            bot.connection.Listener.OnNick              -= Listener_OnNick;
            bot.connection.Listener.OnRegistered        -= Listener_OnRegistered;
            bot.connection.Listener.OnAction            -= Listener_OnAction;
            bot.connection.Listener.OnPublic            -= Listener_OnPublic;
            bot.connection.Listener.OnPrivate           -= Listener_OnPrivate;
            bot.connection.Listener.OnError             -= Listener_OnError;
            bot.connection.Listener.OnQuit              -= Listener_OnQuit;
            bot.connection.Listener.OnJoin              -= Listener_OnJoin;
            bot.connection.Listener.OnPart              -= Listener_OnPart;
            bot.connection.Listener.OnDisconnected      -= Listener_OnDisconnected;
            bot.connection.Listener.OnChannelModeChange -= Listener_OnChannelModeChange;
            bot.connection.Listener.OnNames             -= Listener_OnNames;
            bot.connection.Listener.OnKick              -= Listener_OnKick;
            bot.connection.Listener.OnKill              -= Listener_OnKill;
            bot.connection.Listener.OnPrivateNotice     -= Listener_OnPrivateNotice;
        }
示例#2
0
        /// <summary> Hooks IRC events so they are handled. </summary>
        public void Hook()
        {
            if (hookedEvents)
            {
                return;
            }
            hookedEvents = true;

            OnPlayerActionEvent.Register(HandlePlayerAction, Priority.Low);
            OnShuttingDownEvent.Register(HandleShutdown, Priority.Low);
            OnGroupLoadEvent.Register(HandleGroupLoad, Priority.Low);

            OnChatEvent.Register(HandleChat, Priority.Low);
            OnChatSysEvent.Register(HandleChatSys, Priority.Low);
            OnChatFromEvent.Register(HandleChatFrom, Priority.Low);

            // Regster events for incoming
            bot.connection.Listener.OnNick              += Listener_OnNick;
            bot.connection.Listener.OnRegistered        += Listener_OnRegistered;
            bot.connection.Listener.OnAction            += Listener_OnAction;
            bot.connection.Listener.OnPublic            += Listener_OnPublic;
            bot.connection.Listener.OnPrivate           += Listener_OnPrivate;
            bot.connection.Listener.OnError             += Listener_OnError;
            bot.connection.Listener.OnQuit              += Listener_OnQuit;
            bot.connection.Listener.OnJoin              += Listener_OnJoin;
            bot.connection.Listener.OnPart              += Listener_OnPart;
            bot.connection.Listener.OnDisconnected      += Listener_OnDisconnected;
            bot.connection.Listener.OnChannelModeChange += Listener_OnChannelModeChange;
            bot.connection.Listener.OnNames             += Listener_OnNames;
            bot.connection.Listener.OnKick              += Listener_OnKick;
            bot.connection.Listener.OnKill              += Listener_OnKill;
            bot.connection.Listener.OnPrivateNotice     += Listener_OnPrivateNotice;
        }
示例#3
0
        public override void Unload(bool shutdown)
        {
            OnPlayerConnectEvent.Unregister(ConnectHandler.HandleConnect);
            OnPlayerCommandEvent.Unregister(ChatHandler.HandleCommand);
            OnPlayerConnectingEvent.Unregister(ConnectingHandler.HandleConnecting);

            OnJoinedLevelEvent.Unregister(MiscHandlers.HandleOnJoinedLevel);
            OnPlayerMoveEvent.Unregister(MiscHandlers.HandlePlayerMove);
            OnPlayerClickEvent.Unregister(MiscHandlers.HandlePlayerClick);

            OnEcoTransactionEvent.Unregister(EcoHandlers.HandleEcoTransaction);
            OnModActionEvent.Unregister(ModActionHandler.HandleModAction);
            OnGroupLoadEvent.Unregister(MiscHandlers.HandleGroupLoad);

            Server.Background.Cancel(clearTask);
        }
示例#4
0
        public override void Load(bool startup)
        {
            OnPlayerConnectEvent.Register(ConnectHandler.HandleConnect, Priority.Critical);
            OnPlayerCommandEvent.Register(ChatHandler.HandleCommand, Priority.Critical);
            OnPlayerConnectingEvent.Register(ConnectingHandler.HandleConnecting, Priority.Critical);

            OnJoinedLevelEvent.Register(MiscHandlers.HandleOnJoinedLevel, Priority.Critical);
            OnPlayerMoveEvent.Register(MiscHandlers.HandlePlayerMove, Priority.Critical);
            OnPlayerClickEvent.Register(MiscHandlers.HandlePlayerClick, Priority.Critical);

            OnEcoTransactionEvent.Register(EcoHandlers.HandleEcoTransaction, Priority.Critical);
            OnModActionEvent.Register(ModActionHandler.HandleModAction, Priority.Critical);
            OnGroupLoadEvent.Register(MiscHandlers.HandleGroupLoad, Priority.Critical);

            clearTask = Server.Background.QueueRepeat(IPThrottler.CleanupTask, null,
                                                      TimeSpan.FromMinutes(10));
        }