Exemplo n.º 1
0
        public async Task <AbstractDownloadState?> GetDownloaderState(dynamic archiveINI, bool quickMode)
        {
            var general = archiveINI.General;

            if (general.modID != null && general.fileID != null && general.gameName != null)
            {
                var game = GameRegistry.GetByFuzzyName((string)general.gameName).Game;

                if (quickMode)
                {
                    return(new State
                    {
                        Game = GameRegistry.GetByFuzzyName((string)general.gameName).Game,
                        ModID = long.Parse(general.modID),
                        FileID = long.Parse(general.fileID),
                    });
                }

                var client = DownloadDispatcher.GetInstance <NexusDownloader>().Client ?? await NexusApiClient.Get();

                ModInfo info;
                try
                {
                    info = await client.GetModInfo(game, long.Parse((string)general.modID));
                }
                catch (Exception)
                {
                    return(new State
                    {
                        Game = GameRegistry.GetByFuzzyName((string)general.gameName).Game,
                        ModID = long.Parse(general.modID),
                        FileID = long.Parse(general.fileID),
                    });
                }

                try
                {
                    return(new State
                    {
                        Name = NexusApiUtils.FixupSummary(info.name),
                        Author = NexusApiUtils.FixupSummary(info.author),
                        Version = general.version ?? "0.0.0.0",
                        ImageURL = info.picture_url,
                        IsNSFW = info.contains_adult_content,
                        Description = NexusApiUtils.FixupSummary(info.summary),
                        Game = GameRegistry.GetByFuzzyName((string)general.gameName).Game,
                        ModID = long.Parse(general.modID),
                        FileID = long.Parse(general.fileID)
                    });
                }
                catch (FormatException)
                {
                    Utils.Log(
                        $"Cannot parse ModID/FileID from {(string)general.gameName} {(string)general.modID} {(string)general.fileID}");
                    throw;
                }
            }

            return(null);
        }
Exemplo n.º 2
0
        public async Task <NexusApiClient.GetModFilesResponse> GetModFiles(string GameName, long ModId)
        {
            Utils.Log($"Nexus Mod Files {GameName} {ModId}");

            var game   = GameRegistry.GetByFuzzyName(GameName).Game;
            var result = await SQL.GetModFiles(game, ModId);

            string method = "CACHED";

            if (result == null)
            {
                var api = await NexusApiClient.Get(Request.Headers["apikey"].FirstOrDefault());

                result = await api.GetModFiles(game, ModId, false);

                await SQL.AddNexusModFiles(game, ModId, DateTime.UtcNow, result);

                method = "NOT_CACHED";
                Interlocked.Increment(ref ForwardCount);
            }
            else
            {
                Interlocked.Increment(ref CachedCount);
            }
            Response.Headers.Add("x-cache-result", method);
            return(result);
        }
Exemplo n.º 3
0
            public override async Task <bool> Verify(Archive a)
            {
                try
                {
                    var gameMeta = GameRegistry.GetByMO2ArchiveName(GameName) ?? GameRegistry.GetByNexusName(GameName);
                    if (gameMeta == null)
                    {
                        return(false);
                    }

                    var game = gameMeta.Game;
                    if (!int.TryParse(ModID, out var modID))
                    {
                        return(false);
                    }

                    var client = await NexusApiClient.Get();

                    var modFiles = await client.GetModFiles(game, modID);

                    if (!ulong.TryParse(FileID, out var fileID))
                    {
                        return(false);
                    }

                    var found = modFiles.files
                                .FirstOrDefault(file => file.file_id == fileID && file.category_name != null);
                    return(found != null);
                }
                catch (Exception ex)
                {
                    Utils.Log($"{ModName} - {GameName} - {ModID} - {FileID} - Error getting Nexus download URL - {ex}");
                    return(false);
                }
            }
