public async void OnChangingItem(ChangingItemEventArgs ev)
 {
     if (Instance.Config.EventsToLog.ChangingPlayerItem && (!ev.Player.DoNotTrack || !Instance.Config.ShouldRespectDoNotTrack))
     {
         await Network.SendAsync(new RemoteCommand("log", "gameEvents", string.Format(Language.ItemChanged, ev.Player.Nickname, Instance.Config.ShouldLogUserIds ? ev.Player.UserId : Language.Redacted, ev.OldItem.id, ev.NewItem.id))).ConfigureAwait(false);
     }
 }
Example #2
0
 /// <inheritdoc/>
 protected override void OnChanging(ChangingItemEventArgs ev)
 {
     if (ev.Player.Ammo[(int)AmmoType.Nato9] == 0)
     {
         ev.Player.Ammo[(int)AmmoType.Nato9] = 1;
     }
 }
 internal void OnChangingItem(ChangingItemEventArgs ev)
 {
     if (!ev.Player.UseGhostItem(ev.NewItem.id))
     {
         ev.Player.Inventory.curItem = ItemType.Coin;
     }
 }
Example #4
0
        private void OnChangingItem(ChangingItemEventArgs ev)
        {
            if (Check(ev.NewItem))
            {
                foreach (string effect in Scp714Effects)
                {
                    if (!ev.Player.EnableEffect(effect, 999f, false))
                    {
                        Log.Error($"\"{effect}\" is not a valid effect name.");
                    }
                }
            }
            else

            if (Check(ev.OldItem))
            {
                if (!string.IsNullOrEmpty(TakeOffMessage))
                {
                    ev.Player.ShowHint(TakeOffMessage);
                }

                foreach (string effect in Scp714Effects)
                {
                    try
                    {
                        ev.Player.DisableEffect((EffectType)Enum.Parse(typeof(EffectType), effect, true));
                    }
                    catch (Exception)
                    {
                        Log.Error($"\"{effect}\" is not a valid effect name.");
                        continue;
                    }
                }
            }
        }
 public void OnChangingItem(ChangingItemEventArgs ev)
 {
     if (SimpleCuffProtection.DisallowUncuffing && ev.NewItem.id == ItemType.Disarmer && Handcuffs.ContainsKey(ev.Player))
     {
         ev.Player.Broadcast(3, "<b>If you'd like to uncuff the player you have cuffed earlier, drop the <color=#8A2BE2>Disarmer</color> by right-clicking on it in the inventory wheel.</b>");
     }
 }
Example #6
0
 public void OnChangingItem(ChangingItemEventArgs ev)
 {
     Timing.CallDelayed(0.1f, () =>
     {
         ev.Player.SendCustomSyncVar(ServerConfigSynchronizer.Singleton.netIdentity, typeof(ServerConfigSynchronizer), nameof(ServerConfigSynchronizer.Singleton.NetworkHumanWalkSpeedMultiplier), Util.GetFinalSpeedMultiplier(ev.Player.ReferenceHub, false));
         ev.Player.SendCustomSyncVar(ServerConfigSynchronizer.Singleton.netIdentity, typeof(ServerConfigSynchronizer), nameof(ServerConfigSynchronizer.Singleton.NetworkHumanSprintSpeedMultiplier), Util.GetFinalSpeedMultiplier(ev.Player.ReferenceHub, true));
     });
 }
 internal void OnItemChanged(ChangingItemEventArgs ev)
 {
     if (ev.NewItem.id.IsWeapon())
     {
         ev.Player.ReferenceHub.playerEffectsController.EnableEffect <CustomPlayerEffects.Disabled>();
     }
     else
     {
         ev.Player.ReferenceHub.playerEffectsController.DisableEffect <CustomPlayerEffects.Disabled>();
     }
 }
Example #8
0
 /// <inheritdoc cref="Exiled.Events.Handlers.Player.OnChangingItem(ChangingItemEventArgs)"/>
 public void OnChangingItem(ChangingItemEventArgs ev)
 {
     Timing.CallDelayed(2f, () =>
     {
         if (ev.Player?.CurrentItem is Firearm firearm)
         {
             Log.Info($"{ev.Player.Nickname} has a firearm!");
             firearm.Recoil = new RecoilSettings(0, 0, 0, 0, 0, 0);
         }
     });
     Log.Info($"{ev.Player.Nickname} is changing his {(ev.Player?.CurrentItem is null ? "NONE" : ev.Player?.CurrentItem?.Type.ToString())} item to {(ev.NewItem is null ? "NONE" : ev.NewItem.Type.ToString())}!");
 }
