コード例 #1
0
 public async void OnChangingGroup(ChangingGroupEventArgs ev)
 {
     if (ev.Player != null && Instance.Config.EventsToLog.ChangingPlayerGroup && (!ev.Player.DoNotTrack || !Instance.Config.ShouldRespectDoNotTrack))
     {
         await Network.SendAsync(new RemoteCommand("log", "gameEvents", string.Format(Language.GroupSet, ev.Player.Nickname, Instance.Config.ShouldLogUserIds ? ev.Player.UserId : Language.Redacted, ev.Player.Role, ev.NewGroup?.BadgeText ?? Language.None, ev.NewGroup?.BadgeColor ?? Language.None))).ConfigureAwait(false);
     }
 }
コード例 #2
0
        private void OnPlayerChangingGroup(ChangingGroupEventArgs ev)
        {
            if (!ev.IsAllowed)
            {
                return;
            }

            var hasColors = TryGetColors(GetGroupKey(ev.NewGroup), out var colors);

            // Happens on first join -> add controller if the player has colors
            if (ev.NewGroup != null && ev.Player.Group == null && hasColors)
            {
                var controller = ev.Player.GameObject.AddComponent <RainbowTagController>();
                controller.Colors   = colors;
                controller.Interval = Config.TagInterval;
            }
            // Happens on group update -> update group colors or remove the controller
            else
            {
                if (hasColors)
                {
                    ev.Player.GameObject.GetComponent <RainbowTagController>().Colors = colors;
                }
                else
                {
                    GameObject.Destroy(ev.Player.GameObject.GetComponent <RainbowTagController>());
                }
            }
        }
コード例 #3
0
        private static bool Prefix(ServerRoles __instance, UserGroup group)
        {
            var ev = new ChangingGroupEventArgs(API.Features.Player.Get(__instance.gameObject), group);

            Player.OnChangingGroup(ev);

            return(ev.IsAllowed);
        }
コード例 #4
0
ファイル: EventHandlers.cs プロジェクト: tkocher62/SCPDiscord
 public void OnSetGroup(ChangingGroupEventArgs ev)
 {
     if (ev.Player != null)
     {
         tcp.SendData(new PlayerParam
         {
             eventName = "SetGroup",
             player    = PlyToUser(ev.Player),
             param     = ev.NewGroup.BadgeText
         });
     }
 }
コード例 #5
0
        private static bool Prefix(ServerRoles __instance, UserGroup group)
        {
            try
            {
                var ev = new ChangingGroupEventArgs(API.Features.Player.Get(__instance.gameObject), group);

                Player.OnChangingGroup(ev);

                return(ev.IsAllowed);
            }
            catch (Exception e)
            {
                Exiled.API.Features.Log.Error($"Exiled.Events.Patches.Events.Player.ChangingGrounp: {e}\n{e.StackTrace}");

                return(true);
            }
        }
コード例 #6
0
        private static void OnChangingGroup(ChangingGroupEventArgs ev)
        {
            if (ev.Player != player)
            {
                return;
            }

            Timing.CallDelayed(0.2f, () =>
            {
                if (ev.NewGroup == ev.Player.Group)
                {
                    originalColor = player.ReferenceHub.serverRoles.NetworkMyColor;
                    Timing.KillCoroutines(coroutineHandle);
                    coroutineHandle = Timing.RunCoroutine(UpdateColor());
                }
            });
        }
コード例 #7
0
ファイル: Player.cs プロジェクト: gamehunt/EXILED
 /// <summary>
 /// Called before changing a player's group.
 /// </summary>
 /// <param name="ev">The <see cref="ChangingGroupEventArgs"/> instance.</param>
 public static void OnChangingGroup(ChangingGroupEventArgs ev) => ChangingGroup.InvokeSafely(ev);