Exemplo n.º 4
0
 public void RemoveGame(GameRegistry gameRegistry)
 {
     _logger.LogInformation($"Removing Game with id: {gameRegistry.Name}.");
     _redisCacheClient.Db0.RemoveAsync(gameRegistry.Name).Wait();
     gameRegistry.GameState = GameStates.NoGame;
     SaveGameRegistryPersistent(gameRegistry, true).Wait();
 }
Exemplo n.º 5
0
 internal static void DisableQueuedGadgets()
 {
     Logger.Log("Unloading Gadgets...");
     foreach (GadgetInfo gadget in QueuedGadgets)
     {
         gadget.Gadget.Unload();
         LootTables.RemoveModEntries(gadget.Gadget.ModID);
         GadgetCoreAPI.RemoveModResources(gadget.Gadget.ModID);
         GadgetCoreAPI.UnregisterStatModifiers(gadget.Gadget.ModID);
         GadgetNetwork.UnregisterSyncVars(gadget.Gadget.ModID);
         PlanetRegistry.UnregisterGadget(gadget.Gadget.ModID);
         foreach (Registry reg in GameRegistry.ListAllRegistries())
         {
             reg.UnregisterGadget(gadget);
         }
     }
     Logger.Log("Done unloading Gadgets.");
     Logger.Log("Unpatching Gadgets...");
     foreach (GadgetInfo gadget in QueuedGadgets.ToList())
     {
         try
         {
             gadget.Gadget.HarmonyInstance.UnpatchAll(gadget.Mod.Name + "." + gadget.Attribute.Name + ".gadget");
         }
         catch (Exception e)
         {
             Logger.LogError("Exception Unpatching Gadget '" + gadget.Attribute.Name + "':" + Environment.NewLine + e.ToString());
         }
     }
     Logger.Log("Done patching Gadgets.");
     Logger.Log("Sorting Gadgets...");
     Gadgets.SortGadgets();
     Logger.Log("Done sorting Gadgets.");
     QueuedGadgets.Clear();
 }
Exemplo n.º 6
0
        public async Task <IActionResult> IngestNexusFile()
        {
            long totalRows = 0;

            var dataPath = @"nexus_export.json".RelativeTo(_settings.TempPath);

            var data = JsonConvert.DeserializeObject <NexusIngestHeader>(await dataPath.ReadAllTextAsync());

            foreach (var record in data.ModInfos)
            {
                await SQL.AddNexusModInfo(GameRegistry.GetByFuzzyName(record.Game).Game, record.ModId,
                                          record.LastCheckedUTC, record.Data);

                totalRows += 1;
            }

            foreach (var record in data.FileInfos)
            {
                await SQL.AddNexusFileInfo(GameRegistry.GetByFuzzyName(record.Game).Game, record.ModId,
                                           long.Parse(record.FileId),
                                           record.LastCheckedUTC, record.Data);

                totalRows += 1;
            }

            foreach (var record in data.ModFiles)
            {
                await SQL.AddNexusModFiles(GameRegistry.GetByFuzzyName(record.Game).Game, record.ModId,
                                           record.LastCheckedUTC, record.Data);

                totalRows += 1;
            }

            return(Ok(totalRows));
        }
        public async Task <AbstractDownloadState> GetDownloaderState(dynamic archiveINI)
        {
            var gameName = (string)archiveINI?.General?.gameName;
            var gameFile = (string)archiveINI?.General?.gameFile;

            if (gameFile == null || gameFile == null)
            {
                return(null);
            }

            var game = GameRegistry.GetByMO2ArchiveName(gameName);

            if (game == null)
            {
                return(null);
            }

            var path     = game.GameLocation();
            var filePath = Path.Combine(path, gameFile);

            if (!File.Exists(filePath))
            {
                return(null);
            }

            var hash = filePath.FileHashCached();

            return(new State
            {
                Game = GameRegistry.GetByMO2ArchiveName(gameName).Game,
                GameFile = gameFile,
                Hash = hash,
            });
        }
