001/* 002 * Trident - A Multithreaded Server Alternative 003 * Copyright 2014 The TridentSDK Team 004 * 005 * Licensed under the Apache License, Version 2.0 (the "License"); 006 * you may not use this file except in compliance with the License. 007 * You may obtain a copy of the License at 008 * 009 * http://www.apache.org/licenses/LICENSE-2.0 010 * 011 * Unless required by applicable law or agreed to in writing, software 012 * distributed under the License is distributed on an "AS IS" BASIS, 013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 014 * See the License for the specific language governing permissions and 015 * limitations under the License. 016 */ 017 018package net.tridentsdk.server.packets.play.in; 019 020import io.netty.buffer.ByteBuf; 021import net.tridentsdk.base.Position; 022import net.tridentsdk.server.netty.ClientConnection; 023import net.tridentsdk.server.netty.packet.Packet; 024import net.tridentsdk.server.player.PlayerConnection; 025import net.tridentsdk.server.player.TridentPlayer; 026 027/** 028 * Packet sent when player moved both x, y, z and yaw, and pitch. 029 */ 030public class PacketPlayInPlayerCompleteMove extends PacketPlayInPlayerMove { 031 032 @Override 033 public int id() { 034 return 0x0D; 035 } 036 037 @Override 038 public Packet decode(ByteBuf buf) { 039 double x = buf.readDouble(); 040 double y = buf.readDouble(); 041 double z = buf.readDouble(); 042 float newYaw = buf.readFloat(); 043 float newPitch = buf.readFloat(); 044 045 super.location = Position.create(null, x, y, z, newYaw, newPitch); 046 super.onGround = buf.readBoolean(); 047 return this; 048 } 049 050 @Override 051 public void handleReceived(ClientConnection connection) { 052 TridentPlayer player = ((PlayerConnection) connection).player(); 053 super.location.setWorld(player.world()); 054 player.setPosition(super.location); 055 056 if (player.isLoggingIn()){ 057 player.resumeLogin(); 058 } 059 } 060}