public void SendTimeCommand(string mac, string time, string buffer, CommandTypes type) { TimeCommand tc = new TimeCommand(type, time, buffer); //NetworkCommand nc = new NetworkCommand(type, time, buffer); nu.DirectMessage(tc.ToJson(), mac); }
private static void AJula_OnMessage(object sender, Telegram.Bot.Args.MessageEventArgs e) { Console.WriteLine($"От {e.Message.Chat.Id}:{e.Message.Text}"); ICommand command; switch (e.Message.Text.ToLower()) { case null: return; case "привет": command = new HelloCommand(); command.Execute(e.Message); break; case "время": command = new TimeCommand(); command.Execute(e.Message); break; case "погода": command = new WeatherCommand(); command.Execute(e.Message); break; case "курс": command = new CurrencyCommand(); command.Execute(e.Message); break; case "создание напоминания": Bot.Flag = true; break; case "газета": command = new NewsCommand(); command.Execute(e.Message); break; case "почта": command = new EmailCommand(e.Message.Chat.Id); command.Execute(e.Message); break; default: Bot.AssistantJula.SendTextMessageAsync ( chatId: e.Message.Chat, text: "Я вас не поняла", replyMarkup: KeyboardTemplates.mainKeyboard ).ConfigureAwait(false); break; } if (Bot.Flag) { command = new ReminderCommand(); command.Execute(e.Message); } }
public void update() { while (_timeline.Count > 0 && _timer.getElapsedTime() > _timeline.First.Value.time) //解析所有已到时的计数器 { TimeCommand command = _timeline.First.Value; _timeline.RemoveFirst(); if (command.type.Equals("Enemy_Out")) { RhodesGame.Instance.battle.actorMgr.createEnemy(command.resource); } } //todo //更新费用 //更新全局buff }
/*public void ReceiveCommand(NetworkCommand nc) * { * switch(nc.Type) * { * case NetworkCommand.CommandTypes.KillKey: * // Disconnects client from server * nt.CloseConnection(); * break; * case NetworkCommand.CommandTypes.StartTime: * // Starts time and session * // nc.Message = time nc.Value = buffer * StartTimeCmd(nc.Message, nc.Value); * break; * case NetworkCommand.CommandTypes.PauseTime: * // Pauses session * // nc.Message = time * PauseTimeCmd(nc.Message); * break; * case NetworkCommand.CommandTypes.StopTime: * // Stops session * nt.Sim.TM.StopTime(); * break; * case NetworkCommand.CommandTypes.KeepAlive: * // Restarts KeepAlive thread on client side * nt.RestartKeepAliveThread(); * break; * case NetworkCommand.CommandTypes.SimBookingInfoUpdate: * // Updates booking info with next scheduled session * // 1 = mac, 2 = next reservation name, 3 = next reservation time, 4 = start time (long), 5 = force update (bool) * // nc.Message = split string of above values * // 0 = nextReservationName, 1 = nextReservationTime, 2 = startTime (long), 3 = forceUpdate (bool) * string[] msg = nc.Message.Split('~'); * OnNextBookingUpdateEvent(new NextBookingUpdatedEventArgs(nc.MacAddress, msg[0], msg[1], long.Parse(msg[2]), bool.Parse(msg[3]))); * break; * case NetworkCommand.CommandTypes.SimInfoUpdate: * // Updates sim nickname and/or model * // nc.Message = nickname nc.Value = model * OnSimInfoUpdateEvent(new SimInfoUpdateEventArgs(nc.Message, nc.Value)); * break; * default: * // Catch-all * break; * } * }*/ public void ReceiveCommand(MessageInterface m) { switch (m.Type) { case "KillKey": nt.CloseConnection(); break; case "TimeCommand": TimeCommand tc = (TimeCommand)m; switch (tc.SubType) { case "StartTime": StartTimeCmd(tc.Time, tc.Buffer); break; case "PauseTime": PauseTimeCmd(tc.Time); break; case "StopTime": nt.Sim.TM.StopTime(); break; } break; case "Ping": nt.RestartKeepAliveThread(); break; case "BookingInfoUpdate": BookingInfoUpdate biu = (BookingInfoUpdate)m; OnNextBookingUpdateEvent(new NextBookingUpdatedEventArgs("mac", biu.DisplayName, biu.Time, biu.StartTime, biu.ForceUpdate)); break; case "SimInfoUpdate": SimInfoUpdate siu = (SimInfoUpdate)m; OnSimInfoUpdateEvent(new SimInfoUpdateEventArgs(siu.NickName, siu.Model)); break; default: // catch-all break; } }
public void Execute(TimeCommand _) { if (Connection == null) { Console.WriteLine("There is no connection to server!"); return; } var request = new Commands.Command() { CommandType = CommandType.TimeRequest }; Connection.Send(request); var response = Connection.Receive().Deserialize <TextCommand>(); Console.WriteLine(response.Text); }
private static void DestroyFrameWorkEvent(int lv) { if (Schedule.mIns != null) { Schedule.mIns.Destroy(); } if (GameSceneCtr.mIns != null) { GameSceneCtr.mIns.Destroy(); } if (GameUIControl.mIns != null) { GameUIControl.mIns.Destroy(); } if (KObjectPool.mIns != null) { KObjectPool.mIns.Clear(); } if (GameSyncCtr.mIns != null) { GameSyncCtr.mIns.EndSync(); } FrameCommand.Destroy(); WaitTaskCommand.Destroy(); TimeCommand.Destroy(); FrameworkAttRegister.DestroyAttEvent(MainLoopEvent.Start, typeof(WaitTaskCommand), "PreLoad"); FrameworkAttRegister.DestroyAttEvent(MainLoopEvent.Start, typeof(TimeCommand), "PreLoad"); FrameworkAttRegister.DestroyAttEvent(MainLoopEvent.Start, typeof(FrameCommand), "PreLoad"); FrameworkAttRegister.DestroyAttEvent(MainLoopEvent.Start, typeof(BundlePathConvert), "PreLoad"); FrameworkAttRegister.DestroyAttEvent(MainLoopEvent.Start, typeof(GenericParams), "Preload"); FrameworkAttRegister.DestroyAttEvent(MainLoopEvent.Start, typeof(SimpleParams), "Preload"); FrameworkAttRegister.DestroyAttEvent(MainLoopEvent.OnDestroy, typeof(FrameWorkConfig), "DestroyFrameWorkEvent"); }
static void Main(string[] args) { string url = "irc.chat.twitch.tv"; int port = 80; string user = "******"; string oAuthToken = System.IO.File.ReadAllText(@"token.txt"); // token.txt must be in the same folder as EXE string channel = "lobosjr"; //Set up one IrcClient, only one is required it allows better cooldown managerment and traffic will //never cause this code to run slower then any twitch cool down for bots. TwitchClientFactory icf = new TwitchClientFactory(); ITwitchClient client = icf.create(url, port, user, oAuthToken, channel, 600, new OperationRequestEventRaiser(), new PrivMessageEventRaiser(), new WhisperMessageEventRaiser()); client.DefaultMessageHandler += (o, e) => { Console.WriteLine(string.Format("System: {0}", e.Raw)); }; //Set up Legacy Item -> IEquipment converter. LegacyItemEquipmentConverter liec = new LegacyItemEquipmentConverter(); //Set up Equipment repository, if legacy then this will load all items from old files and convert them //into IEquipment in memory. IEquipmentRepository equipmentRepository = LegacyEquipmentRepository .getInstance(liec, LegacyEquipmentRepository.LEGACY_ITEM_BRIDGE_FILE_PATH, LegacyEquipmentRepository.LEGACY_ITEM_PREFIX_FILE_PATH); //Set up Player Repository, Factory and default ILevelObservers ILevelObserver levelUpNotifier = new LevelupNotifier(client); PlayerFactory pf = new PlayerFactory(3, 20, levelUpNotifier); ILevelObserver classChoiceNotifier = new ClassChoiceNotifier(client, pf, 3); pf.GetCurrentDefaultObservers().Add(classChoiceNotifier); IPlayerRepository playerRepo = LegacyPlayerRepository.getInstance(3, 20, pf, equipmentRepository, LegacyPlayerRepository.LEGACY_USER_COINS_FILE_PATH, LegacyPlayerRepository.LEGACY_USER_XP_FILE_PATH, LegacyPlayerRepository.LEGACY_USER_CLASS_FILE_PATH, "players.json"); //Set up Adventure repository. IAdventureRepository adventureRepository = LegacyAdventureRepository .getInstance(LegacyAdventureRepository.LEGACY_DUNGEON_BRIDGE_FILE_PATH, LegacyAdventureRepository.LEGACY_DUNGEON_FILE_PATH_PREFIX, equipmentRepository); //Set up Adventure manager who's Run() func should be used to run adventures on a daemon thread IAdventureManager adventureManager = new AdventureManager(client, 3); new Thread(() => { Thread.CurrentThread.Name = "Adventure Manager"; Thread.CurrentThread.IsBackground = true; adventureManager.Run(); }).Start(); //Set up Party Pool, this keeps track of current parties. IPartyPool partyPool = new PartyPool(client); //Set up Group finder, use the current adventure managers queue. Decide party size capacity for // group finder. GroupFinderFactory gff = new GroupFinderFactory(); IGroupFinder groupFinder = gff.Create(partyPool, 3, adventureRepository, adventureManager); //Set up FutureTask Registry which will keep track of time based operations FutureTaskRegistry futureTaskRegistry = new FutureTaskRegistry(); //Set up Custom Command Factory and Repository for the Command Manager allowing //for saved custom commands to be used aswell as providing capability for new //custom commands to be created from chat(broadcaster/mod only). CustomCommandFactory ccf = new CustomCommandFactory(); CustomCommandRepository ccr = new CustomCommandRepository(); CommandManager commandManager = new CommandManager(client, ccf, ccr); //Initialise all commands to be added to the command manager, seperated by //the source of the request, either PRVMSG or WHISPER. #region Initialisation of Commands #region General Commands UptimeCommand uptime = new UptimeCommand(); Command <IPrivRequest> broadcasting = new BroadcastingFlagCommand(user, playerRepo, pf, uptime, client, futureTaskRegistry, 1, 3, 2, TimeSpan.FromMinutes(30)); Command <IPrivRequest> time = new TimeCommand(); Command <IPrivRequest> playlist = new PlaylistCommand("http://open.spotify.com/user/1251282601/playlist/2j1FVSjJ4zdJiqGQgXgW3t"); Command <IPrivRequest> opinion = new OpinionCommand(); Command <IPrivRequest> pun = new PunCommand(); Command <IPrivRequest> quote = new QuoteCommand(); Command <IPrivRequest> raffle = new RaffleCommand(client, 5, futureTaskRegistry); #endregion #region RPG Commands #region General Command <IWhisperRequest> stats = new StatsCommand(pf, playerRepo); Command <IWhisperRequest> inventory = new InventoryCommand(pf, playerRepo); Command <IWhisperRequest> item = new ItemCommand(equipmentRepository, pf, playerRepo); Command <IWhisperRequest> equip = new EquipCommand(equipmentRepository, pf, playerRepo); Command <IWhisperRequest> unequip = new UnequipCommand(equipmentRepository, pf, playerRepo); Command <IWhisperRequest> shop = new ShopCommand(); Command <IWhisperRequest> classChoice = new ClassChoice(pf, playerRepo, 3); Command <IWhisperRequest> gloat = new GloatCommand(client, pf, playerRepo); Command <IWhisperRequest> respec = new RespecCommand(pf, playerRepo); Command <IWhisperRequest> daily = new DailyCommand(pf, playerRepo); Command <IWhisperRequest> queue = new QueueCommand(groupFinder, pf, playerRepo); Command <IWhisperRequest> leaveQueue = new LeaveQueueCommand(groupFinder, pf, playerRepo); Command <IWhisperRequest> queueTime = new QueueTimeCommand(groupFinder, pf, playerRepo); #endregion #region Party Commands Command <IWhisperRequest> createParty = new CreatePartyCommand(partyPool, pf, playerRepo); Command <IWhisperRequest> pendingInvite = new PendingInvite(partyPool, pf, playerRepo); Command <IWhisperRequest> leaveParty = new LeavePartyCommand(pf, playerRepo); #region Party Leader Commands Command <IWhisperRequest> partyAdd = new AddPartyCommand(client, pf, playerRepo); Command <IWhisperRequest> partyKick = new KickPartyCommand(client, pf, playerRepo); Command <IWhisperRequest> partyStart = new StartPartyCommand(groupFinder, pf, playerRepo); Command <IWhisperRequest> partyPromote = new PromotePartyCommand(client, pf, playerRepo); #endregion #endregion #region Broadcaster only Command <IWhisperRequest> addPlayerXp = new AddPlayerXP(pf, playerRepo); Command <IWhisperRequest> addPlayerCoin = new AddPlayerCoin(pf, playerRepo); Command <IWhisperRequest> setPlayerLevel = new SetPlayerLevel(pf, playerRepo); #endregion #endregion #endregion commandManager.AddAll(uptime, broadcasting, time, playlist, opinion, pun, quote, raffle); commandManager.AddAll(stats, inventory, item, equip, unequip, shop, classChoice, gloat, respec, daily, queue, leaveQueue, queueTime, createParty, pendingInvite, leaveParty, partyAdd, partyKick, partyStart, partyPromote, addPlayerXp, addPlayerCoin, setPlayerLevel); //Provide Handles for events raised by client, multiple handles can be added //allow for parsing of PRVMSG chat for mirroring certain messages. #region Client Event Handling client.AddOperationHandler += commandManager.Handle; client.CancelOperationHandler += commandManager.Handle; client.DeleteOperationHandler += commandManager.Handle; client.EditOperationHandler += commandManager.Handle; client.InfoOperationHandler += commandManager.Handle; client.PrivHandler += (o, e) => { Console.WriteLine(string.Format("{0}: {1}", e.User, e.Message)); }; client.PrivRequestHandler += commandManager.Handle; client.WhisperHandler += (o, e) => { Console.WriteLine(string.Format("Whisper {0}: {1}", e.User, e.Message)); }; client.WhisperRequestHandler += commandManager.Handle; #endregion //new thread for sending messages back to twitch server. new Thread(() => { Thread.CurrentThread.Name = "Twitch Client"; Thread.CurrentThread.IsBackground = true; client.Run(); }).Start(); futureTaskRegistry.Run(); }