Example #9
0
        private static void Prefix(Inventory __instance, int i)
        {
            try
            {
                if (__instance.itemUniq == i)
                {
                    return;
                }

                int oldItemIndex = __instance.GetItemIndex();

                if (oldItemIndex == -1 && i == -1)
                {
                    return;
                }

                Inventory.SyncItemInfo oldItem = oldItemIndex == -1
                    ? new Inventory.SyncItemInfo()
                {
                    id = ItemType.None
                }
                    : __instance.GetItemInHand();
                Inventory.SyncItemInfo newItem = new Inventory.SyncItemInfo()
                {
                    id = ItemType.None
                };

                foreach (Inventory.SyncItemInfo item in __instance.items)
                {
                    if (item.uniq == i)
                    {
                        newItem = item;
                    }
                }

                var ev = new ChangingItemEventArgs(API.Features.Player.Get(__instance.gameObject), oldItem, newItem);

                Player.OnChangingItem(ev);

                oldItemIndex = __instance.GetItemIndex();

                if (oldItemIndex != -1)
                {
                    __instance.items[oldItemIndex] = ev.OldItem;
                }
            }
            catch (Exception e)
            {
                Exiled.API.Features.Log.Error($"Exiled.Events.Patches.Events.Player.ChangingItem: {e}\n{e.StackTrace}");
            }
        }
Example #10
0
        /*internal void ChangingGroup(ChangingGroupEventArgs ev)
         * {
         * }*/

        internal void ChangingItem(ChangingItemEventArgs ev)
        {
            if (Plugin.Instance.Config.ChangingItem == "")
            {
                return;
            }
            string message = Plugin.Instance.Config.ChangingItem.Replace("%player%", ev.Player.ToString());

            message = message.Replace("%newitem%", ev.NewItem.id.ToString());
            message = message.Replace("%olditem%", ev.OldItem.id.ToString());


            if (Plugin.Instance.Config.debug_to_console)
            {
                Log.Debug(message: "[ " + Plugin.Instance.Config.player_name + "] " + message);
            }
            Plugin.sendWebHook(Plugin.Instance.Config.player_url, message, Plugin.Instance.Config.player_name);
        }
Example #11
0
        private static void Prefix(Inventory __instance, int i)
        {
            if (__instance.itemUniq == i)
            {
                return;
            }

            int oldItemIndex = __instance.GetItemIndex();

            if (oldItemIndex == -1 && i == -1)
            {
                return;
            }

            Inventory.SyncItemInfo oldItem = oldItemIndex == -1 ? new Inventory.SyncItemInfo()
            {
                id = ItemType.None
            } : __instance.GetItemInHand();
            Inventory.SyncItemInfo newItem = new Inventory.SyncItemInfo()
            {
                id = ItemType.None
            };

            foreach (Inventory.SyncItemInfo item in __instance.items)
            {
                if (item.uniq == i)
                {
                    newItem = item;
                }
            }

            var ev = new ChangingItemEventArgs(API.Features.Player.Get(__instance.gameObject), oldItem, newItem);

            Player.OnChangingItem(ev);

            oldItemIndex = __instance.GetItemIndex();

            if (oldItemIndex != -1)
            {
                __instance.items[oldItemIndex] = ev.OldItem;
            }

            return;
        }
Example #12
0
        private void OnChangingItem(ChangingItemEventArgs ev)
        {
            if (Check(ev.NewItem))
            {
                foreach (string effect in Scp714Effects)
                {
                    ev.Player.ReferenceHub.playerEffectsController.EnableByString(effect, 999f, false);
                }
            }
            else

            if (Check(ev.OldItem))
            {
                if (!string.IsNullOrEmpty(TakeOffMessage))
                {
                    ev.Player.ShowHint(TakeOffMessage);
                }

                foreach (string effect in Scp714Effects)
                {
                    ev.Player.ReferenceHub.playerEffectsController.ChangeByString(effect, 0);
                }
            }
        }
Example #13
0
 /// <summary>
 /// Invoked before changing a player changes the item in his hand.
 /// </summary>
 /// <param name="ev">The <see cref="ChangingItemEventArgs"/> instance.</param>
 public static void OnChangingItem(ChangingItemEventArgs ev) => ChangingItem.InvokeSafely(ev);
Example #14
0
 /// <inheritdoc cref="Events.Handlers.Player.OnChangingItem(ChangingItemEventArgs)"/>
 public void OnChangingItem(ChangingItemEventArgs ev)
 {
     Log.Info($"{ev.Player?.Nickname} is changing his {ev.OldItem.id} item to {ev.NewItem.id}!");
 }