示例#1
0
        private void ManageSign(UnturnedPlayer uPlayer, InteractableSign Sign)
        {
            if (Sign.text == null || Sign.text == "" || !Sign.text.Contains("~") || !uPlayer.HasPermission("signteleporter.teleport"))
            {
                return;
            }
            int[] Coordinates;
            try
            {
                Coordinates = Array.ConvertAll(Sign.text.Split('~', '~')[1].Split(','), s => int.Parse(s));
            } catch (Exception ex)
            {
                UnturnedChat.Say(uPlayer, "There has been an error teleporting from sign!", Color.red);
                Logger.LogWarning($"There has been an Error, contact Mr.Kwabs#9751 or [email protected] with the following:\n[Recieving Coordinates]");
                Logger.Log($"{ex}", ConsoleColor.DarkYellow);
                return;
            }

            try
            {
                uPlayer.Teleport(new Vector3(Coordinates[0], Coordinates[1], Coordinates[2]), uPlayer.Player.look.rot);
            } catch (Exception ex)
            {
                UnturnedChat.Say(uPlayer, "There has been an error teleporting from sign!", Color.red);
                Logger.LogWarning($"There has been an Error, contact Mr.Kwabs#9751 or [email protected] with the following:\n[Attempting Teleport]");
                Logger.Log($"{ex}", ConsoleColor.DarkYellow);
                return;
            }
            UnturnedChat.Say(uPlayer, "Successfully teleported from Sign!", Color.yellow);
            Logger.LogWarning($"{uPlayer.DisplayName} has teleported to {new Vector3(Coordinates[0], Coordinates[1], Coordinates[2])} from a sign!");
            return;
        }
        private void OnModifySignRequested(CSteamID steamId, InteractableSign sign,  // lgtm [cs/too-many-ref-parameters]
                                           ref string text, ref bool shouldAllow)
        {
            var drop = BarricadeManager.FindBarricadeByRootTransform(sign.transform);

            if (drop == null)
            {
                return;
            }

            var buildable = new UnturnedBarricadeBuildable(drop);

            var nativePlayer = PlayerTool.getPlayer(steamId);
            var player       = GetUnturnedPlayer(nativePlayer);

            var @event = new UnturnedSignModifyingEvent(buildable, player, text)
            {
                IsCancelled = !shouldAllow
            };

            Emit(@event);

            text = @event.Text;

            shouldAllow = [email protected];
        }
示例#3
0
 private bool AllowTeleport(InteractableSign Sign)
 {
     if (AllowedIDs.Contains(Sign.owner.ToString()))
     {
         return(true);
     }
     return(false);
 }
示例#4
0
        private void ManageSign(UnturnedPlayer uPlayer, InteractableSign Sign)
        {
            if (Sign.text == null || Sign.text == "" || !Sign.text.Contains("*") || !uPlayer.HasPermission("signurl"))
            {
                return;
            }

            string URL = Sign.text.Split('*', '*')[1].ToString();

            uPlayer.Player.sendBrowserRequest(Instance.Configuration.Instance.DefaultDesc, URL);
        }
