private void SetSignImages(Signage signage) { string hex = Team == EventManager.Team.B ? captureTheFlagEvent.TeamBColor : captureTheFlagEvent.TeamAColor; if (signImageCRC == 0) { hex = hex.TrimStart('#'); int red = int.Parse(hex.Substring(0, 2), NumberStyles.AllowHexSpecifier); int green = int.Parse(hex.Substring(2, 2), NumberStyles.AllowHexSpecifier); int blue = int.Parse(hex.Substring(4, 2), NumberStyles.AllowHexSpecifier); Color color = new Color((float)red / 255f, (float)green / 255f, (float)blue / 255f); Color[] array = new Color[256 * 256]; for (int i = 0; i < array.Length; i++) { array[i] = color; } Texture2D texture2D = new Texture2D(256, 256); texture2D.SetPixels(array); byte[] bytes = texture2D.EncodeToPNG(); Destroy(texture2D); signImageCRC = FileStorage.server.Store(bytes, FileStorage.Type.png, CommunityEntity.ServerInstance.net.ID); } Array.Resize <uint>(ref signage.textureIDs, 1); signage.textureIDs[0] = signImageCRC; signage.SetFlag(BaseEntity.Flags.Locked, true); }
private void CheckChatCommand(BasePlayer player, string command, string[] args) { //Check for the Use Permission if (!hasPermissionUse(player, PERMISSION_USE)) { player.ChatMessage(string.Format(GetLangValue("NoPermission", player.UserIDString))); return; } Signage sign = null; RaycastHit hit; // Get the object that is in front of the player within the maximum distance set in the config. if (Physics.Raycast(player.eyes.HeadRay(), out hit, 3)) { // Attempt to grab the Signage entity, if there is none this will set the sign to null, // otherwise this will set it to the sign the player is looking at. sign = hit.GetEntity() as Signage; } else { player.ChatMessage(string.Format(GetLangValue("NothingFound", player.UserIDString))); return; } //If everything is ok, here we actually get the needed Values player.ChatMessage(string.Format(GetLangValue("LastEdit", player.UserIDString), getPlayerDataForSign(sign, player.UserIDString))); }
void Awake() { entity = GetComponent <Signage>(); initialRot = entity.transform.eulerAngles.y; secsToTake = instance.configData.RotationSpeed; isRotating = false; }
public QueueItem(string ur, BasePlayer se, Signage si, bool raw) { url = ur; sender = se; sign = si; this.raw = raw; }
void OnSignUpdated(Signage sign, BasePlayer player, string text) { uint signId = sign.net.ID; SignItem signItem; if (m_signsLogs.SignItems.ContainsKey(signId)) { signItem = m_signsLogs.SignItems[signId]; } else { signItem = new SignItem(); m_signsLogs.SignItems[signId] = signItem; } AccessItem accessItem; if (signItem.AccessItems.ContainsKey(player.userID)) { accessItem = signItem.AccessItems[player.userID]; } else { accessItem = new AccessItem(); signItem.AccessItems[player.userID] = accessItem; } accessItem.dateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); }
public QueueItem(string ur, IPlayer se, Signage si, string ty) { url = ur; sender = se; sign = si; type = ty; }
private void DynamicSignCommand(IPlayer player, string command, string[] args) { if (!player.HasPermission(permAdmin)) { player.Reply(Lang("Not allowed", player.Id, command)); return; } RaycastHit hit; Signage sign = null; var basePlayer = player.Object as BasePlayer; if (Physics.Raycast(basePlayer.eyes.HeadRay(), out hit, 2f)) { sign = hit.transform.GetComponentInParent <Signage>(); } if (sign == null) { player.Reply(Lang("No signs found", player.Id)); return; } if (storedData.Signs.ContainsKey(sign.net.ID)) { player.Reply(Lang("Already a dynamic sign", player.Id)); return; } CreateSign(player, sign, args.Length >= 1 ? args[0] : "death"); var info = new SignData(sign); storedData.Signs.Add(sign.net.ID, info); Interface.Oxide.DataFileSystem.WriteObject(Name, storedData); }
public void Add(string url, IPlayer player, Signage sign, string type) { QueueList.Add(new QueueItem(url, player, sign, type)); if (activeLoads < maxActiveLoads) { Next(); } }
public void Add(string url, BasePlayer player, Signage s, bool raw) { QueueList.Enqueue(new QueueItem(url, player, s, raw)); if (ActiveLoads < SignArtist.MaxActiveLoads) { Next(); } }
public void Add(string url, BasePlayer player, Signage sign) { QueueList.Add(new QueueItem(url, player, sign)); if (activeLoads < MaxActiveLoads) { Next(); } }
void Awake() { entity = GetComponent <Signage>(); initialRot = entity.transform.eulerAngles; secsToTake = instance.configData.RotationSpeed; startRot = new Vector3(entity.transform.eulerAngles.x, 0.01f, entity.transform.eulerAngles.z); endRot = new Vector3(entity.transform.eulerAngles.x, 359.99f, entity.transform.eulerAngles.z); isRotating = false; }
public SignData(Signage sign) { TextureId = sign.textureID; /*SignColor = "ffffff"; * TextColor = "000000"; * Width = 0; * Height = 0;*/ }
private void UpdateSignImage(Signage signage, string text, bool hideText = false) { if (!configData.Sign.GenerateImage) { return; } imageStorage.AddQueueItem(new ImageStorage.QueueItem(text, signage, hideText)); }
void sil(BasePlayer player, string command, string[] args) { if (args.Length == 0) { player.ChatMessage(Syntax); return; } if (!HasPerm(player, "signartist.url")) { player.ChatMessage(NoPerm); return; } float cd; if (CoolDowns.TryGetValue(player, out cd) && cd > Time.realtimeSinceStartup && !HasPerm(player, "signartist.cd")) { player.ChatMessage(string.Format(CooldownMsg, ToReadableString(cd - Time.realtimeSinceStartup))); return; } RaycastHit hit; Signage sign = null; if (Physics.Raycast(player.eyes.HeadRay(), out hit, MaxDist)) { sign = hit.transform.GetComponentInParent <Signage>(); } if (sign == null) { player.ChatMessage(NoSignFound); return; } if (!sign.CanUpdateSign(player) && !HasPerm(player, "signartist.owner")) { player.ChatMessage(NotYourSign); return; } var raw = args.Length > 1 && args[1].Equals("raw", StringComparison.OrdinalIgnoreCase); if (raw && !HasPerm(player, "signartist.raw")) { player.ChatMessage(NoPerm); return; } UWeb.Add(args[0], player, sign, raw); player.ChatMessage(AddedToQueue); if (UrlCooldown > 0) { CoolDowns[player] = Time.realtimeSinceStartup + UrlCooldown; } }
object CanUpdateSign(BasePlayer player, Signage sign) { if (usingCTF && hasStarted) { if (sign == FlagA?.flag || sign == FlagB?.flag) { return(false); } } return(null); }
internal static FlagController Create(CaptureTheFlagEvent captureTheFlagEvent, EventManager.Team team, Vector3 position) { Signage signage = Spawn(position); FlagController flagController = signage.gameObject.AddComponent <FlagController>(); flagController.captureTheFlagEvent = captureTheFlagEvent; flagController.Team = team; flagController.basePosition = position; return(flagController); }
bool CanUpdateSign(Signage sign, BasePlayer player) { if (m_configData.SignBlocks.ContainsKey(player.userID)) { SignBlock signBlock = m_configData.SignBlocks[player.userID]; player.ChatMessage(m_configData.Messages["forbidden"].Replace("%reason", signBlock.reason).Replace("%player_name", player.displayName)); sign.Kill(); return(false); } return(true); }
private void CreateSign(IPlayer player, Signage sign, string type) { uWeb.Add(SignImage(), player, sign, type); if (!autoLock) { return; } sign.SetFlag(BaseEntity.Flags.Locked, true); sign.SendNetworkUpdate(); }
private void OnEntityKill(BaseNetworkable networkable) { Signage signage = networkable.GetComponent <Signage>(); if (signage != null) { if (signRegisteredSkulls.ContainsKey(signage)) { signRegisteredSkulls.Remove(signage); } } }
void CreateSign(BasePlayer player, Signage sign) { uWeb.Add(SignImage(), player, sign); // Prevent player edits if (!LockSigns) { return; } sign.SetFlag(BaseEntity.Flags.Locked, true); sign.SendNetworkUpdate(); }
private static Signage Spawn(Vector3 position) { Signage signage = GameManager.server.CreateEntity(SIGN_PREFAB, position) as Signage; signage.enableSaving = false; signage.Spawn(); Destroy(signage.GetComponent <MeshCollider>()); Destroy(signage.GetComponent <DestroyOnGroundMissing>()); Destroy(signage.GetComponent <GroundWatch>()); return(signage); }
void SignChatCmd(BasePlayer player) { if (!HasPermission(player, "deathsigns.admin")) { PrintToChat(player, NoPermission); return; } // Check for sign to use RaycastHit hit; Signage sign = null; if (Physics.Raycast(player.eyes.HeadRay(), out hit, 2f)) { sign = hit.transform.GetComponentInParent <Signage>(); } if (sign == null) { PrintToChat(player, NoSignsFound); return; } if (storedData.Signs.ContainsKey(sign.net.ID)) { PrintToChat(player, "Already a death sign!"); return; } // Create sign image var text = $"{storedData.Deaths}+{(storedData.Deaths == 1 ? "death" : "deaths")}"; const string bgColor = "ffffff"; const string textColor = "000000"; const int textSize = 80; const int width = 350; const int height = 150; var url = $"http://placeholdit.imgix.net/~text?txtsize={textSize}&txt={text}&w={width}&h={height}"; uWeb.Add(url, player, sign); // Store updated data var info = new SignData(sign); storedData.Signs.Add(sign.net.ID, info); Interface.Oxide.DataFileSystem.WriteObject(Name, storedData); // Lock sign to prevent player edits sign.SetFlag(BaseEntity.Flags.Locked, true); sign.SendNetworkUpdate(); }
void sil(BasePlayer player, string command, string[] args) { if (args.Length == 0) { player.ChatMessage(Syntax); return; } float cd; if (CoolDowns.TryGetValue(player, out cd) && cd > Time.realtimeSinceStartup && !HasPerm(player, "sil_cd")) { player.ChatMessage(String.Format(CooldownMsg, ToReadableString(cd - Time.realtimeSinceStartup))); return; } RaycastHit hit; Signage sign = null; if (Physics.Raycast(player.eyes.HeadRay(), out hit, MaxDist)) { sign = hit.transform.GetComponentInParent <Signage>(); } if (sign == null) { player.ChatMessage(NoSignFound); return; } if (!(player.CanBuild() || HasPerm(player, "sil_owner"))) { player.ChatMessage(NotYourSign); return; } if (HasPerm(player, "sil_url")) { UWeb.Add(args[0], player, sign); player.ChatMessage(AddedToQueue); if (UrlCooldown > 0) { CoolDowns[player] = Time.realtimeSinceStartup + UrlCooldown; } } else { player.ChatMessage(NoPerm); } }
public BluemTransactionResponse DoTest() { var store = new X509Store(StoreName.My, StoreLocation.LocalMachine); var logger = new LogFactory().GetCurrentClassLogger(typeof(TestClass)); var signage = new Signage(store, logger); var paymentRequest = new BluemRequestFactory().CreateRequest(new BluemPaymentRequestType()) as IBluePaymentRequest; paymentRequest.AddPaymentData(new EntranceCode(), "foobar", "qooxdoo", "Such description", 12.34, DateTime.Today.AddMonths(1).AddMinutes(10).AddSeconds(21)); BluemClient client = new BluemClient(logger); var signedRequest = signage.SignRequest(paymentRequest); var response = (BluemTransactionResponse)client.SendRequest(signedRequest); return(response); }
void OnSignUpdated(Signage sign, BasePlayer player) { if (signs.ContainsKey(sign.textureID)) { signs[sign.textureID] = $"{player.displayName}, {player.userID}, {DateTime.Now}"; } else { signs.Add(sign.textureID, $"{player.displayName}, {player.userID}, {DateTime.Now}"); } if (logUpdates) { Log(Lang("SignUpdated", null, sign.textureID, sign.OwnerID, DateTime.Now, player.displayName, player.userID)); } }
/// <summary> /// Gets the Last editor for a given Signage /// </summary> /// <param name="sign"></param> /// <param name="caller"></param> /// <returns></returns> private string getPlayerDataForSign(Signage sign, string caller) { if (sign != null) { string playerData = ""; foreach (SignCheckerData data in FindSignById(sign.ToString())) { playerData = data.ToString(); } if (!string.IsNullOrEmpty(playerData)) { return(playerData); } } return(string.Format(GetLangValue("NoOne", caller))); }
private bool CanUpdateSign(BasePlayer player, Signage sign) { if (SignBanInfo.IsSignBanned(player.IPlayer)) { SendChatMessage(player.IPlayer, Lang("Player Try Update", player.UserIDString)); return(false); } if (ZoneManager != null && ZMNoSignUpdates(player) == true) { return(false); } else { return(true); } }
IEnumerator WaitForRequest(WWW www, QueueItem info) { yield return(www); BasePlayer player = info.sender; if (www.error == null) { if (www.size <= MaxSize) { Signage sign = info.sign; if (sign.textureID > 0U) { FileStorage.server.Remove(sign.textureID, FileStorage.Type.png); } sign.textureID = FileStorage.server.Store(www.bytes, FileStorage.Type.png); sign.SendNetworkUpdate(BasePlayer.NetworkQueue.Update); player.ChatMessage(Loaded); if (ConsoleLog) { ServerConsole.PrintColoured(System.ConsoleColor.DarkYellow, ConsoleLogMsg .Replace("{steam}", player.userID.ToString()) .Replace("{name}", player.displayName) .Replace("{id}", sign.textureID.ToString()) .Replace("{url}", info.url)); } } else { player.ChatMessage(SizeError); CoolDowns.Remove(player); } } else { player.ChatMessage(Error.Replace("{error}", www.error)); CoolDowns.Remove(player); } ActiveLoads--; if (QueueList.Count > 0) { Next(); } }
object OnEntityTakeDamage(BaseCombatEntity entity, HitInfo hitInfo) { if (hitInfo == null || entity == null) { return(null); } BasePlayer player = hitInfo.Initiator as BasePlayer; Signage sign = entity as Signage; if (player && sign && m_signsShowInfo.Contains(player.userID)) { if (player.net.connection.authLevel == 0 && !permission.UserHasPermission(player.userID.ToString(), "SSNSigns.signs")) { return(null); } uint signId = sign.net.ID; player.ChatMessage("Sign: <color=cyan>" + signId + "</color>"); if (m_signsLogs.SignItems.ContainsKey(signId)) { List <ulong> contextPlayers = new List <ulong>(); SignItem signItem = m_signsLogs.SignItems[signId]; int i = 0; foreach (ulong userID in sortedByDatetime(signItem.AccessItems)) { contextPlayers.Add(userID); AccessItem accessItem = m_signsLogs.SignItems[signId].AccessItems[userID]; string message = m_configData.Messages["player_access"]; message = message.Replace("%player_steamid", userID.ToString()); message = message.Replace("%player_name", SSNNotifier.Call <string>("PlayerName", userID)); message = message.Replace("%timestamp", accessItem.dateTime); player.ChatMessage((++i).ToString() + ") " + message); } SSNNotifier.Call("SetContextPlayers", player.userID, contextPlayers); } return("handled"); } return(null); }
private void InitializeSign(Signage sign, string name, Vector3 localPosition, Vector3 localRotation) { BaseEntity[] children = sign.children.Where(x => x.GetComponent <DroppedItem>())?.ToArray() ?? null; if (children != null) { for (int i = 0; i < children.Length; i++) { sign.RemoveChild(children[i]); children[i].Kill(); } } DroppedItem skullItem = CreateSkullItem(name, sign, localPosition, localRotation); UpdateSignImage(sign, name); signRegisteredSkulls.Add(sign, skullItem); }
private object IOnSignUpdated(Signage sign, BaseEntity.RPCMessage msg) { return Interface.CallHook("OnSignUpdated", sign, msg.player); }