/// <summary> /// Base constructor. /// </summary> /// <param name="messager"></param> public BaseExecutor(BotMessager messager) { // Set the message relayer. Bot = messager; // Get the name of the class from the Class Name Attribute. var nameAttr = GetType().GetCustomAttributes(typeof(ClassNameAttribute), true).FirstOrDefault() as ClassNameAttribute; if (nameAttr != null) { // Set class name based on the attribute. className = nameAttr.Name; // Set the publicly visible identifier of this instance. Identifier = className.ToLower(); // Set the description of the executor. Description = nameAttr.Description; } else { // If attribute not found, set the name to the last part of this object's namespace. string[] classNameParts = this.ToString().Split('.'); className = classNameParts[classNameParts.Length - 1]; } // All instances of BaseExecutor can report their available commands. // The command itself for doing so is not logged. CmdActions = new Dictionary <string, CommandAction>(); Add(LogCommands, "komennot", "commands"); Add(ComponentCall, Identifier); }
public CmdStatistics(BotMessager messager) : base(messager) { // Get the properties of a StatisticRow for ORDER BY logging. string orderPropertyNameList = StatisticsRow.GetOrderProperties().ToConcatString(); // Get the properties of a StatisticRow for EXTRAS logging. string extraPropertyNameList = StatisticsRow.GetExtraProperties().ToConcatString(); Add("Tulostaa pelaajan tournament voitot.", cmd_Saldo, "saldo", "score", "pisteet"); Add("Tulostaa kuittaamattomat kausivoitot.", cmd_Unsettled, "loans", "velat", "unsettled", "joni", "vittujoni"); Add("Statistiikka. FILTERÖINTI: Kauden ID, Pelin nimi, Käyttäjän nimi. ORDER BY: " + orderPropertyNameList + " | EXTRA: " + extraPropertyNameList, cmd_Stats, "stats").TimerLocked(2); Add("Tulostaa kuluvan kauden ID:n.", cmd_Season, "season", "kausi").TimerLocked(2); Add("Tulostaa kaudet ja niiden ajanjaksot.", cmd_Seasons, "seasons", "kaudet").TimerLocked(2); Add("Tulostaa pelin voitot", cmd_Scoreboard, "scoreboard", "scorebard", "scöörebörd", "scoorebord", "sköörebörd", "skoorebord", "skuurbuurd", "skoorboord", "sköörböörd").TimerLocked(2); }
public BlindHoldem(BotMessager messager) : base(messager) { CurrentPhase = Phase.Join; CurrentBet = Holdem.MaximumBet; Players = new List <HoldemPlayer>(); Deck = new Deck(); Bot.Say("Sokko allin holdemi aloitettu."); }
public CmdGeneral(BotMessager messager) : base(messager) { rnd = new Random(); Add("Satunnainen riemurasia media", cmd_rr, "rr"); Add("Satunnainen naurunappula media", cmd_nn, "nn"); Add("Satunnaista tekstiä", cmd_eijasa, "eijasa"); Add("Satunnainen Overwatch kirjaston teksti", cmd_ow, "overwatch", "ow"); Add("Haistata vitut", cmd_hv, "hv"); Add("Lenny face", cmd_lenny, "lenny", "lennyface", "lf"); }
public Holdem(BotMessager messager) : base(messager) { CurrentPhase = Phase.Join; Players = new List <HoldemPlayer>(); Deck = new Deck(); River = new List <Card>(); CurrentBet = MinimumBet; Pot = 0; Bot.Say("Holdem peli aloitettu. Aloituspanos " + EntryFee + ". Peliin voi liittyä komennolla !holdem. Aloituksen voi perua komennolla !cancel. Peli vaatii vähintään 2 pelaajaa."); }
public CmdRandom(BotMessager messager) : base(messager) { Add("Satunnainen runo", cmd_poem, "runo", "poem").TimerLocked(2); Add("Satunnainen wiki-linkki", cmd_wiki, "wiki"); Add("Satunnainen wictionary-linkki", cmd_wictionary, "sana", "wictionary", "wiktionary"); Add("Päivän sana", cmd_dailyWord, "päivänsana"); Add("Satunnainen paskanhauska kuva", cmd_funnyShit, "topkek").TimerLocked(2); Add("Satunnainen paskanhauska gif", cmd_funnyGif, "gif").TimerLocked(2); Add("Satunnainen urbaanin sanakirjan-linkki", cmd_urbanDictionary, "urbaanisanakirja", "urbandictionary", "urban"); Add("Satunnainen hikipedia-linkki", cmd_hikipedia, "hiki", "hikipedia"); Add("Satunnainen sub-reddit", cmd_reddit, "reddit", "r"); }
public CmdGames(BotMessager messager) : base(messager) { Add("Kuittaa pelaajan valmiiksi. Ei enää odoteta komentoja tältä pelaajalta.", CmdCheck, "check", "c", "jää"); Add("Poistaa pelaajan pelistä. Pelaajalta peritään sen hetkinen betti.", CmdFold, "fold", "föld", "fould", "fouldem", "f"); Add("Peruu pelin aloituksen.", CmdCancel, "cancel", "peru", "lopeta"); Add("Nostaa betin joko pelin maksimiin, tai pelaajan maksimiin jos pelaajalla rahaa alle pelin maksimin.", CmdAllin, "allin", "allesin", "allesineen", "kaikki", "syteentaisaveen"); Add("Ottaa seuraavan kortin.", CmdHit, "hit", "lyö", "turpaan", "hittiä", "hitteä"); Add("Nostaa pelin bettia annetulla määrällä.", CmdBet, "bet", "raise"); Add("Aloittaa Blackjack pelin", CmdBlackjack, "blackjack", "niggagiggel", "mustajaakko"); Add("Aloittaa Holdem pelin", CmdHoldem, "holdem"); Add("Aloittaa Holdem turnauksen", CmdTournament, "tournament", "turnaus"); Admin(CmdStopCurrentGame, "stopgame"); }
public MasterExecutor(BotMessager messager) : base(messager) { Comparator = new MasterComparator(); Add("Kirjaa botin eri komentokäsittelykomponentit.", LogComponents, "komponentit", "components", "käsittelijät"); Executors = new IExecutor[] { new CmdAdmin(Bot), new CmdStatistics(Bot), new CmdLink(Bot), new CmdGames(Bot), new CmdGeneral(Bot), new CmdRandom(Bot) }; }
public GameBase(BotMessager messager) { Bot = messager; Timer = new SoloTimer(); }
public CmdLink(BotMessager messager) : base(messager) { rnd = new Random(); }
public Blackjack(BotMessager messager) : base(messager) { currentPhase = Phase.Join; Players = new List <BlackjackPlayer>(); Decks = new Deck(3); }
public CmdAdmin(BotMessager messager) : base(messager) { // Get the properties of a StatisticRow for ORDER BY logging. //string orderPropertyNameList = StatisticsRow.GetOrderProperties().ToConcatString(); //// Get the properties of a StatisticRow for EXTRAS logging. //string extraPropertyNameList = StatisticsRow.GetExtraProperties().ToConcatString(); Admin("Add new entry to the SimpleCommands dictionary.", cmd_AddSimpleCommand, "addcommand"); Admin("Replace existing SimpleCommands entry.", cmd_ReplaceSimpleCommand, "replacecommand"); Admin("Checks if the given key exists in SimpleCommands.", cmd_SimpleCommandExists, "cmdexists"); //Add("Tulostaa pelaajan holdem voitot.", cmd_Saldo, // "saldo", "score", "pisteet"); //Add("Tulostaa kuittaamattomat kausivoitot.", cmd_Unsettled, // "loans", "velat", "unsettled", "joni", "vittujoni"); //Add("Statistiikka. FILTERÖINTI: Kauden ID, Pelin nimi, Käyttäjän nimi. ORDER BY: " + orderPropertyNameList + " | EXTRA: " + extraPropertyNameList, cmd_Stats, // "stats"); //Add("Tulostaa kuluvan kauden ID:n.", cmd_Season, // "season", "kausi"); //Add("Tulostaa kaudet ja niiden ajanjaksot.", cmd_Seasons, // "seasons", "kaudet"); Admin("Asettaa statistiikan värit. 'TextColor.BackgroundColor'.", cmd_ColorizeStats, "statscolor"); Admin("Asettaa turnauksen textin värit. 'TextColor.BackgroundColor'.", cmd_ColorizeTournament, "tournamentcolor"); //Add("Tulostaa pelin voitot", cmd_Scoreboard, // "scoreboard", "scorebard", "scöörebörd", "scoorebord", "sköörebörd", "skoorebord", "skuurbuurd", "skoorboord", "sköörböörd"); //CmdActions.Add("addfunds", cmd_AddFunds, "Give player a certain amount of funds. Increases loan."); //CmdActions.Add("addfundsnoloan", cmd_AddFundsNoLoan, "Give player a certain amount of funds. Does not increase loan."); //CmdActions.Add("adduser", cmd_addUser, "Add new user or authorize existing."); Admin("Add new user or authorize existing.", cmd_addUser, "adduser"); Admin("Unauthorize existing user.", cmd_BanUser, "banuser"); //CmdActions.Add("deleteuser", cmd_DeleteUser, "Delete user from database entirely."); //CmdActions.Add("loans", cmd_Loans, "Report everyone's loans."); //Admin("Reset SimpleCommands to those in the Bulk Inserter.", cmd_ResetSimpleCommands, // "resetcmd"); Admin("Ends the current season and creates a new one.", cmd_EndSeason, "endseason"); Add("Log in as an admin from a new address. New address updated to database.", cmd_AdminLogin, "login"); Admin("Floods channel with messages.", cmd_Flood, "flood"); Admin(cmd_Transmit, "t"); Admin(cmd_currentTimeDiff, "aikaero", "timesync"); Admin(cmd_currentTime, "aika", "timeis"); Add("Sääennuste", cmd_weather, "sääennuste").TimerLocked(5); }
public HoldemTournament(BotMessager messager) : base(messager) { CurrentPhase = Phase.Draw; Players = new List <TournamentPlayer>(); Deck = new Deck(); Table = new List <Card>(); CurrentBet = 0; pots = new List <GamePot>(); pots.Add(new GamePot()); var playerUserIds = Users.Scores(Score.Tournament).Select(x => x.UserId).Distinct(); foreach (var playerUserId in playerUserIds) { Players.Add(new TournamentPlayer(playerUserId)); } var currentDealerUserId = TournmentLoader.GetDealerUserId(); // Get the current dealers index if userId != 0 if (currentDealerUserId != 0) { for (int i = 0; i < Players.Count; i++) { if (Players[i].UserId == currentDealerUserId) { CurrentDealerIndex = i; break; } } CurrentDealerIndex = NextActivePlayerIndex(CurrentDealerIndex, false); } else { // Pick a random dealer CurrentDealerIndex = new Random().Next(Players.Count); } // Get the current blind and the number of rounds played so far (plus the current new round). int blind = TournmentLoader.BaseBlind; int rounds = TournmentLoader.GetRoundsPlayed() + 1; int totalRounds = rounds; // Substract the BlindIncreaseRoundIncrement from the rounds rounds = rounds - BlindIncreaseRoundIncrement; // Number of times the blind should be raised. int increments = 0; while (rounds > 0) { increments++; rounds -= BlindIncreaseRoundIncrement; } // Multiply the blind for each passed increment. for (int i = 0; i < increments; i++) { blind = blind * BlindIncreaseMultiplier; } // Set the current small and big blinds. SmallBlind = blind; BigBlind = SmallBlind * 2; // The player after the dealer has the Small Blind. int smallBlindIndex = NextActivePlayerIndex(CurrentDealerIndex, false); if (totalRounds > 1) { CurrentPlayerIndex = smallBlindIndex; } Players[smallBlindIndex].CurrentBet = SmallBlind; // The player after the Small Blind has the Big Blind. int bigBlindIndex = NextActivePlayerIndex(smallBlindIndex, false); Players[bigBlindIndex].CurrentBet = BigBlind; // Kirjataan pelaajat. string message = "Holdem Turnauksen pelaajat: "; for (int j = 0; j < Players.Count; j++) { var player = Players[j]; if (player.Active) { message += player.Username; if (j == bigBlindIndex) { message += String.Format("(Big Blind - {0}), ", BigBlind); } else if (j == smallBlindIndex) { message += String.Format("(Small Blind - {0}), ", SmallBlind); } else if (j == CurrentDealerIndex) { message += "(Dealer), "; } else { message += ", "; } } } message = message.Substring(0, message.Length - 2); Say(message); foreach (var player in ActivePlayers) { Pot.PlayerPots.Add(new PlayerPot(player.UserId, player.CurrentBet)); player.Cards = new Card[2]; player.Cards[0] = Deck.Draw(); player.Cards[1] = Deck.Draw(); // Log games played var user = Users.Get(player.UserId); user.UpdateScore( new Score(user.UserId, Score.Tournament).Started() ); // Report cards to the player as a private message message = "------------------------------------------------"; message += player.Cards[0].Name; message += " | "; message += player.Cards[1].Name; Bot.Say(player.Username, message); } InformOfPlayerTurn(); // Set the current bet. CurrentBet = BigBlind; }