Example #1
0
        async Task ExecuteLoadPlayersCommand()
        {
            if (IsBusy)
            {
                return;
            }

            IsBusy = true;

            try
            {
                Players.Clear();
                var players = await PlayerDataStore.GetItemsAsync(true);

                foreach (var player in players)
                {
                    Players.Add(player);
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex);
            }
            finally
            {
                IsBusy = false;
            }
        }
Example #2
0
        async Task ExecuteLoadItemsCommand(int spotId)
        {
            if (IsBusy)
            {
                return;
            }

            IsBusy = true;

            try
            {
                Items.Clear();
                var items = await PlayerDataStore.GetItemsAsync(spotId);

                foreach (var item in items)
                {
                    Items.Add(item);
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex);
            }
            finally
            {
                IsBusy = false;
            }
        }
 public void Execute(IRocketPlayer caller, string[] command)
 {
     if (command.Length == 0)
     {
         UnturnedChat.Say(caller, Syntax);
     }
     else
     {
         UnturnedPlayer Player = UnturnedPlayer.FromName(command[0]);
         if (Player == null)
         {
             UnturnedChat.Say(caller, "DisableVehicleAccess_NoPlayer".Translate());
         }
         else
         {
             var Store = PlayerDataStore.GetPlayerData(Player);
             Store.CanEnterVehicle = !Store.CanEnterVehicle;
             if (Store.CanEnterVehicle)
             {
                 UnturnedChat.Say(caller, "DisableVehicleAccess_AccessEnabled".Translate());
             }
             else
             {
                 if (Player.IsInVehicle)
                 {
                     Player.CurrentVehicle.forceRemovePlayer(out byte seat, Player.CSteamID, out Vector3 pos, out byte angle);
                     SDG.Unturned.VehicleManager.sendExitVehicle(Player.CurrentVehicle, seat, pos, angle, true);
                 }
                 UnturnedChat.Say(caller, "DisableVehicleAccess_AccessDisabled".Translate());
             }
         }
     }
 }
 public void LoadCurrentPlayers()
 {
     foreach (var client in Provider.clients)
     {
         UnturnedPlayer Player = UnturnedPlayer.FromSteamPlayer(client);
         PlayerDataStore.TryRegisterPlayer(Player);
         PlayerSessionStore.TryRegisterPlayer(Player);
     }
 }
        public static bool PlayerCanFlyAtSpeed(UnturnedPlayer Player, float Speed)
        {
            float      MaxSpeed = GetPlayerMaxFlySpeed(Player);
            PlayerData data     = PlayerDataStore.GetPlayerData(Player);

            if (data != null && data.FlightSpeedPermitOverride != 0)
            {
                MaxSpeed = data.FlightSpeedPermitOverride;
            }
            return(Math.Abs(Speed) <= MaxSpeed);
        }
        private void VehicleManager_onEnterVehicleRequested(Player player, InteractableVehicle vehicle, ref bool shouldAllow)
        {
            var Data = PlayerDataStore.GetPlayerData(UnturnedPlayer.FromPlayer(player));

            if (Data != null)
            {
                if (!Data.CanEnterVehicle)
                {
                    shouldAllow = false;
                }
            }
        }
Example #7
0
 public async void AddPlayer()
 {
     if (!string.IsNullOrEmpty(Name))
     {
         await PlayerDataStore.AddAsync(new User()
         {
             Name = Name
         });                                                        //todo: FIX ME
     }
     Name = string.Empty;
     FetchPlayers();
 }
 public void Execute(IRocketPlayer caller, string[] command)
 {
     if (command.Length == 0)
     {
         UnturnedChat.Say(caller, Syntax);
     }
     else
     {
         UnturnedPlayer Player = UnturnedPlayer.FromName(command[0]);
         if (Player == null)
         {
             UnturnedChat.Say(caller, "Error_PlayerNotFound".Translate());
             return;
         }
         int NewOverride = 0;
         if (command.Length > 1)
         {
             bool failed = false;
             try
             {
                 NewOverride = Convert.ToInt32(command[1]);
             }
             catch (FormatException)
             {
                 failed = true;
             }
             catch (OverflowException)
             {
                 failed = true;
             }
             if (failed)
             {
                 UnturnedChat.Say(caller, "Flight_PermitSpeed_InvalidNumber".Translate());
                 return;
             }
         }
         PlayerData data = PlayerDataStore.GetPlayerData(Player);
         if (data == null)
         {
             return;
         }
         data.FlightSpeedPermitOverride = NewOverride;
         if (NewOverride == 0)
         {
             UnturnedChat.Say(caller, "Flight_PermitSpeed_Reset".Translate());
         }
         else
         {
             UnturnedChat.Say(caller, "Flight_PermitSpeed_Updated".Translate());
         }
     }
 }
