using System.Collections.Generic; namespace Oxide.Plugins { [Info("HW Vanish", "klauz24", "1.2.1"), Description("Allows you to go invisible.")] internal class HWVanish : HurtworldPlugin { private const string _perm = "hwvanish.use"; private void Init() => permission.RegisterPermission(_perm, this); protected override void LoadDefaultMessages() { lang.RegisterMessages(new Dictionary { {"Prefix", "[HW Vanish]"}, {"Syntax", "Syntax: /vanish on|off."}, {"NoPerm", "You do not have permission to use this command."}, {"Enabled", "Vanish has been enabled."}, {"Disabled", "Vanish has been disabled."}, }, this); } [ChatCommand("vanish")] private void VanishCommand(PlayerSession session, string command, string[] args) { if (session.IsAdmin || permission.UserHasPermission(session.SteamId.ToString(), _perm)) { if (args.Length == 1) { var generator = RuntimeHurtDB.Instance.GetObjectByGuid("dcea248c43a3a9b43a3ec1a53c3141e5"); var io = GlobalItemManager.Instance.CreateItem(generator); var inv = session.WorldPlayerEntity.GetComponent(); var headSlotItem = inv.GetSlot(8); switch (args[0].ToLower()) { case "on": if (headSlotItem != null && headSlotItem != io) { inv.GiveItemServer(headSlotItem); } inv.SetSlot(8, io); HandleOverHeadName(session, true); SendMessage(session, "Enabled"); break; case "off": if (headSlotItem != null) { inv.SetSlot(8, null); HandleOverHeadName(session, false); SendMessage(session, "Disabled"); } break; } } else { SendMessage(session, "Syntax"); } } else { SendMessage(session, "NoPerm"); } } private void HandleOverHeadName(PlayerSession session, bool isEnabling) { string playerName; string clanTag; if (isEnabling) { playerName = " "; clanTag = " "; } else { playerName = session.Identity.Name; clanTag = session.Identity.Clan == null ? " " : "[" + session.Identity.Clan.ClanTag + "]"; } session.WorldPlayerEntity.GetComponent().RPC("UpdateName", uLink.RPCMode.OthersExceptOwnerBuffered, playerName); session.WorldPlayerEntity.GetComponent().RPC("RPCUpdateTag", uLink.RPCMode.Server, clanTag); } private void SendMessage(PlayerSession session, string langKey) => hurt.SendChatMessage(session, lang.GetMessage("Prefix", this, session.SteamId.ToString()), lang.GetMessage(langKey, this, session.SteamId.ToString())); } }