Exemplo n.º 8
0
 public ObstacleType(string desc, string name, params RequireWrapper[] reqs)
 {
     this.desc    = desc;
     requirements = reqs;
     this.name    = this.GetType().Name + name;
     GameRegistry.RegisterObstacle(this);
 }
Exemplo n.º 9
0
        private async Task <object> HandleGetFiles(dynamic arg)
        {
            Utils.Log($"{DateTime.Now} - Mod Files - {arg.GameName} {arg.ModID}");
            var api = await NexusApiClient.Get(Request.Headers["apikey"].FirstOrDefault());

            return(api.GetModFiles(GameRegistry.GetByNexusName((string)arg.GameName).Game, (int)arg.ModID).ToJSON());
        }
Exemplo n.º 10
0
        public async Task <ActionResult <NexusFileInfo> > GetModFile(string GameName, long ModId, long FileId)
        {
            try
            {
                var game   = GameRegistry.GetByFuzzyName(GameName).Game;
                var result = await _sql.GetModFile(game, ModId, FileId);

                string method = "CACHED";
                if (result == null)
                {
                    var api = await GetClient();

                    result = await api.GetModFile(game, ModId, FileId, false);

                    var date = result.uploaded_time;
                    date = date == default ? DateTime.UtcNow : date;
                    await _sql.AddNexusModFile(game, ModId, FileId, date, result);

                    method = "NOT_CACHED";
                    Interlocked.Increment(ref ForwardCount);
                }
                else
                {
                    Interlocked.Increment(ref CachedCount);
                }

                Response.Headers.Add("x-cache-result", method);
                return(result);
            }
            catch (Exception ex)
            {
                _logger.LogInformation("Unable to find mod file {GameName} {ModId}, {FileId}", GameName, ModId, FileId);
                return(NotFound());
            }
        }
Exemplo n.º 11
0
        public async Task <NexusApiClient.GetModFilesResponse> GetModFiles(string GameName, long ModId)
        {
            _logger.Log(LogLevel.Information, $"{GameName} {ModId}");
            var game   = GameRegistry.GetByFuzzyName(GameName).Game;
            var result = await _sql.GetModFiles(game, ModId);

            string method = "CACHED";

            if (result == null)
            {
                var api = await NexusApiClient.Get(Request.Headers["apikey"].FirstOrDefault());

                result = await api.GetModFiles(game, ModId, false);

                var date = result.files.Select(f => f.uploaded_time).OrderByDescending(o => o).FirstOrDefault();
                date = date == default ? DateTime.UtcNow : date;
                await _sql.AddNexusModFiles(game, ModId, date, result);

                method = "NOT_CACHED";
                Interlocked.Increment(ref ForwardCount);
            }
            else
            {
                Interlocked.Increment(ref CachedCount);
            }
            Response.Headers.Add("x-cache-result", method);
            return(result);
        }
Exemplo n.º 12
0
 public static void update()
 {
     foreach (Industry ind in Main.instance.player.builtItems)
     {
         GameObject go;
         enchantInvenList.TryGetValue(ind, out go);
         if (go != null)
         {
             go.transform.Find("Quantity").GetComponent <Text>().text = Main.AsCurrency(ind.quantityStored) + " / " + Main.AsCurrency(10000);
         }
         else
         {
             enchantIngredList.TryGetValue(ind, out go);
             if (go != null)
             {
                 //int v = (ind.quantityStored > int.MaxValue ? 999999999 : BigInteger.ToInt32(ind.quantityStored));
                 //ItemStack stack = new ItemStack(ind, v);
                 Enchantment e = GameRegistry.GetEnchantmentByItem(ind.industryItem);
                 go.transform.Find("Quantity").GetComponent <Text>().text = Main.AsCurrency(ind.quantityStored) + " / " + Main.AsCurrency(e.ingredientQuantity);
             }
         }
     }
     foreach (ItemStack stack in Main.instance.player.miscInventory)
     {
         GameObject go;
         enchantMiscInvenList.TryGetValue(stack, out go);
         Enchantment e = GameRegistry.GetEnchantmentByItem(stack.item);
         if (go != null && e != null)
         {
             go.transform.Find("Quantity").GetComponent <Text>().text = Main.AsCurrency(stack.stackSize) + " / " + Main.AsCurrency(e.ingredientQuantity);
         }
     }
 }
