コード例 #1
0
ファイル: JohnConnor.cs プロジェクト: kamilion/lord-helix
 // Receive a command from a channel
 void OnChannelCommand(ChannelMessageEventArgs channelMessageArgs)
 {
     if (debugLogChannelMessages) UnityEngine.Debug.Log("IpcIrc:JohnConnor:  RECEIVE PUBLIC COMMAND ON " + channelMessageArgs.Channel + ": " + channelMessageArgs.From + ": " + channelMessageArgs.Message);
     if (debugEchoChannelMessages) IpcIrc.Instance.Message("IpcIrc:JohnConnor:  RECEIVE PUBLIC COMMAND ON " + channelMessageArgs.Channel + ": " + channelMessageArgs.From + ": " + channelMessageArgs.Message);
     string triggerPhrase = "I'm not your ";
     if (channelMessageArgs.Message.StartsWith(triggerPhrase)) {
         string theCommand = channelMessageArgs.Message.Substring(triggerPhrase.Length);
         // react according to the incoming IRC message
         switch (theCommand) {
             case "guy, friend.":
                 IpcIrc.Instance.Message(".friend");
                 break;
             case "friend, pal.":
                 IpcIrc.Instance.Message(".pal");
                 break;
             case "pal, buddy.":
                 IpcIrc.Instance.Message(".buddy");
                 break;
             case "buddy, guy.":
                 IpcIrc.Instance.Message(".ping");
                 break;
             default:
                 IpcIrc.Instance.Message(".pong");
                 break;
         }
     }
 }
コード例 #2
0
ファイル: twitch_handler.cs プロジェクト: aidenstorey/ggj16
    void OnChannelMessage(ChannelMessageEventArgs channelMessageArgs)
    {
        switch (channelMessageArgs.Message.ToLower())
        {
        case "up":
        case "down":
        case "left":
        case "right":
        case "start":
        case "select":
            twitch_output.GetInstance().AddName(channelMessageArgs.From.ToUpper());
            twitch_output.GetInstance().AddInput(channelMessageArgs.Message.ToUpper());
            GameManager.GetGameManager().current_state.HandleInput(channelMessageArgs.Message.ToLower());
            break;

        case ":a":
            twitch_output.GetInstance().AddName(channelMessageArgs.From.ToUpper());
            twitch_output.GetInstance().AddInput("A");
            GameManager.GetGameManager().current_state.HandleInput("a");
            break;

        case ":b":
            twitch_output.GetInstance().AddName(channelMessageArgs.From.ToUpper());
            twitch_output.GetInstance().AddInput("B");
            GameManager.GetGameManager().current_state.HandleInput("b");
            break;
        }
    }
コード例 #3
0
ファイル: Form1.cs プロジェクト: kamgitor/04_MIDICrossApp
        void inDevScan_ChannelMessageReceived(object sender, ChannelMessageEventArgs e)
        {
            ChannelMessageBuilder builder = new ChannelMessageBuilder();

            if ((e.Message.Command == ChannelCommand.NoteOn) ||
                (e.Message.Command == ChannelCommand.NoteOff))
            {
                /*
                 * NoteList.Items.Add("nuta");
                 * if (NoteList.Items.Count >= 20)
                 *  NoteList.Clear();
                 */

                NoteVal.Text = e.Message.Data1.ToString();

                if (e.Message.Command == ChannelCommand.NoteOn)
                {
                    builder.Command = ChannelCommand.NoteOn;
                }

                if (e.Message.Command == ChannelCommand.NoteOff)
                {
                    builder.Command = ChannelCommand.NoteOff;
                }

                builder.MidiChannel = e.Message.MidiChannel;
                builder.Data1       = e.Message.Data1;  // note val
                builder.Data2       = e.Message.Data2;  // velocity
                builder.Build();

                outDevice.Send(builder.Result);
            }
        }
コード例 #4
0
 public void OnChannelMessagePlayed(object sender, ChannelMessageEventArgs e)
 {
     if (DeviceID != -1)
     {
         Device.Send(e.Message);
     }
 }
コード例 #5
0
 public User(ChannelMessageEventArgs msg)
 {
     _username = msg.From;
     _nick     = msg.Badge.DisplayName;
     _sub      = msg.Badge.sub;
     _mod      = msg.Badge.mod;
 }
コード例 #6
0
        private void InternalNote(Object o, ChannelMessageEventArgs args)
        {
            ChannelMessageBuilder builder = new ChannelMessageBuilder(args.Message);

            NoteEvent noteEvent = new NoteEvent {
                note     = builder.Data1,
                origNote = builder.Data1,
                trackNum = sequencer.GetTrackNum(args.MidiTrack),
                track    = args.MidiTrack,
            };

            if (sequencer.GetTrackNum(noteEvent.track) == this.TrackNum)
            {
                noteEvent.note = NoteHelper.ApplyOctaveShift(noteEvent.note, this.OctaveNum);

                ChannelCommand cmd = args.Message.Command;
                int            vel = builder.Data2;
                if ((cmd == ChannelCommand.NoteOff) || (cmd == ChannelCommand.NoteOn && vel == 0))
                {
                    this.ProcessOffNote(noteEvent);
                }
                if ((cmd == ChannelCommand.NoteOn) && vel > 0)
                {
                    this.ProcessOnNote(noteEvent);
                }
            }
        }
