예제 #1
0
        private void OnPrivateMessage(PrivateMessageEvent e)
        {
            if (!this.ListeningBehavior.HasFlag(ListeningBehavior.PrivateMessage))
            {
                return;
            }
            if (e.Message.Length == 0 || !e.Incoming)
            {
                return;
            }

            if (this.CommandPrefixes.Contains(e.Message[0]))
            {
                var player = e.Player;
                if (player == null)
                {
                    return;
                }

                var cmd    = new ParsedRequest(e.Message.Substring(1));
                var source = new PlayerInvokeSource(player, PlayerInvokeOrigin.PrivateMessage,
                                                    msg => Chat.Of(this.BotBits).PrivateMessage(player, msg));

                new CommandEvent(source, cmd)
                .RaiseIn(this.BotBits);
            }
        }
예제 #2
0
        private void OnChat(ChatEvent e)
        {
            if (!this.ListeningBehavior.HasFlag(ListeningBehavior.Chat))
            {
                return;
            }
            if (e.Player == Players.Of(this.BotBits).OwnPlayer)
            {
                return;
            }
            if (e.Text.Length == 0)
            {
                return;
            }

            if (this.CommandPrefixes.Contains(e.Text[0]))
            {
                var request = new ParsedRequest(e.Text.Substring(1));
                var source  = new PlayerInvokeSource(e.Player, PlayerInvokeOrigin.Chat,
                                                     msg => Chat.Of(this.BotBits).Say(msg));

                new CommandEvent(source, request)
                .RaiseIn(this.BotBits);
            }
        }