public Package onUseItem(McpeUseItem packet, Player player) { if (!Class1.lged.ContainsKey(player.Username.ToLower())) { notlogin(player); return(null); } return(packet); }
public Package UseItemHundler(McpeUseItem packet, Player player) { NpcCore entity = Npcs.Values.FirstOrDefault(inc => inc.Block.Coordinates == packet.blockcoordinates); if (entity != null && entity.Block != new Air()) { //entity.Player = player; OnEntityEvent(new NpcEventArgs(entity, entity.KnownPosition, entity.Text, entity.Level, player)); return(null); } return(packet); }
public static Action <Task, Item, BlockCoordinates> DoUseItem(MiNetClient client) { Action <Task, Item, BlockCoordinates> doUseItem = (t, item, coords) => { McpeUseItem message = new McpeUseItem(); message.blockcoordinates = coords /* - new BlockCoordinates(0, 1, 0)*/; message.face = 4; message.facecoordinates = new Vector3(0.1f, 0.1f, 0.1f); message.playerposition = client.CurrentLocation.ToVector3(); message.item = item; client.SendPackage(message); }; return(doUseItem); }
public override void HandleMcpeUseItem(McpeUseItem message) { if (!PlayerData.isAuth) { return; } //if (DynInventory == null) { Item i = Inventory.GetItemInHand(); if (i.Id != 0) { if (!Level.AllowBuild) { if (message.item is ItemBlock) { SetBlock(message.item, (BlockFace)message.face, message.blockcoordinates, message.blockId); } } NbtCompound lines; if (!i.ExtraData.TryGet("display", out lines)) { base.HandleMcpeUseItem(message); return; } DateTime now = DateTime.UtcNow; if (Level is xCoreLevelLobby && (now - PlayerData.ActionTime) < s500) { if (i is ItemBlock) { //SetBlock(i, (BlockFace)message.face,message.blockcoordinates); SetSlot(i, message.slot); } return; } if ((now - PlayerData.ActionTime) < s500) { base.HandleMcpeUseItem(message); return; } NbtInt action; PlayerData.ActionTime = now; //new Task(() =>t } } base.HandleMcpeUseItem(message); }
private void HandleUseItem(McpeUseItem message) { Log.DebugFormat("Use item: {0}", message.item); Log.DebugFormat("Entity ID: {0}", message.entityId); Log.DebugFormat("meta: {0}", message.meta); Log.DebugFormat("x: {0}", message.x); Log.DebugFormat("y: {0}", message.y); Log.DebugFormat("z: {0}", message.z); Log.DebugFormat("face: {0}", message.face); Log.DebugFormat("fx: {0}", message.fx); Log.DebugFormat("fy: {0}", message.fy); Log.DebugFormat("fz: {0}", message.fz); Log.DebugFormat("px: {0}", message.positionX); Log.DebugFormat("py: {0}", message.positionY); Log.DebugFormat("pz: {0}", message.positionZ); if (message.face <= 5) { Level.RelayBroadcast(this, new McpeAnimate() { actionId = 1, entityId = EntityId }); Vector3 faceCoords = new Vector3(message.fx, message.fy, message.fz); Level.Interact(Level, this, message.item, new BlockCoordinates(message.x, message.y, message.z), message.meta, (BlockFace)message.face, faceCoords); } else { _itemUseTimer = new Stopwatch(); _itemUseTimer.Start(); // Snowballs and shit Level.Interact(Level, this, message.item, new BlockCoordinates(message.x, message.y, message.z), message.meta); MetadataDictionary metadata = new MetadataDictionary(); metadata[0] = new MetadataByte(16); Level.RelayBroadcast(this, new McpeSetEntityData { entityId = EntityId, metadata = metadata, }); } }
public void HandleMcpeUseItem(McpeUseItem message) { }
protected virtual void HandleUseItem(McpeUseItem message) { //Log.DebugFormat("Use item: {0}", message.item.Value.Id); //Log.DebugFormat("item meta: {0}", message.item.Value.Metadata); //Log.DebugFormat("x: {0}", message.x); //Log.DebugFormat("y: {0}", message.y); //Log.DebugFormat("z: {0}", message.z); //Log.DebugFormat("face: {0}", message.face); //Log.DebugFormat("fx: {0}", message.fx); //Log.DebugFormat("fy: {0}", message.fy); //Log.DebugFormat("fz: {0}", message.fz); //Log.DebugFormat("px: {0}", message.positionX); //Log.DebugFormat("py: {0}", message.positionY); //Log.DebugFormat("pz: {0}", message.positionZ); if (message.face <= 5) { if (GameMode != GameMode.Creative) { ItemStack itemStack = message.item.Value; if (itemStack != null && !VerifyItemStack(itemStack)) { Log.Error($"Kicked {Username} for use item hacking."); Disconnect("Error #324. Please report this error."); return; } } // Right click Vector3 faceCoords = new Vector3(message.fx, message.fy, message.fz); Level.Interact(Level, this, message.item.Value.Id, new BlockCoordinates(message.x, message.y, message.z), message.item.Value.Metadata, (BlockFace) message.face, faceCoords); } else { // Snowballs and shit _itemUseTimer = new Stopwatch(); _itemUseTimer.Start(); Level.Interact(Level, this, message.item.Value.Id, new BlockCoordinates(message.x, message.y, message.z), message.item.Value.Metadata); IsInAction = true; MetadataDictionary metadata = new MetadataDictionary { [0] = GetDataValue() }; var setEntityData = McpeSetEntityData.CreateObject(); setEntityData.entityId = EntityId; setEntityData.metadata = metadata; Level.RelayBroadcast(this, setEntityData); } }
public bool UseItem(McpeUseItem package, Player player, NbtCompound comp) //готово { return(true); }
protected virtual void HandleUseItem(McpeUseItem message) { Log.DebugFormat("Use item: {0}", message.item); Log.DebugFormat("Entity ID: {0}", message.entityId); Log.DebugFormat("meta: {0}", message.meta); Log.DebugFormat("x: {0}", message.x); Log.DebugFormat("y: {0}", message.y); Log.DebugFormat("z: {0}", message.z); Log.DebugFormat("face: {0}", message.face); Log.DebugFormat("fx: {0}", message.fx); Log.DebugFormat("fy: {0}", message.fy); Log.DebugFormat("fz: {0}", message.fz); Log.DebugFormat("px: {0}", message.positionX); Log.DebugFormat("py: {0}", message.positionY); Log.DebugFormat("pz: {0}", message.positionZ); if (message.face <= 5) { Level.RelayBroadcast(this, new McpeAnimate() { actionId = 1, entityId = EntityId }); Vector3 faceCoords = new Vector3(message.fx, message.fy, message.fz); Level.Interact(Level, this, message.item, new BlockCoordinates(message.x, message.y, message.z), message.meta, (BlockFace) message.face, faceCoords); } else { _itemUseTimer = new Stopwatch(); _itemUseTimer.Start(); // Snowballs and shit Level.Interact(Level, this, message.item, new BlockCoordinates(message.x, message.y, message.z), message.meta); MetadataDictionary metadata = new MetadataDictionary(); metadata[0] = new MetadataByte(16); Level.RelayBroadcast(this, new McpeSetEntityData { entityId = EntityId, metadata = metadata, }); } }
public Package Hookshot(McpeUseItem packet, Player player) { if (!(packet.face == -1 & player.Inventory.GetItemInHand().Id == 346)) { return(packet); } player.Level.BroadcastMessage("test: arrow", type: MessageType.Raw); // Message typeはtip popup messageが選べる! const int force = 1; //Arrow arrow = new Arrow(player, player.Level, !(force < 1.0)); Arrow arrow = new Arrow(player, player.Level); arrow.KnownPosition = (PlayerLocation)player.KnownPosition.Clone(); arrow.KnownPosition.Y += 1.62f; arrow.Velocity = arrow.KnownPosition.GetHeadDirection() * (force * 2.0f * 1.5f); arrow.KnownPosition.Yaw = (float)arrow.Velocity.GetYaw(); arrow.KnownPosition.Pitch = (float)arrow.Velocity.GetPitch(); arrow.BroadcastMovement = true; arrow.DespawnOnImpact = false; //arrow.HitEvent += testary; arrow.SpawnEntity(); var setEntityLinkPk = McpeSetEntityLink.CreateObject(); setEntityLinkPk.riderId = 0; setEntityLinkPk.riddenId = arrow.EntityId; setEntityLinkPk.linkType = 2; /* public static final byte TYPE_REMOVE = 0; * public static final byte TYPE_RIDE = 1; * public static final byte TYPE_PASSENGER = 2; */ new Task(() => player.Level.RelayBroadcast(setEntityLinkPk)).Start(); Level level = player.Level; Mob entity = new Mob(EntityType.Zombie, level) { KnownPosition = player.KnownPosition, }; entity.SpawnEntity(); entity.IsAngry = true; entity. Task.Run(() => { PlayerLocation pos = null; while (arrow.Velocity.Length() > 0) { pos = arrow.KnownPosition; Thread.Sleep(100); } McpeMovePlayer mp = McpeMovePlayer.CreateObject(); mp.entityId = 0; mp.x = pos.X; mp.y = pos.Y; mp.z = pos.Z; mp.pitch = player.KnownPosition.Pitch; mp.headYaw = player.KnownPosition.HeadYaw; mp.yaw = player.KnownPosition.Yaw; new Task(() => player.Level.RelayBroadcast(mp)).Start(); /*Console.Write("done!!" + pos); * Block block = BlockFactory.GetBlockById((byte)1); * block.Coordinates = new BlockCoordinates((int)arrow.KnownPosition.X, (int)arrow.KnownPosition.Y - 2, (int)arrow.KnownPosition.Z); * //arrow.Level.SetBlock(block); * * Block item = new Block(35); * player.KnownPosition.Y -= 2;*/ }); return(packet); }
public void HandleMcpeUseItem(McpeUseItem message) { WritePackage(message); }