Exemplo n.º 13
0
        static void Main(string[] args)
        {
            GameRegistry.Initialize();
            Server room = new Server(44325, 0.02f);

            room.Start();
            while (true)
            {
                room.Update();

                if (Console.KeyAvailable)
                {
                    ConsoleKeyInfo key = Console.ReadKey(true);
                    switch (key.Key)
                    {
                    case ConsoleKey.F1:
                        room.Stop();
                        return;

                    default:
                        break;
                    }
                }
            }
        }
        public async Task <AbstractDownloadState?> GetDownloaderState(dynamic archiveINI, bool quickMode)
        {
            var gameName = (string?)archiveINI?.General?.gameName;
            var gameFile = (string?)archiveINI?.General?.gameFile;

            if (gameName == null || gameFile == null)
            {
                return(null);
            }

            if (!GameRegistry.TryGetByFuzzyName(gameName, out var game))
            {
                return(null);
            }

            var path     = game.TryGetGameLocation();
            var filePath = path?.Combine(gameFile);

            if (!(filePath?.Exists ?? false))
            {
                return(null);
            }

            var fp   = filePath.Value;
            var hash = await fp.FileHashCachedAsync();

            return(new State(game.InstalledVersion)
            {
                Game = game.Game,
                GameFile = (RelativePath)gameFile,
                Hash = hash
            });
        }
Exemplo n.º 15
0
        public async Task <ModInfo> GetModInfo(string GameName, long ModId)
        {
            var game   = GameRegistry.GetByFuzzyName(GameName).Game;
            var result = await _sql.GetNexusModInfoString(game, ModId);

            string method = "CACHED";

            if (result == null)
            {
                var api = await GetClient();

                result = await api.GetModInfo(game, ModId, false);

                await _sql.AddNexusModInfo(game, ModId, result.updated_time, result);


                method = "NOT_CACHED";
                Interlocked.Increment(ref ForwardCount);
            }
            else
            {
                Interlocked.Increment(ref CachedCount);
            }

            Response.Headers.Add("x-cache-result", method);
            return(result);
        }
Exemplo n.º 16
0
        public async Task <AbstractDownloadState> GetDownloaderState(dynamic archiveINI)
        {
            var general = archiveINI?.General;

            if (general.modID != null && general.fileID != null && general.gameName != null)
            {
                var name     = (string)general.gameName;
                var gameMeta = GameRegistry.GetByMO2ArchiveName(name);
                var game     = gameMeta != null?GameRegistry.GetByMO2ArchiveName(name).Game : GameRegistry.GetByNexusName(name).Game;

                var client = await NexusApiClient.Get();

                var info = await client.GetModInfo(game, general.modID);

                return(new State
                {
                    GameName = general.gameName,
                    FileID = general.fileID,
                    ModID = general.modID,
                    Version = general.version ?? "0.0.0.0",
                    Author = info.author,
                    UploadedBy = info.uploaded_by,
                    UploaderProfile = info.uploaded_users_profile_url,
                    ModName = info.name,
                    SlideShowPic = info.picture_url,
                    NexusURL = NexusApiUtils.GetModURL(game, info.mod_id),
                    Summary = info.summary,
                    Adult = info.contains_adult_content
                });
            }

            return(null);
        }
Exemplo n.º 17
0
 public static string ConvertGameName(string gameName)
 {
     if (Regex.IsMatch(gameName, @"^[^a-z\s]+\.[^a-z\s]+$"))
     {
         return(gameName);
     }
     return(GameRegistry.GetByMO2ArchiveName(gameName)?.NexusName ?? gameName.ToLower());
 }
