/* * This file is part of SpoutcraftPlugin. * * Copyright (c) 2011 SpoutcraftDev <http://spoutcraft.org//> * SpoutcraftPlugin is licensed under the GNU Lesser General Public License. * * SpoutcraftPlugin is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * SpoutcraftPlugin is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package org.getspout.spoutapi.packet; import java.io.IOException; import org.bukkit.Location; import org.bukkit.util.Vector; import org.getspout.spoutapi.io.SpoutInputStream; import org.getspout.spoutapi.io.SpoutOutputStream; public class PacketSpawnTextEntity implements SpoutPacket { private String text; private Location location; private int duration; private Vector movement; private float scale; public PacketSpawnTextEntity(String text, Location location, float scale, int duration, Vector movement) { this.text = text; this.location = location; this.duration = duration; this.movement = movement; this.scale = scale; } @Override public void readData(SpoutInputStream input) throws IOException { text = input.readString(); double x, y, z; x = input.readDouble(); y = input.readDouble(); z = input.readDouble(); location = new Location(null, x, y, z); scale = input.readFloat(); duration = input.readInt(); x = input.readDouble(); y = input.readDouble(); z = input.readDouble(); movement = new Vector(x, y, z); } @Override public void writeData(SpoutOutputStream output) throws IOException { output.writeString(text); output.writeDouble(location.getX()); output.writeDouble(location.getY()); output.writeDouble(location.getZ()); output.writeFloat(scale); output.writeInt(duration); output.writeDouble(movement.getX()); output.writeDouble(movement.getY()); output.writeDouble(movement.getZ()); } @Override public void run(int playerId) { // Nothing to do here } @Override public void failure(int playerId) { } @Override public PacketType getPacketType() { return PacketType.PacketSpawnTextEntity; } @Override public int getVersion() { return 0; } }