コード例 #7
0
 protected void RaiseMessageReceivedEvent(object sender, ChannelMessageEventArgs e)
 {
     if (MessageReceived != null)
     {
         MessageReceived(sender, e);
     }
 }
コード例 #8
0
        private void HandleChannelMessageReceived(object sender, ChannelMessageEventArgs e) // Event Handler for MIDI messages
        {
            // context.Post(delegate(object dummy)
            // {

            /* System.Diagnostics.Debug.WriteLine(
             *   e.Message.Command.ToString() + '\t' + '\t' +
             *   e.Message.MidiChannel.ToString() + '\t' +
             *   e.Message.Data1.ToString() + '\t' +
             *   e.Message.Data2.ToString());*/
            // }, null);                                  // Writes all channel messages to output console
            outmess.Note = e.Message.Data1; // Insert channel messages to variable struct: Note
            outmess.Mess = e.Message.Data2; // Velocity
            if (e.Message.Command.Equals(n))
            {
                outmess.isCC = false; // set false if the output message is a NoteOn message
            }
            else
            {
                outmess.isCC = true; // True if output message is a Control Change (only two types of message possible)
            }
            ControlSender = true;
            sortOutmess(outmess); // use messages to change parameters
            ControlSender = false;
            if (inForm != null)
            {
                inForm.ChangeStatusText();
            }
        }
コード例 #9
0
        private static void HandleChannelMessageReceived(object sender, ChannelMessageEventArgs e)
        {
            System.Diagnostics.Debug.WriteLine(string.Format("{0}, {1}, {2}, {3}, {4}, {5}", e.Message.Command.ToString(),
                                                             e.Message.Data1, e.Message.Data2, e.Message.MessageType.ToString(), e.Message.MidiChannel, e.Message.Status));

            switch (e.Message.Command)
            {
            case ChannelCommand.NoteOn:
                foreach (VirtualPiano inst in _pianoInstances)
                {
                    inst.handlePianoDown(e.Message.Data1);
                }
                break;

            case ChannelCommand.NoteOff:
                foreach (VirtualPiano inst in _pianoInstances)
                {
                    inst.handlePianoUp(e.Message.Data1);
                }
                break;

            default:
                break;
            }
        }
コード例 #10
0
 private void Indev_ChannelMessageReceived(object sender, ChannelMessageEventArgs e)
 {
     if (isMapping)
     {
         ((MixerInput)mappingList.SelectedValue).mapping = new MixerInput.MidiMapping(e.Message.Command, e.Message.Data1);
         stopMapping();
     }
     else
     {
         foreach (MixerInput inpt in inputList)
         {
             if (inpt.mapping != null && inpt.mapping.Command == e.Message.Command && inpt.mapping.Data1 == e.Message.Data1)
             {
                 long id;
                 inpt.input.GetInputId(out id);
                 mixEffectBlock1.SetInt(_BMDSwitcherMixEffectBlockPropertyId.bmdSwitcherMixEffectBlockPropertyIdPreviewInput, id);
             }
         }
     }
     if (e.Message.Command == ChannelCommand.Controller && e.Message.Data1 == 0)
     {
         float val = ((float)e.Message.Data2) / 127f;
         if (invertSlider)
         {
             val = 1.0f - val;
         }
         if (val == 1.0f)
         {
             invertSlider = !invertSlider;
         }
         mixEffectBlock1.SetFloat(_BMDSwitcherMixEffectBlockPropertyId.bmdSwitcherMixEffectBlockPropertyIdTransitionPosition, val);
     }
 }
コード例 #11
0
        private void OnChannelMessageReceived(object sender, ChannelMessageEventArgs e)
        {
            string logMessage = null;
            Note   n          = (Note)(e.Message.Data1 % 12);
            int    octave     = e.Message.Data1 / 12;

            switch (e.Message.Command)
            {
            case ChannelCommand.NoteOn:
                MidiState.Current.SetValue(e.Message.MidiChannel, n, octave, e.Message.Data2);
                NoteChanged?.Invoke(e.Message.MidiChannel, n, octave, e.Message.Data2);
                break;

            case ChannelCommand.NoteOff:
                MidiState.Current.SetValue(e.Message.MidiChannel, n, octave, 0);
                NoteChanged?.Invoke(e.Message.MidiChannel, n, octave, e.Message.Data2);
                break;

            case ChannelCommand.ChannelPressure:
                Console.ForegroundColor = ConsoleColor.DarkBlue;
                logMessage = $"Aftertouch> {e.Message.Data1}, CH#{e.Message.MidiChannel}).";
                ChannelPressureChanged?.Invoke(e.Message.MidiChannel, e.Message.Data1);
                break;

            default:
                Console.ForegroundColor = ConsoleColor.DarkGray;
                logMessage = $"CH#{e.Message.MidiChannel} Command: {e.Message.Command}, Data1: {e.Message.Data1}, Data2: {e.Message.Data2}).";
                break;
            }
            if (logMessage != null)
            {
                Console.WriteLine(logMessage);
            }
        }
