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(); }