Example #9
0
        public async void FetchPlayers()
        {
            var users = await PlayerDataStore.GetAllAsync();

            Players = users.Select(x => new PlayerViewItem(x)
            {
                Selected        = sessionService.Self == x.RemoteId,
                SelectedCommand = new Command <string>(SelectPlayer)
            }).ToList();
            var selectedIds = Players.Where(p => p.Selected).Select(x => x.Id);

            SelectedPlayers = users.Where(x => selectedIds.Any(y => y == x.RemoteId)).ToList();
        }
Example #10
0
        public FollowingPlayersViewModel(int spotId)
        {
            Title            = "Browse";
            Items            = new ObservableCollection <Player>();
            LoadItemsCommand = new Command(async() => await ExecuteLoadItemsCommand(spotId));

            MessagingCenter.Subscribe <PlayerDetailPage, Player>(this, "AddItem", async(obj, item) =>
            {
                var newItem = item as Player;
                Items.Add(newItem);
                await PlayerDataStore.AddItemAsync(newItem);
            });
        }
Example #11
0
        public IEnumerable <WtaPlayer> GetPlayers()
        {
            // Attempt to retrieve WTA player data from the memory cache (or go and retrieve it, if necessary)
            if (!cache.TryGetValue(CacheKeys.PlayerData, out List <WtaPlayer> playerData))
            {
                // Initialise the WTA player data and store the results in the cache (with a stock expiry time)
                playerData = new PlayerDataStore().GetPlayerData();

                cache.Set(CacheKeys.PlayerData, playerData, new MemoryCacheEntryOptions()
                          .SetSlidingExpiration(TimeSpan.FromMinutes(STOCK_CACHE_EXPIRY_MINS)));
            }

            return(playerData);
        }
Example #12
0
        private async void SelectPlayer(string id)
        {
            Players.FirstOrDefault(x => x.Id == id).ToggleSelected();
            var user = await PlayerDataStore.GetAsync(id);

            if (!selectedPlayers.Any(x => x.RemoteId == id))
            {
                selectedPlayers.Add(user);
            }
            else
            {
                selectedPlayers.Remove(user);
            }
            Players = Players.ToList();
        }
        public override void LoadPlugin()
        {
            Logger.Log($"Loading ShimmysAdminTools v{UpdaterCore.CurrentVersion} by ShimmyMySherbet");
            base.LoadPlugin();
            Instance = this;
            Config   = Configuration.Instance;
            PlayerDataStore.Init();
            PlayerSessionStore.Init();
            U.Events.OnBeforePlayerConnected       += Events_OnBeforePlayerConnected;
            U.Events.OnPlayerConnected             += Events_OnPlayerConnected;
            U.Events.OnPlayerDisconnected          += Events_OnPlayerDisconnected;
            VehicleManager.onEnterVehicleRequested += VehicleManager_onEnterVehicleRequested;
            Rocket.Unturned.Events.UnturnedPlayerEvents.OnPlayerUpdateGesture += UnturnedPlayerEvents_OnPlayerUpdateGesture;

            ChatManager.onCheckPermissions += Chat_OnCheckPermissions;

            LoadCurrentPlayers();

            Level.onLevelLoaded += OnLevelloaded;


            Logger.Log("Checking for updates...");
            UpdaterCore.Init();

            if (UpdaterCore.IsOutDated)
            {
                Logger.LogWarning("ShimmysAdminTools is out of date!");
                Logger.Log($"Latest Version: v{UpdaterCore.LatestVersion}");
                if (UpdaterCore.TryGetUpdateMessage(out string msg))
                {
                    Logger.Log($"Update Notes:");
                    Logger.Log(msg);
                }
                Logger.Log("Download the latest update at https://github.com/ShimmyMySherbet/ShimmysAdminTools");
            }

            gameObject.AddComponent <RepeatCommandQueue>();

            if (!Config.DelayStartEXECUtility)
            {
                ExecManager.Activate();
            }
            Logger.Log("ShimmysAdminTools loaded.");
        }
 private void Events_OnBeforePlayerConnected(UnturnedPlayer player)
 {
     PlayerSessionStore.TryRegisterPlayer(player);
     PlayerDataStore.TryRegisterPlayer(player);
 }
Example #15
0
        async void RemovePlayerAsync(string id)
        {
            await PlayerDataStore.DeleteAsync(id);

            FetchPlayers();
        }
Example #16
0
 public async void FetchPlayers()
 {
     Players = (await PlayerDataStore.GetAllAsync()).ToList();
 }