コード例 #12
0
        public static void HandleEmoji(ChannelMessageEventArgs msg)
        {
            if (!VoteCommands.started)
            {
                return;
                //ReplyAsync($"@{Context.User.Nick} голосование не начато!");
            }

            if (!VoteCommands.EmodjiVote)
            {
                return;
                //ReplyAsync($"@{Context.User.Nick} Во время голосования смайлами это недоступно");
            }
            if (SubOnly)
            {
                if (!msg.Badge.sub)
                {
                    return;
                }
            }

            var arr = msg.Message.Split(' ');

            if (VoteCommands.EmojiVariants.ContainsKey(arr[0]))
            {
                if (VoteCommands.EmojiVotes.ContainsKey(msg.From))
                {
                    VoteCommands.EmojiVotes[msg.From] = arr[0];
                }
                else
                {
                    VoteCommands.EmojiVotes.Add(msg.From, arr[0]);
                }
            }
        }
コード例 #13
0
        private void inputDevice_ChannelMessageReceived(object sender, ChannelMessageEventArgs e)
        {
            this.log.Verbose("Recv {4} cmd {0}, chn: {1}  data1: {2}  data2: {3}",
                             e.Message.Command,
                             e.Message.MidiChannel,
                             e.Message.Data1,
                             e.Message.Data2,
                             Name);

            this.midiMessages.OnNext(e.Message);

            try
            {
                var key = Tuple.Create(e.Message.MidiChannel, e.Message.Command, e.Message.Data1);

                Action <ChannelMessage> action;
                if (this.messageMapper.TryGetValue(key, out action))
                {
                    action.Invoke(e.Message);
                }
            }
            catch (Exception ex)
            {
                log.Error(ex, "Failed to invoke action");
            }
        }
コード例 #14
0
        void _chat_ChannelMessageEvent(Vha.Net.Chat chat, ChannelMessageEventArgs e)
        {
            Channel channel = this.GetChannel(e.Channel);

            // Check if channel is muted
            if (channel != null && (channel.Flags & ChannelFlags.Muted) != 0)
            {
                return;
            }
            // Check for ignores
            if (this.Ignores.Contains(e.Character))
            {
                return;
            }
            // Descramble
            string message = e.Message;

            if (e.Message.StartsWith("~"))
            {
                MDB.Message parsedMessage = null;
                try { parsedMessage = MDB.Parser.Decode(e.Message); }
                catch (Exception) { } // Errors are fine here, if it's not a valid message, we'll display the original
                if (parsedMessage != null && !string.IsNullOrEmpty(parsedMessage.Value))
                {
                    message = parsedMessage.Value;
                }
            }
            // Dispatch message
            MessageSource source = new MessageSource(MessageType.Channel, e.Channel, e.Character, e.Character == this.Character);

            this.Write(source, this.GetChannelClass(e.Channel), message);
        }
コード例 #15
0
 private void storeMidiEvent(object sender, ChannelMessageEventArgs e)
 {
     if (seq.IsGamedStarted())
     {
         midiEvents.Add(new MidiEventStorage(e, Time.time - seq.GetStartTime()));
     }
 }
コード例 #16
0
 private void HandleChannelMessageReceived(object sender, ChannelMessageEventArgs e)
 {
     if (OnMidiValueChanged != null)
     {
         OnMidiValueChanged(mName, e.Message.Command.ToString(), e.Message.MidiChannel, e.Message.Data1, e.Message.Data2);
     }
 }
コード例 #17
0
        private void HandleChannelMessageReceived(object sender, ChannelMessageEventArgs e)
        {
            int resultLow         = 0;
            int resultMidle       = 0;
            int resultHigh        = 0;
            int bitMaskLowestByte = 0x0000FF;
            int bitMaskMidleByte  = 0x00FF00;
            int bitMaskHighByte   = 0xFF0000;

            resultLow   = e.Message.Message & bitMaskLowestByte;
            resultMidle = (e.Message.Message & bitMaskMidleByte) >> 8;
            resultHigh  = (e.Message.Message & bitMaskHighByte) >> 16;
            //Console.WriteLine(resultLow.ToString("X") + " " + resultMidle.ToString("X") + " " + resultHigh.ToString("X"));

            switch (resultMidle)
            {
            case 0x00:
                masterVolumeSlider.Value = prozentConversion(resultHigh, 0x7F);
                break;

            case 0x44:

                break;

            default:

                break;
            }
        }
コード例 #18
0
        private void MidiIn_ChannelMessageReceived(object sender, ChannelMessageEventArgs e)
        {
            if (e.Message.MidiChannel == MidiChannel)
            {
                if (e.Message.MessageType == MessageType.Channel && e.Message.Command == ChannelCommand.NoteOn)
                {
                    lock (MidiIn)
                    {
                        if (NoteReceiver == null)
                        {
                            NoteReceiver = new NoteTimecodeReceiver();
                        }

                        NoteReceiver.AddNote(e.Message.Data1);

                        if (NoteReceiver.StartBeatNumber != null && !TabitCurrentlyPlaying)
                        {
                            TimecodeTransmissionStarted(this, new TransmissionStartedEventArgs(NoteReceiver.StartBeatNumber.Value));
                            TabitCurrentlyPlaying = true;
                            Timer.Start();
                        }
                    }
                }
            }
        }
コード例 #19
0
    }                                                                      // Subscribe

    // Receive a message from a channel and dispatch it
    void OnChannelMessage(ChannelMessageEventArgs channelMessageArgs)
    {
        if (channelMessageArgs.Message.StartsWith(triggerPhrase))
        {
            OnChannelEvent(channelMessageArgs);
        }
    }
