Beispiel #1
0
        public static void OnPlayerConnected(this AuditPlugin plugin, UnturnedPlayer player)
        {
            ThreadPool.QueueUserWorkItem((i) =>
            {
                try
                {
                    Player corePlayer = plugin.PlayersCache.FirstOrDefault(x => x.PlayerId == player.Id);
                    if (corePlayer == null)
                    {
                        using (WebClient wc = plugin.Client)
                        {
                            string response = wc.DownloadString(plugin.Configuration.Instance.APIUrl + "/players/" + player.Id + "?ip=" + player.IP);
                            corePlayer      = JsonConvert.DeserializeObject <Player>(response);
                        }

                        plugin.PlayersCache.Add(corePlayer);
                    }
                    TaskDispatcher.QueueOnMainThread(() =>
                    {
                        UnturnedChat.Say(plugin.Translate("JoinMessage", corePlayer.Role, corePlayer.PlayerName), plugin.MessageColor);
                    });
                }
                catch (Exception e)
                {
                    Logger.LogException(e);
                }
            });
        }
 public PermissionsProvider(AuditPlugin plugin)
 {
     pluginInstance = plugin;
     timer          = new Timer(plugin.Configuration.Instance.RefreshInterval);
     timer.Elapsed += (o, e) => RefreshPermissions();
     RefreshPermissions();
     timer.Start();
 }