public IServerPlayerToJSON(IServerPlayer Player) { if (Player.ConnectionState >= EnumClientState.Connecting) { CurrentChunkSentRadius = Player.CurrentChunkSentRadius; Role = Player.Role; ServerData = Player.ServerData; Ping = Player.Ping; LanguageCode = Player.LanguageCode; IpAddress = Player.IpAddress; ConnectionState = Player.ConnectionState.ToString(); Groups = new PlayerGroupMembership[Player.Groups.Length]; for (var i = 0; i < Player.Groups.Length; i++) { Groups[i] = Player.Groups[i]; } SpawnPosition = Player.SpawnPosition; } else { CurrentChunkSentRadius = 0; Role = Player.Role; ServerData = Player.ServerData; Ping = 0; LanguageCode = Player.LanguageCode; IpAddress = ""; ConnectionState = Player.ConnectionState.ToString(); Groups = new PlayerGroupMembership[Player.Groups.Length]; for (var i = 0; i < Player.Groups.Length; i++) { Groups[i] = Player.Groups[i]; } SpawnPosition = Player.SpawnPosition; } }
public override void OnHeldInteractStop(float secondsUsed, ItemSlot slot, EntityAgent byEntity, BlockSelection blockSel, EntitySelection entitySel) { ItemStack content = GetContent(slot.Itemstack); if (secondsUsed > 1.45f && byEntity.World.Side == EnumAppSide.Server && content != null) { if (essencesDic.TryGetValue("duration", out duration)) { if (!essencesDic.ContainsKey("health")) { TempEffect potionEffect = new TempEffect(); potionEffect.tempEntityStats((byEntity as EntityPlayer), essencesDic); } else { TempEffect potionEffect = new TempEffect(); potionEffect.tempTickEntityStats((byEntity as EntityPlayer), essencesDic, tickSec, essencesDic["health"]); } if (byEntity is EntityPlayer) { IServerPlayer sPlayer = (byEntity.World.PlayerByUid((byEntity as EntityPlayer).PlayerUID) as IServerPlayer); if (essencesDic.ContainsKey("recall")) { if (api.Side.IsServer()) { FuzzyEntityPos spawn = sPlayer.GetSpawnPosition(false); byEntity.TeleportTo(spawn); } } sPlayer.SendMessage(GlobalConstants.InfoLogChatGroup, "You feel the effects of the " + content.GetName(), EnumChatType.Notification); } IPlayer player = null; if (byEntity is EntityPlayer) { player = byEntity.World.PlayerByUid(((EntityPlayer)byEntity).PlayerUID); } if (slot.StackSize > 1) { ItemStack newStack = slot.Itemstack.Clone(); newStack.StackSize = slot.StackSize - 1; ItemStack newContent = GetContent(newStack); api.World.SpawnItemEntity(newStack, byEntity.Pos.XYZ); slot.TakeOut(slot.StackSize - 1); } splitStackAndPerformAction(byEntity, slot, (stack) => TryTakeLiquid(stack, 0.25f)?.StackSize ?? 0); slot.MarkDirty(); EntityPlayer entityPlayer = byEntity as EntityPlayer; if (entityPlayer == null) { return; } entityPlayer.Player.InventoryManager.BroadcastHotbarSlot(); } } base.OnHeldInteractStop(secondsUsed, slot, byEntity, blockSel, entitySel); }
public override void OnHeldInteractStop(float secondsUsed, ItemSlot slot, EntityAgent byEntity, BlockSelection blockSel, EntitySelection entitySel) { if (secondsUsed > 1.45f && byEntity.World.Side == EnumAppSide.Server) { if (tickSec == 0) { TempEffect potionEffect = new TempEffect(); potionEffect.tempEntityStats((byEntity as EntityPlayer), essencesDic); } else { TempEffect potionEffect = new TempEffect(); potionEffect.tempTickEntityStats((byEntity as EntityPlayer), essencesDic, tickSec, health); } if (byEntity is EntityPlayer) { IServerPlayer player = (byEntity.World.PlayerByUid((byEntity as EntityPlayer).PlayerUID) as IServerPlayer); if (essencesDic.ContainsKey("recall")) { if (api.Side.IsServer()) { FuzzyEntityPos spawn = player.GetSpawnPosition(false); byEntity.TeleportTo(spawn); } player.SendMessage(GlobalConstants.InfoLogChatGroup, "You feel the effects of the " + slot.Itemstack.GetName(), EnumChatType.Notification); } else { player.SendMessage(GlobalConstants.InfoLogChatGroup, "You feel the effects of the " + slot.Itemstack.GetName(), EnumChatType.Notification); } } slot.TakeOut(1); slot.MarkDirty(); } }