コード例 #20
0
        /// <summary>
        /// Channel messages (notes)
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void HandleChannelMessageReceived(object sender, ChannelMessageEventArgs e)
        {
            if (closing)
            {
                return;
            }

            /*
             * context.Post(delegate (object dummy)
             * {
             *
             *  // Display notes
             *  channelListBox.Items.Add(
             *      e.Message.Command.ToString() + '\t' + '\t' +
             *      e.Message.MidiChannel.ToString() + '\t' +
             *      e.Message.Data1.ToString() + '\t' +
             *      e.Message.Data2.ToString()
             *      );
             *
             *  channelListBox.SelectedIndex = channelListBox.Items.Count - 1;
             *
             *  outDevice.Send(e.Message);
             *
             * }, null);
             */
            outDevice.Send(e.Message);
        }
コード例 #21
0
        private void HandleChannelMessageReceived(object sender, ChannelMessageEventArgs e)
        {
            //context.Post(delegate(object dummy)
            //{

            textBox1.Text += "message = " + e.Message.Command + "; ID" + e.Message.Data1 + "\r\n";

            int PanelID = e.Message.Data1;

            for (int x = 0; x < 4; x++)
            {
                for (int y = 0; y < 4; y++)
                {
                    if (Convert.ToInt32(panele[x, y].Tag) == PanelID)
                    {
                        //if (e.Message.Command == ChannelCommand.NoteOn)
                        //    ZapalPanel(panele[x, y], Color.Orange);
                        //else
                        //    ZapalPanel(panele[x, y], Color.Black);

                        if (e.Message.Command == ChannelCommand.NoteOff)
                        {
                            panel13_MouseClick(panele[x, y], null);
                        }
                    }
                }
            }
            //}, null);


            //SprawdzDroge_Click(null, null);
        }
コード例 #22
0
 private void HandleChannelMessagePlayed(object sender, ChannelMessageEventArgs e)
 {
     if (closing)
     {
         return;
     }
     outDevice.Send(e.Message);
 }
コード例 #23
0
        private void HandleChannelMessage(object sender, ChannelMessageEventArgs e)
        {
            var channel = 1;//e.Message.MidiChannel;
            var cc      = e.Message.Data1;
            var value   = e.Message.Data2;

            MessageReadyEvent?.Invoke(channel, cc, value);
        }
