public string GetTime(Item item) { var time = blockedItems.FirstOrDefault(p => p.Value.Contains(item.info.shortname)).Key; if (time == default(string)) { return(string.Empty); } return(core.TimeToString(core.StringToTime(time) - (DateTime.Now.Subtract(core.GetWipeTime()).TotalSeconds))); }
void BlockPlayer(BasePlayer player, bool owner = false) { if (player.IsSleeping()) { return; } if (!timers.ContainsKey(player.userID)) { player.ChatMessage(string.Format(Messages[owner ? "ownerhome" : "blockactive"], core.TimeToString(owner ? ownerBlockTime : blockTime))); } if (!owner || !timers.ContainsKey(player.userID)) { var secs = owner ? ownerBlockTime : blockTime; timers[player.userID] = secs; CooldownRaid(player, secs); } }
object OnPlayerChat(ConsoleSystem.Arg arg) { var sender = arg.Player(); var message = arg.GetString(0, "text").Trim(); if (message.Length > 500) { sender.Kick("Иди нахуй со своим спамом в чат, уже пофиксили) азазаза затралил)"); return(false); } if (message.Length > 100) { SendReply(sender, "Запрещено отправлять столько символов"); return(false); } message = RemoveCaps(message); message = message.Replace("лагает", "хорошо работает").Replace("гавно", "хороший"); int floodTime; if (floods.TryGetValue(sender.userID, out floodTime)) { floodTime++; SendReply(sender, string.Format(Messages["floodTimeout"], floodTime)); floods[sender.userID] = floodTime; return(true); } else { floods[sender.userID] = 3; } double muteTime; if (mutes.TryGetValue(sender.userID, out muteTime)) { var remain = muteTime - GrabCurrentTime(); if (remain >= 0) { Reply(sender, string.Format(Messages["muteself"], core.TimeToString(remain))); return(true); } mutes.Remove(sender.userID); } bool mute; var censorMessage = message.CensorBadWords(out mute); /*if (mute) * Mute(sender, 60*autoMuteMin); * else * { * ClearMessage(message).CensorBadWords(out mute); * if (mute) * Mute(sender, 60 * autoMuteMin); * }*/ var prefix = prefixes[GetPrefix(sender.userID)].ToString(); var name = names[GetName(sender.userID)].ToString().Replace("{0}", sender.displayName); if (!PermissionService.HasPermission(sender.userID, clearedNamesPerms[GetName(sender.userID)])) { name = names[namesKeys.Find(p => p.Contains("default"))].ToString(); GetConfig(sender.userID).Name = "default"; } if (!PermissionService.HasPermission(sender.userID, clearedPrefixesPerms[GetPrefix(sender.userID)])) { prefix = prefixes[prefixesKeys.Find(p => p.Contains("default"))].ToString(); GetConfig(sender.userID).Prefix = "default"; } if (!PermissionService.HasPermission(sender.userID, clearedMessagesPerms[GetMessage(sender.userID)])) { GetConfig(sender.userID).Message = "default"; } Interface.Oxide.RootLogger.Write(LogType.Info, $"[CHAT] " + (string.IsNullOrEmpty(sender.displayName) ? $"{message}" : $"{sender.displayName}: {censorMessage}")); censorMessage = messages[GetMessage(sender.userID)].ToString().Replace("{0}", censorMessage); if (prefix.Length > 0) { name = $"{prefix} {name}"; } BroadcastChat(name, message, sender.userID, censorMessage); return(true); }
void AddShopPlayer(ulong userId) { if (!players.ContainsKey(userId)) { players[userId] = new ShopPlayer() { Points = 15, TotalOnlineSeconds = 0 } } ; } #endregion #region UI void CreateItemsUI() { float gap = 0.014f; float width = 0.15f; float height = 0.17f; float startxBox = gap; float startyBox = 1f - height - 0.05f; float xmin = startxBox; float ymin = startyBox; itemsUI = new CuiElementContainer(); int i = 0; var mainParent = itemsUI.Add(new CuiPanel() { Image = { Color = "0 0 0 0" } }, "rustyshop.items", "rustyshop.items.customui"); foreach (var item in items) { var min = $"{xmin} {ymin}"; var max = $"{xmin + width} {ymin + height}"; var panelname = itemsUI.Add(new CuiPanel() { Image = { Color = "0 0 0 0" }, RectTransform = { AnchorMin = min, AnchorMax = max } }, mainParent); itemsUI.Add(new CuiButton() { Button = { Command = $"rustyshop.buy {i}", Color = "0.3 0.5 0.4 1" }, RectTransform = { AnchorMin = "0 0", AnchorMax = "1 0.25" }, Text = { Text = $"<color=orange><color=#00ccff>{item.Amount}</color> за <color=#ffcc00>{item.Cost}</color> р.</color>", FontSize = 16, Align = TextAnchor.MiddleCenter } }, panelname); itemsUI.Add(new CuiElement() { Name = CuiHelper.GetGuid(), Parent = panelname, Components = { new CuiRawImageComponent() { Png = ImageStorage.FetchPng(item.DisplayName), Sprite = "assets/content/textures/generic/fulltransparent.tga" }, new CuiRectTransformComponent() { AnchorMin = "0 0.25", AnchorMax = "1 1" } } }); xmin += width + gap; if (xmin + width >= 1) { xmin = startxBox; ymin -= height + gap; } i++; } } void DrawUI(BasePlayer player) { var shopPlayer = players[player.userID]; foreach (var we in itemsUI) { CuiHelper.DestroyUi(player, we.Name); } core.DrawUIWithEx(player, "RustyShop", "menu", itemsUI, shopPlayer.Points, core.TimeToString(shopPlayer.TotalOnlineSeconds)); } void DestroyUI(BasePlayer player) { core.DestroyUI(player, "RustyShop", "menu"); } IEnumerator LoadImages() { foreach (var item in items) { yield return(CommunityEntity.ServerInstance.StartCoroutine(ImageStorage.Store(item.DisplayName, item.URL))); } CreateItemsUI(); }
object OnHammerHit(BasePlayer player, HitInfo info) { if (!activePlayers.Contains(player.userID)) { return(null); } if (info == null) { return(null); } var entity = info?.HitEntity; if (entity == null) { return(null); } if ((!(entity is DecayEntity) && !(entity is Signage)) && !entity.ShortPrefabName.ContainsAny("shelves", "quarry", "ladder")) { return(null); } if (!entity.OwnerID.IsSteamId()) { return(null); } if (NoEscape != null) { var time = (double)NoEscape.Call("ApiGetTime", player.userID); if (time > 0) { SendReply(player, string.Format(Messages["raidremove"], core.TimeToString(time))); return(null); } } if (friendRemove && HasFriend(player.userID, entity.OwnerID)) { RemoveEntity(player, entity); return(true); } if (selfRemove && entity.OwnerID == player.userID) { RemoveEntity(player, entity); return(true); } var ret = Interface.Call("CanRemove", player, entity); if (ret is string) { SendReply(player, (string)ret); return(null); } if (ret is bool && (bool)ret) { RemoveEntity(player, entity); return(true); } if (cupboardRemove) { var cupboard = player.GetBuildingPrivilege(); if (cupboard != null && cupboard.authorizedPlayers.Select(p => p.userid).Contains(player.userID)) { RemoveEntity(player, entity); return(true); } } SendReply(player, "<color=#ffcc00><size=16>Для ремува авторизуйтесь в шкафу!</size></color>"); return(null); }