Exemplo n.º 18
0
        void Start()
        {
            GameRegistry.AssignItemDatabase(this);

            /* Items are now created using the inspector, due to problems with WebGL builds.
             * items = new List<Item> ();
             * fillDatabase ();*/
        }
Exemplo n.º 19
0
        public QuestChallenge(SerializationInfo info, StreamingContext context)
        {
            string ID = info.GetString("quest_id");

            type = GameRegistry.GetObstacleByID(ID);
            //UnityEngine.Debug.Log("ID: " + ID + ", " + type);
            questBonus    = info.GetInt32("bonus");
            monsterHealth = info.GetInt32("monsterHealth");
        }
Exemplo n.º 20
0
 public Enchantment(string enchantName, Item ingredientHerb, int quantity, ItemEquipType restrictions, RequirementType satisfiesReq)
 {
     name                   = enchantName;
     ingredient             = ingredientHerb;
     ingredientQuantity     = quantity;
     enchantSlotRestriction = restrictions;
     reqTypes               = satisfiesReq;
     GameRegistry.RegisterEnchantment(this);
 }
Exemplo n.º 21
0
        public override Block GetBlock(int x, int y, int z)
        {
            var chunkInWorld = ChunkInWorld(x, y, z);
            var blockInChunk = BlockInChunk(x, y, z);

            return(LoadedChunks.TryGetValue(chunkInWorld, out Chunk chunk)
                ? GameRegistry.GetBlock(chunk.GetBlock(blockInChunk))
                : BlockRegistry.BlockAir);
        }
Exemplo n.º 22
0
        protected override async Task <ExitCode> Run()
        {
            var game = GameRegistry.GetByFuzzyName(GameName).Game;
            var p    = await HTMLInterface.GetUploadPermissions(game, ModId);

            Console.WriteLine($"Game: {game}");
            Console.WriteLine($"ModId: {ModId}");
            Console.WriteLine($"Permissions: {p}");
            return(ExitCode.Ok);
        }
Exemplo n.º 23
0
        private static void FilterEnchantIngredients(int filter)
        {
            GameObject            go;
            List <GameObjectPair> ingreds = new List <GameObjectPair>();

            for (var i = 0; i < inventoryList2.childCount; i++)
            {
                go = inventoryList2.GetChild(i).gameObject;
                KeyValuePair <ItemStack, GameObject> stack = enchantMiscInvenList.FirstOrDefault(x => x.Value == go);
                KeyValuePair <Industry, GameObject>  ind   = enchantIngredList.FirstOrDefault(x => x.Value == go);
                Enchantment ench = null;
                if (stack.Key != null)
                {
                    ench = GameRegistry.GetEnchantmentByItem(stack.Key.item);
                }
                if (ind.Key != null)
                {
                    ench = GameRegistry.GetEnchantmentByItem(ind.Key.industryItem);
                }
                if (ench != null && (filter < 0 || ((int)ench.enchantSlotRestriction & filter) > 0))
                {
                    go.SetActive(true);
                    //go.transform.localPosition = new Vector3(6, (i * -125) - 5, 0);
                    ingreds.Add(new GameObjectPair(go.transform, ind.Key, stack.Key));
                }
                else
                {
                    if (ench != null)
                    {
                        go.SetActive(false);
                    }
                }
            }

            /*for(var i = 0; i < inventoryList2.childCount; i++) {
             *      Transform t = inventoryList2.GetChild(i);
             *      KeyValuePair<ItemStack, GameObject> stack;
             *      stack = enchantMiscInvenList.FirstOrDefault(x => x.Value == t.gameObject);
             *      KeyValuePair<Industry, GameObject> ind;
             *      ind = enchantIngredList.FirstOrDefault(x => x.Value == t.gameObject);
             *      ingreds.Add(new GameObjectPair(t, ind.Key, stack.Key));
             * }*/
            ingreds.Sort((x, y) => {
                var v = y.val.CompareTo(x.val);
                return(v != 0 ? v : x.name.CompareTo(y.name));
            });
            for (var i = 0; i < ingreds.Count; i++)
            {
                ingreds[i].t.localPosition = new Vector3(6, (i * -125) - 5, 0);
            }

            ((RectTransform)inventoryList2).SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, ingreds.Count * 126 + 5);
            inventoryList2.transform.localPosition = Vector3.zero;
        }