示例#5
0
        static bool ServerSetSignTextInternalPrefix(InteractableSign sign, ref string trimmedText)
        {
            Door door = SellDoorPlugin.Instance.DoorService.GetDoorOrItem(sign.transform);

            if (door != null)
            {
                trimmedText = SellDoorPlugin.Instance.DoorService.GetSignText(door);
            }

            return(true);
        }
        private void ManageSign(UnturnedPlayer uPlayer, InteractableSign Sign)
        {
            if (Sign.text == null || Sign.text == "" || !Sign.text.Contains("*") || !Sign.text.Contains("~") || !uPlayer.HasPermission("signurlteleport"))
            {
                return;
            }
            int[] Coordinates;
            if (Sign.text.Contains("*"))
            {
                string URL = Sign.text.Split('*', '*')[1].ToString();
                uPlayer.Player.sendBrowserRequest(Instance.Configuration.Instance.DefaultDesc, URL);
            }
            else
            {
                try
                {
                    Coordinates = Array.ConvertAll(Sign.text.Split('~', '~')[1].Split(','), s => int.Parse(s));
                }
                catch (Exception ex)
                {
                    UnturnedChat.Say(uPlayer, "There has been an error using this sign!", Color.red);
                    Logger.LogWarning($"There has been an error!");
                    Logger.Log($"{ex}", ConsoleColor.DarkYellow);
                    return;
                }

                try
                {
                    uPlayer.Teleport(new Vector3(Coordinates[0], Coordinates[1], Coordinates[2]), uPlayer.Player.look.rot);
                }
                catch (Exception ex)
                {
                    UnturnedChat.Say(uPlayer, "There has been an error teleporting from sign!", Color.red);
                    Logger.LogWarning($"There has been an Error, contact Mr.Kwabs#9751 or [email protected] with the following:\n[Attempting Teleport]");
                    Logger.Log($"{ex}", ConsoleColor.DarkYellow);
                    return;
                }
                UnturnedChat.Say(uPlayer, "Successfully teleported from Sign!", Color.yellow);
                Logger.LogWarning($"{uPlayer.DisplayName} has teleported to {new Vector3(Coordinates[0], Coordinates[1], Coordinates[2])} from a sign!");
                return;
            }
        }
        public void UpdateSign(string text)
        {
            if (Transform == null)
            {
                return;
            }

            if (!BarricadeManager.tryGetInfo(Transform, out _, out _, out _, out _, out _, out BarricadeDrop drop))
            {
                return;
            }

            InteractableSign interactableSign = drop.interactable as InteractableSign;

            if (interactableSign == null)
            {
                return;
            }

            BarricadeManager.ServerSetSignText(interactableSign, text);
        }
示例#8
0
 private void OnGesture(UnturnedPlayer user, UnturnedPlayerEvents.PlayerGesture gesture)
 {
     if (gesture == UnturnedPlayerEvents.PlayerGesture.PunchLeft || gesture == UnturnedPlayerEvents.PlayerGesture.PunchRight)
     {
         Transform trans = RaycastHelper.Raycast(user, 5f);
         if (trans == null)
         {
             return;
         }
         InteractableSign sign = trans.GetComponent <InteractableSign>();
         if (sign == null)
         {
             return;
         }
         string[] info = Utils.GetSignLink(sign.GetInstanceID());
         if (info == null)
         {
             return;
         }
         user.Player.sendBrowserRequest(info[0], info[1]);
     }
 }
示例#9
0
        public void Execute(IRocketPlayer caller, string[] command)
        {
            UnturnedPlayer user = (UnturnedPlayer)caller;
            SignLink       main = SignLink.Instance;

            Transform trans = RaycastHelper.Raycast(user, 8f);

            if (trans == null)
            {
                UnturnedChat.Say(user, main.Translate("no_sign"), true);
                return;
            }
            InteractableSign sign = trans.GetComponent <InteractableSign>();

            if (sign == null)
            {
                UnturnedChat.Say(user, main.Translate("no_sign"), true);
                return;
            }
            if (command.Length != 2)
            {
                UnturnedChat.Say(user, main.Translate("error_usage"), true);
                return;
            }

            string msg  = command[0];
            string link = command[1];

            if (Utils.GetSignLink(sign.GetInstanceID()) != null)
            {
                UnturnedChat.Say(user, main.Translate("sign_already_exist"), true);
                return;
            }

            Utils.AddSignLink(sign.GetInstanceID(), msg, link);
            UnturnedChat.Say(user, main.Translate("sign_added"), true);
        }
示例#10
0
        //assigns uCaller and Gester
        public void OnUpdatedGesture(UnturnedPlayer uCaller, UnturnedPlayerEvents.PlayerGesture Gesture, InteractableSign Sign, UnturnedPlayer uPlayer, string description)
        {
            //assigns website upon punching the sign
            //attempting to convert text from sign into link to website! **Having Issues**
            if (Gesture == UnturnedPlayerEvents.PlayerGesture.PunchLeft && Sign.text.Contains('*') && uPlayer.HasPermission("signurl"))
            {
                description = defaultdesc;
                //string[] url; ----> FUDGING DURR! WHY AM I DECLARING TWICE :(
                string url = Sign.text.Split('*', '*')[1].ToString();
                uCaller.Player.sendBrowserRequest(description, url);

                return;
            }
            else
            {
                Logger.LogError("Something went WAY wrong. Please contact me at [email protected] or on my discord!");
                return;
            }
        }