コード例 #24
0
ファイル: Form1.cs プロジェクト: cschladetsch/SoundBoard
        private void HandleChannelMessageReceived(object sender, ChannelMessageEventArgs e)
        {
            _context.Post(delegate
            {
                channelListBox.Items.Add(
                    e.Message.Command.ToString() + '\t' + '\t' +
                    e.Message.MidiChannel + '\t' +
                    e.Message.Data1 + '\t' +
                    e.Message.Data2);
                channelListBox.TopIndex = channelListBox.Items.Count - 1;

                // first keyboard key (lower C)
                if (e.Message.Data1 == 48 && e.Message.Command == ChannelCommand.NoteOn)
                {
                    ReloadMapping();
                    return;
                }

                // just testing
                if (e.Message.Command == ChannelCommand.PitchWheel)
                {
                    Console.WriteLine($"SpeedRatio: {e.Message.Data2} {e.Message.Data1}");
                    return;
                }

                // first dial on set of 8 dials on top right of AKAI MPL mini
                if (e.Message.Data1 == 1)
                {
                    _volume             = e.Message.Data2 / 127.0f;
                    _mediaPlayer.Volume = _volume;
                    return;
                }

                if (e.Message.Data1 == 2)
                {
                    _volume = e.Message.Data2 / 127.0f;
                    _mediaPlayer.Pause();
                    _mediaPlayer.SpeedRatio = e.Message.Data2 / 127.0f;
                    _mediaPlayer.Play();

                    return;
                }

                if (e.Message.Command != ChannelCommand.NoteOff)
                {
                    return;
                }

                if (_sounds.TryGetValue(e.Message.Data1.ToString(), out var soundFile))
                {
                    var docs    = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
                    var effects = Path.Combine(docs, "SoundBoard");
                    var sfx     = Path.Combine(effects, soundFile);
                    Play(sfx);
                }

                channelListBox.SelectedIndex = channelListBox.Items.Count - 1;
            }, null);
コード例 #25
0
 public CommandContext(ChannelMessageEventArgs msg)
 {
     Channel = new Channel()
     {
         ChannelID = msg.Channel
     };
     User    = new User(msg);
     Message = msg.Message;
 }
コード例 #26
0
 public override bool OnChannelMessage(object sender, ChannelMessageEventArgs e)
 {
     if (((IrcClient)sender).Address.EndsWith(".DCC") || (sender == this.ArenaConnection && ((IrcClient)sender).CaseMappingComparer.Equals(e.Channel.Name, this.ArenaChannel) &&
                                                          ((IrcClient)sender).CaseMappingComparer.Equals(e.Sender.Nickname, this.ArenaNickname)))
     {
         this.RunArenaRegex((IrcClient)sender, e.Channel, e.Sender, e.Message);
     }
     return(base.OnChannelMessage(sender, e));
 }
コード例 #27
0
ファイル: Explorer.cs プロジェクト: fotijr/MetroDom
 private void SequenceChannelMessagePlayed(object sender, ChannelMessageEventArgs e)
 {
     // TODO: improve this
     // this stops both on AND off messages, so if channel is toggled mid-play, notes can hang
     if (_channels[e.Message.MidiChannel])
     {
         _outDevice.Send(e.Message);
     }
 }
コード例 #28
0
        void m_Sequencer_ChannelMessagePlayed(object sender, ChannelMessageEventArgs e)
        {
            /*if (closing)
             * {
             *  return;
             * }*/

            m_OutputDevice.Send(e.Message);
        }
コード例 #29
0
 private void OffPlayerMidiNote(Object o, ChannelMessageEventArgs e)
 {
     OffMidiNote?.Invoke(o, new NoteEvent {
         track    = e.MidiTrack,
         trackNum = GetTrackLutNum(e.MidiTrack),
         note     = ApplyOctaveShift(e.Message.Data1),
         origNote = e.Message.Data1,
     });
 }
コード例 #30
0
        public void ExecuteAction(ChannelMessageEventArgs e)
        {
            int pitch = e.Message.Data1;

            if (ActionMappings.ContainsKey(pitch))
            {
                ActionMappings[pitch](e);
            }
        }
コード例 #31
0
 public override bool OnChannelNotice(object sender, ChannelMessageEventArgs e)
 {
     if (!IsActiveChannel(e.Channel))
     {
         return(false);
     }
     this.SendCheck(string.Format("\u000315[\u000F{0}\u000315/\u000F{1}\u000315] {2}{3}\u00038:\u000F {4}", e.Channel, (sender as IrcClient).NetworkName, Colours.NicknameColour(e.Sender.Nickname), e.Sender.Nickname, e.Message), (IrcClient)sender, e.Channel);
     return(base.OnChannelNotice(sender, e));
 }
コード例 #32
0
 // Receive an event from a channel and dispatch it
 void OnChannelEvent(ChannelMessageEventArgs channelMessageArgs)
 {
     string theEvent = channelMessageArgs.Message.Substring(triggerPhrase.Length + 1);
     // The +1 consumes the implicit space after the trigger phrase!
     foreach (var item in myEventList) {
         if (theEvent.StartsWith(item.startsWith)) {
             item.triggerEvent.Invoke();
         }
     }
 }
コード例 #33
0
 public static void CreateNewUser(string username, ChannelMessageEventArgs command)
 {
     PokemonTrainer pt = new PokemonTrainer();
     pt.trainerLevel = 1;
     pt.wins = 0;
     pt.losses = 0;
     pt.pokemon = new List<Pokemon>();
     PokemonMaster.Instance.trainerList.Add(username, pt);
     SaveTrainerList();
     PokemonMaster.Instance.CheckForCommands(command);
 }
コード例 #34
0
    public void CheckForCommands(ChannelMessageEventArgs command)
    {
        if (enabled == false)
            return;
        if (awaitingRelease && currentOperator != command.From)
            return;
        if (awaitingChallenger && currentOperator == command.From && !command.Message.Contains("!battle"))
            return;
        if (!busy || awaitingRelease || awaitingChallenger)
            if (command.Message.StartsWith("!"))
                if (CheckForUser(command.From, command)) {
                    currentOperator = command.From;
                    if (command.Message.Contains("!pokemon")) {
                        ParsePokemon(command);
                    }
                    if (command.Message.Contains("!pokeball")) {
                        StartCoroutine(Pokeball(command, useMasterball));
                    }
                    if (command.Message.Contains("!trainer")) {
                        TwitchIrc.Instance.Message("Feature under construction. Please check back later to learn more about yourself!");
                    }
                    if (command.Message.Contains("!battle")) {
                        if (!awaitingChallenger) {
                            if (trainerList[command.From].pokemon.Count >= 1) {
                                combatantOne = command.From;
                                string[] s = command.Message.Split(' ');
                                if (s.Length == 2)
                                    if (trainerList[command.From].pokemon[Convert.ToInt16(s[1])].name != null)
                                        combatantOnePokemon = trainerList[command.From].pokemon[Convert.ToInt16(s[1])];
                                    else
                                        combatantOnePokemon = trainerList[command.From].pokemon[UnityEngine.Random.Range(0, trainerList[command.From].pokemon.Count - 1)];
                                awaitingChallenger = true;
                                TwitchIrc.Instance.Message(command.From + " has issued a challenge to all Trainers. Who will accept? (use !battle # to accept)");
                            }
                        }
                        else {
                            if (trainerList[command.From].pokemon.Count >= 1) {
                                combatantTwo = command.From;
                                string[] s = command.Message.Split(' ');
                                if (s.Length == 2)
                                    combatantTwoPokemon = trainerList[command.From].pokemon[Convert.ToInt16(s[1])];
                                else
                                    combatantTwoPokemon = trainerList[command.From].pokemon[UnityEngine.Random.Range(0, trainerList[command.From].pokemon.Count - 1)];

                                awaitingChallenger = false;
                                //StartCoroutine(Battle());
                            }
                        }
                    }
                    if (command.Message.Contains("!help")) {
                        TwitchIrc.Instance.Message("Commands available to play Pokemon are: !pokemon, !pokeball, !battle, and !trainer.");
                    }
                }
    }
コード例 #35
0
   //Receive username that has been left from channel 
   void OnChannelMessage(ChannelMessageEventArgs channelMessageArgs)
   {
      Debug.Log("MESSAGE: " + channelMessageArgs.From + ": " + channelMessageArgs.Message);

      var existingWatcher = _watchers.FirstOrDefault(w => w.Name == channelMessageArgs.From);
      if (existingWatcher == null)
      {
         Watcher anyFreeWatcher = _watchers.FirstOrDefault(w => String.IsNullOrEmpty(w.Name));
         if (anyFreeWatcher != null)
         {
            existingWatcher = anyFreeWatcher;
            existingWatcher.Name = channelMessageArgs.From;
         }
      }
      if (existingWatcher != null)
      {
         existingWatcher.Shout(channelMessageArgs.Message);
      }
   }
コード例 #36
0
ファイル: ShipGame.cs プロジェクト: KatalystGames/KatalystBot
    public void CheckForCommands(ChannelMessageEventArgs channelMessageArgs)
    {
        if (enabled == false)
            return;

        if (!busy) {
            if (channelMessageArgs.Message.StartsWith("!")) {
                if (channelMessageArgs.Message.Contains("!shipcreate")) {
                    CreateNewPlayer(channelMessageArgs.From);
                    return;
                }
                if (channelMessageArgs.Message.Contains("!shiptrade")) {
                    if (CheckForPlayer(channelMessageArgs.From))
                        TradeMission(channelMessageArgs.From);
                    return;
                }
                if (channelMessageArgs.Message.Contains("!shipbattle")) {
                    if (CheckForPlayer(channelMessageArgs.From))
                        BattleMission(channelMessageArgs.From);
                    return;
                }
                if (channelMessageArgs.Message.Contains("!shippirate")) {
                    TwitchIrc.Instance.Message("This feature currently under construction. Check back soon!");
                    return;
                }
                if (channelMessageArgs.Message.Contains("!shipupgrade")) {
                    if (CheckForPlayer(channelMessageArgs.From))
                        ParseUpgradeCommand(channelMessageArgs.From, channelMessageArgs.Message);
                    return;
                }
                if (channelMessageArgs.Message.Contains("!shiphelp")) {
                    if (CheckForPlayer(channelMessageArgs.From))
                        TwitchIrc.Instance.Message("Seven Seas' commands are: !shipcreate, !shipinfo, !shiptrade, !shipbattle, !shippirate, !shipupgrade [guns, hull, sails, crew]");
                    return;
                }
                if (channelMessageArgs.Message.Contains("!shipinfo")) {
                    if (CheckForPlayer(channelMessageArgs.From))
                        ShipInfo(channelMessageArgs.From);
                    return;
                }
            }
        }
    }
コード例 #37
0
ファイル: JohnConnor.cs プロジェクト: kamilion/lord-helix
 // Receive a message from a channel
 void OnChannelMessage(ChannelMessageEventArgs channelMessageArgs)
 {
     if (debugLogChannelMessages) UnityEngine.Debug.Log("IpcIrc:JohnConnor:  RECEIVE PUBLIC MESSAGE ON " + channelMessageArgs.Channel + ": " + channelMessageArgs.From + ": " + channelMessageArgs.Message);
     if (debugEchoChannelMessages) IpcIrc.Instance.Message("IpcIrc:JohnConnor:  RECEIVE PUBLIC MESSAGE ON " + channelMessageArgs.Channel + ": " + channelMessageArgs.From + ": " + channelMessageArgs.Message);
     if (channelMessageArgs.Message.StartsWith("I'm not your ")) {
         OnChannelCommand(channelMessageArgs);
     }
 }
コード例 #38
0
 private bool CheckForUser(string username, ChannelMessageEventArgs command)
 {
     if (trainerList.ContainsKey(username)) {
         Debug.Log(username + " found.");
         return true;
     }
     else {
         Debug.LogError("No key found for this user. Creating one.");
         PokemonUtils.CreateNewUser(username, command);
         return false;
     }
 }
コード例 #39
0
 private void ParsePokemon(ChannelMessageEventArgs command)
 {
     if (command.Message.Length == 8) {
         TwitchIrc.Instance.Message(PokemonUtils.GetUserPokemon(command.From));
     }
     else if (command.Message.Length == 10) {
         string[] commandArray = command.Message.Split(' ');
         TwitchIrc.Instance.Message(PokemonUtils.FormatPokemonInfo(trainerList[command.From].pokemon[Convert.ToInt16(commandArray[1]) - 1]));
     }
     else {
         string[] commandArray = command.Message.Split(' ');
         if (commandArray.Length >= 3 && awaitingRelease) {
             if (commandArray[1] == "release" || commandArray[1] == "Release") {
                 int index = Convert.ToInt16(commandArray[2]);
                 if (index == 0) {
                     awaitingRelease = false;
                     return;
                 }
                 SwapPokemon(command.From, recentlyCaught, index);
                 busy = false;
                 awaitingRelease = false;
             }
         }
     }
 }
コード例 #40
0
ファイル: IpcIrcUIPanel.cs プロジェクト: kamilion/lord-helix
 // Receive a message from a channel
 void OnChannelMessage(ChannelMessageEventArgs channelMessageArgs)
 {
     AppendAndScroll("<b>" + channelMessageArgs.Channel + ": " + channelMessageArgs.From + ":</b> " + channelMessageArgs.Message);
 }
コード例 #41
0
ファイル: TwitchOded.cs プロジェクト: SoundGuy/GGJ2016
    //Receive username that has been left from channel 
    void OnChannelMessage(ChannelMessageEventArgs channelMessageArgs)
    {
        Debug.Log("MESSAGE: " + channelMessageArgs.From + ": " + channelMessageArgs.Message);
        ChatText.text += "<b>" + channelMessageArgs.From + ":</b> " + channelMessageArgs.Message + "\n";


        if ((StarGameTimer > Time.time) || (EndGameTimer < Time.time))
        {
            // game isn't running.
            return;
        }

        bool left = findPlayerGroup(channelMessageArgs.From);


        Debug.Log("'" + channelMessageArgs.Message + "'");
        char c = channelMessageArgs.Message[0];
        if (c == ':')
            c = channelMessageArgs.Message[1];


        if (left) {
            LogLeftText.text += "<color=blue>" + channelMessageArgs.From + ":" + c
                +"</color>\n";
        }
        else {
            LogRightText.text += "<color=red>" + channelMessageArgs.From + ":" + c 
               + "</color>\n";
        }

        int hamletScore = 1;
        string[] words = channelMessageArgs.Message.Split(' ');
        MakeParticleText(left ? leftImage : rightImage, words[0]);

        if (hamlet.IsHamlet(words[0]))
        {
            MakeParticleHamlet(left ? leftImage : rightImage);
            hamletScore = 10;
        }

        /*
        string upperC = c.ToString().ToUpper(); 
        if (upperC != "R" && upperC != "P" && upperC !="S") {
            
        }*/


        switch  (c)
        {
            case 'r':
            case 'R':
                if (left)
                {
                    leftRock+= hamletScore;
                    MakeParticle(leftImage, LeftRockSprite);
                    
                }
                else
                {
                    rightRock+= hamletScore;
                    MakeParticle(rightImage, RightRockSprite);
                }
                break;
            case 'p':
            case 'P':
                if (left)
                {
                    leftPaper+= hamletScore;
                    MakeParticle(leftImage, LeftPaperSprite);
                }
                else
                {
                    rightPaper+= hamletScore;
                    MakeParticle(rightImage, RightPaperSprite);
                }
                break;
            case 's':
            case 'S':
                if (left)
                {
                    leftScissors+= hamletScore;
                    MakeParticle(leftImage, LeftScissorsSprite);
                }
                else
                {

                    rightScissors+= hamletScore;
                    MakeParticle(rightImage, RightScissorsSprite);
                }
                break;
            default:
                break;
        }

        rightRockText.text = rightRock.ToString();
        rightScissorsText.text = rightScissors.ToString();
        rightPaperText.text = rightPaper.ToString();
        leftRockText.text = leftRock.ToString();
        leftScissorsText.text = leftScissors.ToString();
        leftPaperText.text = leftPaper.ToString();

        Debug.Log(c + "  " + leftRock + "," + leftPaper + "," + leftScissors + " " + rightRock + "," + rightPaper + "," + rightScissors);

}
コード例 #42
0
 //Receive username that has been left from channel 
 void OnChannelMessage(ChannelMessageEventArgs channelMessageArgs)
 {
     ChatText.text += "<b>" + channelMessageArgs.From + ":</b> " + channelMessageArgs.Message + "\n";
     Debug.Log("MESSAGE: " + channelMessageArgs.From + ": " + channelMessageArgs.Message);
     twitchPlayerManager.chatReceived(channelMessageArgs.From, channelMessageArgs.Message);
 }
コード例 #43
0
    private void PrintChat(ChannelMessageEventArgs message)
    {
        if (chatBox.text.Length >= 5000) {
            if (message.Message.Length <= chatBox.text.Length)
                chatBox.text = chatBox.text.Remove(0, message.Message.Length);
            else
                chatBox.text = chatBox.text.Remove(0, 30);
        }

        if (alternateTextColor) {
            chatBox.text += "<color=#00ffffff><b><size=16>" + message.From + ":</size></b></color> " + message.Message + "\n";
            alternateTextColor = false;
        }
        else {
            chatBox.text += "<color=#ff9900ff><b><size=16>" + message.From + ":</size></b></color> " + message.Message + "\n";
            alternateTextColor = true;
        }
    }
コード例 #44
0
 // Receive a message from a channel and dispatch it
 void OnChannelMessage(ChannelMessageEventArgs channelMessageArgs)
 {
     if (channelMessageArgs.Message.StartsWith(triggerPhrase)) {
         OnChannelEvent(channelMessageArgs);
     }
 }
コード例 #45
0
 // Receive a message from a channel
 void OnChannelMessage(ChannelMessageEventArgs channelMessageArgs)
 {
     if (debugLogChannelMessages) UnityEngine.Debug.Log("IpcIrcDebug: MESSAGE ON " + channelMessageArgs.Channel + ": " + channelMessageArgs.From + ": " + channelMessageArgs.Message);
     if (debugEchoChannelMessages) IpcIrc.Instance.Message("IpcIrcDebug: MESSAGE ON " + channelMessageArgs.Channel + ": " + channelMessageArgs.From + ": " + channelMessageArgs.Message);
 }
コード例 #46
0
 private IEnumerator Pokeball(ChannelMessageEventArgs command, bool masterball)
 {
     busy = true;
     Pokemon p = GeneratePokemon();
     int trainerBonus = Mathf.FloorToInt(trainerList[command.From].trainerLevel / 2);
     TwitchIrc.Instance.Message(command.From + " throws a Pokeball at a " + p.name + ". They have a " + (int)((p.catchRate / 255f) * 100) + "% chance of catching it without a battle!");
     int random = UnityEngine.Random.Range(0, 255) + trainerBonus;
     if (masterball) random = 0;
     yield return new WaitForSeconds(5f);
     TwitchIrc.Instance.Message("The pokeball glows and shakes.");
     yield return new WaitForSeconds(5f);
     if (random <= p.catchRate) {
         recentlyCaught = p;
         if (trainerList[command.From].pokemon.Count >= 6) {
             //Too many pokemon, must release one to keep this new one.
             TwitchIrc.Instance.Message("You have too many pokemon currently. Please use !pokemon release # to replace it with this new " + p.name + " or !pokemon release 0 to release " + p.name + ". You have 30 seconds.");
             float timer = 30f;
             awaitingRelease = true;
             while (timer > 0f && awaitingRelease == true) {
                 timer -= Time.deltaTime;
                 Debug.Log((int)timer);
                 yield return null;
             }
             TwitchIrc.Instance.Message("You've released the " + recentlyCaught.name + ".");
             recentlyCaught = new Pokemon();
         }
         else {
             TwitchIrc.Instance.Message(command.From + " caught a " + p.name + "!");
             trainerList[command.From].pokemon.Add(p);
             PokemonUtils.SaveTrainerList();
             busy = false;
         }
     }
     //TODO Look into using the battle system to resolve this more fairly than just a random number generating the "damage" the pokemon took in battle
     else if ((p.hitpoints * 255 * 4) / ((UnityEngine.Random.Range(0, p.hitpoints) + 20) * 12) >= UnityEngine.Random.Range(0, 255)) {
         recentlyCaught = p;
         if (trainerList[command.From].pokemon.Count >= 6) {
             //Too many pokemon, must release one to keep this new one.
             TwitchIrc.Instance.Message("You have too many pokemon currently. Please use !pokemon release # to replace it with this new " + p.name + " or !pokemon release 0 to release " + p.name + ". You have 30 seconds.");
             awaitingRelease = true;
         }
         else {
             TwitchIrc.Instance.Message(command.From + " caught a " + p.name + "!");
             trainerList[command.From].pokemon.Add(p);
             PokemonUtils.SaveTrainerList();
             busy = false;
         }
     }
     else {
         TwitchIrc.Instance.Message("The " + p.name + " has escaped. Better luck next time.");
         busy = false;
     }
 }
コード例 #47
0
ファイル: Twitch.cs プロジェクト: GarthSmith/10kBot
 private void OnChannelMessage(ChannelMessageEventArgs channelMessageEventArgs)
 {
     // Announce
     if (MessageReceived != null)
     {
         MessageReceived(channelMessageEventArgs.From, channelMessageEventArgs.Message);
     }
 }
コード例 #48
0
    private void HandleChannelMessageReceived(object sender, ChannelMessageEventArgs e)
    {
        int data1 = e.Message.Data1;
        int data2 = e.Message.Data2;

        //Debug.Log(data1.ToString() + ", " + data2.ToString());

        if (data1 == 1) //... obsluga pokretla do nabijania combosow
        {
            if (up)
            {
                if (data2 > 90)
                {
                    up = false;
                    GameManager.Instance.IncreaseCombo();
                }
            }
            else if (!up)
            {
                if (data2 < 30)
                {
                    up = true;
                    GameManager.Instance.IncreaseCombo();
                }
            }
        }
        else //... obsluga klawiszy odpowiedzialnych za sterowanie maszynami
        {
            if (data1 == 60 && key01pressed == false)
            {
                key01pressed = true;
                GameManager.Instance.AddPressedKey(data1);
            }
            else if (data1 == 60 && key01pressed == true)
            {
                key01pressed = false;
            }

            if (data1 == 62 && key02pressed == false)
            {
                key02pressed = true;
                GameManager.Instance.AddPressedKey(data1);
            }
            else if (data1 == 62 && key02pressed == true)
            {
                key02pressed = false;
            }

            if (data1 == 64 && key03pressed == false)
            {
                key03pressed = true;
                GameManager.Instance.AddPressedKey(data1);
            }
            else if (data1 == 64 && key03pressed == true)
            {
                key03pressed = false;
            }

            if (data1 == 65 && key04pressed == false)
            {
                key04pressed = true;
                GameManager.Instance.AddPressedKey(data1);
            }
            else if (data1 == 65 && key04pressed == true)
            {
                key04pressed = false;
            }

            if (data1 == 67 && key05pressed == false)
            {
                key05pressed = true;
                GameManager.Instance.AddPressedKey(data1);
            }
            else if (data1 == 67 && key05pressed == true)
            {
                key05pressed = false;
            }
        }
    }
コード例 #49
0
 //Receive username that has been left from channel 
 void OnChannelMessage(ChannelMessageEventArgs channelMessageArgs)
 {
     ChatText.text += "<b>" + channelMessageArgs.From + ":</b> " + channelMessageArgs.Message + "\n";
     Debug.Log("MESSAGE: " + channelMessageArgs.From + ": " + channelMessageArgs.Message);
 }