Exemplo n.º 24
0
        public GameRegistry GetDefaultRegistry()
        {
            var exileReg      = GetEmbeddedResource(EXILE_REGISTRY_FILENAME);
            var revelationReg = GetEmbeddedResource(REVELATION_REGISTRY_FILENAME);

            var registry = new GameRegistry();

            registry.Exile      = DeserializeRegistry(exileReg);
            registry.Revelation = DeserializeRegistry(revelationReg);
            return(registry);
        }
Exemplo n.º 25
0
        public async Task <IActionResult> GetFiles(string game, string version)
        {
            if (!GameRegistry.TryGetByFuzzyName(game, out var meta))
            {
                return(NotFound($"Game {game} not found"));
            }

            var files = await _sql.GetGameFiles(meta.Game, version);

            return(Ok(files.ToJson()));
        }
Exemplo n.º 26
0
 public void SaveRegistryToDisk(GameRegistry registry, string selectedGame, string filePath)
 {
     if (selectedGame.ToUpper() == "EXILE")
     {
         SaveRegistryFile(filePath, registry.Exile);
     }
     if (selectedGame.ToUpper() == "REVELATION")
     {
         SaveRegistryFile(filePath, registry.Revelation);
     }
 }
Exemplo n.º 27
0
        public void RegenTreeView(GameRegistry registry)
        {
            var games      = new List <TreeNode>();
            var exileNodes = NodesForAssetRegistry(registry.Exile);

            games.Add(new TreeNode("Exile", exileNodes.ToArray()));
            var revNodes = NodesForAssetRegistry(registry.Revelation);

            games.Add(new TreeNode("Revelation", revNodes.ToArray()));
            PopulateNodes(games.ToArray());
        }
Exemplo n.º 28
0
        public void FinishLoad()
        {
            //if(StatisticsTracker.guildmastersElected.value == 0) {
            //renown = totalRenown = 100000;
            //}
            currentVendors = 0;
            //renown = totalRenown = 100000; //for testing
            //if(industriesFromDisk == null) return;
            for (int o = 0; o < industriesFromDisk.Count; o++)
            {
                Industry ind;
                if (Main.saveVersionFromDisk >= 14)
                {
                    ind = GameRegistry.GetIndustryByID(industriesFromDisk[o].name);
                }
                else
                {
#pragma warning disable CS0612 // Type or member is obsolete
                    ind = GameRegistry.GetIndustryByID(industriesFromDisk[o].ID);
#pragma warning restore CS0612 // Type or member is obsolete
                }
                ind.ReadFromCopy(industriesFromDisk[o].ind);
                if (ind.level > 0)
                {
                    CraftingManager.BuildIndustry(ind, true, false);
                    currentVendors += ind.getRawVendors();
                }
            }
            industriesFromDisk.Clear();
            industriesFromDisk = null;
            for (int o = 0; o < questsFromDisk.Count; o++)
            {
                questsFromDisk[o].quest.FinishLoad();
                QuestManager.availableQuests.Add(questsFromDisk[o].quest);
            }
            questsFromDisk.Clear();
            questsFromDisk = null;
            for (int o = 0; o < activeQuestsFromDisk.Count; o++)
            {
                activeQuestsFromDisk[o].quest.FinishLoad();
                QuestManager.activeQuests.Add(activeQuestsFromDisk[o].quest);
            }
            activeQuestsFromDisk.Clear();
            activeQuestsFromDisk = null;
            UpgradeValueWrapper wrap;
            Main.instance.player.upgrades.TryGetValue(UpgradeType.MONEY_INCOME, out wrap);

            Main.instance.player.miscInventory.ForEach(x => {
                if (x.antiquity > 0 || x.relicData != null)
                {
                    x.stackSize = 1;
                }
            });
        }
