public static void Invoke(this VoteRequestEventArgs e) { if (OnVoteRequest != null && e != null) { OnVoteRequest(e); } }
public virtual bool Vote(PlayerMobile voter, bool message = true) { if (voter == null || voter.Deleted || !CanVote(voter, message)) { return(false); } var p = Voting.EnsureProfile(voter); if (p == null || p.Deleted) { if (message) { voter.SendMessage("Your vote profile can't be accessed right now."); } return(false); } if (message) { voter.SendMessage("Thanks for voting, {0}! Every vote counts!", voter.RawName); } var tokens = Tokens; if (Voting.CMOptions.GiveBonusTokens && BonusTokens > 0 && Utility.RandomMinMax(0, 100) <= BonusTokensChance) { tokens += BonusTokens; if (message) { voter.SendMessage("You've just earned {0} bonus tokens!", BonusTokens); } } var e = new VoteRequestEventArgs(voter, this, tokens, message); VitaNexCore.TryCatch(e.Invoke, Voting.CMOptions.ToConsole); if (tokens != e.Tokens) { tokens = Math.Max(0, e.Tokens); } message = e.Message; if (!e.HandledTokens) { p.TransferTokens(this, tokens, message); } else { p.RegisterTokens(this, tokens); } Timer.DelayCall(Voting.CMOptions.BrowserDelay, () => voter.LaunchBrowser(Link)); return(true); }