Exemplo n.º 29
0
        void Awake()
        {
            GameRegistry.AssignSpellDatabase(this);

            foreach (var spell in spells)
            {
                if (spell.Prefab != null)
                {
                    Debug.Log("Bound prefab to database");
                    spell.Prefab.GetComponent <Castable> ().BindCastableToSpell(spell);
                }
            }
        }
Exemplo n.º 30
0
        public void addItemToInventory(ItemStack stack, Quest theQuest, bool doNotify)
        {
            int         v    = addItemToInventory(stack);
            Enchantment ench = GameRegistry.GetEnchantmentByItem(stack.item);

            //TODO: does not seem to be working correctly
            if (v == stack.stackSize || (ench != null && v >= ench.ingredientQuantity && v - stack.stackSize < ench.ingredientQuantity))
            {
                //Debug.Log(stack.item.name + " +" + stack.stackSize + " = " + v + "|" + (ench != null?""+ench.ingredientQuantity:"no enchant"));
                NotificationItem notify = new NotificationItem(theQuest.heroName, "Found: " + Main.ToTitleCase(stack.item.name) + "\nAdded to your stocks", SpriteLoader.getSpriteForResource("items/" + stack.item.name));
                GuiManager.ShowNotification(notify);
            }
        }
 private async Task<TelegramBotReply> onPlayerPicked(User u, TelegramBot.TelegramBot bot, Message m, GameRegistry.Game game)
 {
     const string viewMembership = "is picking someone to view his/her membership";
     var flowObj = new PickPlayerFlow(game, onPickedMembershipTarget);
     if (u == m.From)
     {
         await AnnounceMessage(u, bot, viewMembership);
         m.From.MessageFlow = new MessageFlow(u, new FlowObject { Handler = flowObj });
         return Message(m, "You cheating bastard! Pick the one you would like to view the membership off.", replyMarkup: flowObj.GetKeyboard());
     }
     else
     {
         await AnnounceMessage(u, bot, viewMembership);
         u.MessageFlow = new MessageFlow(u, new FlowObject { Handler = flowObj });
         await Message(u.ID, "You've been chosen to view somebody's membership. Please pick one.", replyMarkup: flowObj.GetKeyboard()).HandleReply(bot);
     }
     return Message(m, $"You have chosen {u.Bold()} to pick a player", replyMarkup: HostMessageHandler.HostKeyboard, userMarkup: true);
 }
 public LeaveMessageConfirm(GameRegistry.Game game, User user)
 {
     this.game = game;
     this.user = user;
 }
Exemplo n.º 33
0
 public WallObject()
 {
     this.registry = GameRegistry.Instance;
 }
 private async Task<TelegramBotReply> onPickedMembershipTarget(User u, TelegramBot.TelegramBot bot, Message m, GameRegistry.Game game)
 {
     await AnnounceMessage(m.From, bot, $"has chosen to view {u.Bold()}'s membership");
     return Message(m, $"The role of {u.Bold()} is {game.GetRole(u).Membership.Bold()}", replyMarkup: game.Host == m.From ? HostMessageHandler.HostKeyboard : JoinMessageHandler.JoinedPlayerKeyboard, userMarkup: true);
 }
Exemplo n.º 35
0
 public PickPlayerFlow(GameRegistry.Game game, Func<User, TelegramBot.TelegramBot, Message, GameRegistry.Game, Task<TelegramBotReply>> onPlayerPicked)
 {
     this.game = game;
     this.onPlayerPicked = onPlayerPicked;
 }