Archived
0

Merge branch 'forwolk/dev/location-world' into anarok/loop-3

This commit is contained in:
Daniil
2018-08-06 21:55:06 +07:00
11 changed files with 115 additions and 27 deletions

View File

@@ -1,14 +1,90 @@
package mc.core; package mc.core;
import lombok.AllArgsConstructor; import mc.core.player.ILook;
import lombok.Data;
import mc.core.player.Look; import mc.core.player.Look;
import mc.core.world.World;
import java.io.Serializable; import java.io.Serializable;
import java.util.Objects;
@Data public class WarpPosition extends Location implements Serializable, ILook {
@AllArgsConstructor private ILook look;
public class WarpPosition implements Serializable {
private Location location; public WarpPosition(double x, double y, double z, World world) {
private Look look; super(x, y, z, world);
}
public WarpPosition(double x, double y, double z, float yaw, float pitch, World world) {
super(x, y, z, world);
this.look = new Look(yaw, pitch);
}
public WarpPosition(double x, double y, double z) {
super(x, y, z);
}
public WarpPosition(double x, double y, double z, float yaw, float pitch) {
super(x, y, z);
this.look = new Look(yaw, pitch);
}
public WarpPosition(long compactValue) {
super(compactValue);
}
public WarpPosition(Location location) {
super(location.getX(), location.getY(), location.getZ());
}
public WarpPosition(Location location, ILook look) {
super(location.getX(), location.getY(), location.getZ());
this.look = look;
}
public WarpPosition(long compactValue, World world) {
super(compactValue, world);
}
@Override
public void set(ILook look) {
this.look = look;
}
@Override
public float getYaw() {
return this.look.getYaw();
}
@Override
public void setYaw(float yaw) {
this.look.setYaw(yaw);
}
@Override
public float getPitch() {
return this.look.getPitch();
}
@Override
public void setPitch(float pitch) {
this.look.setPitch(pitch);
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
if (!super.equals(o)) return false;
WarpPosition that = (WarpPosition) o;
return Objects.equals(look, that.look);
}
@Override
public int hashCode() {
return Objects.hash(super.hashCode(), look);
}
public boolean hasLook() {
return look != null;
}
} }

View File

@@ -8,7 +8,7 @@ import mc.core.Location;
import mc.core.chat.MessageType; import mc.core.chat.MessageType;
import mc.core.network.NetChannel; import mc.core.network.NetChannel;
import mc.core.network.SCPacket; import mc.core.network.SCPacket;
import mc.core.player.Look; import mc.core.player.ILook;
import mc.core.player.Player; import mc.core.player.Player;
import mc.core.player.PlayerManager; import mc.core.player.PlayerManager;
import mc.core.text.Text; import mc.core.text.Text;
@@ -52,7 +52,7 @@ public class FakePlayerManager implements PlayerManager {
private static final NetChannel FAKE_NET_CHANNEL = new FakeNetChannet(); private static final NetChannel FAKE_NET_CHANNEL = new FakeNetChannet();
@Override @Override
public Player createPlayer(String name, Location defaultLocation, Look defaultLook) { public Player createPlayer(String name, Location defaultLocation, ILook defaultLook) {
return null; return null;
} }

View File

@@ -7,7 +7,7 @@ package mc.core.events;
import lombok.Getter; import lombok.Getter;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.Setter; import lombok.Setter;
import mc.core.player.Look; import mc.core.player.ILook;
import mc.core.player.Player; import mc.core.player.Player;
@RequiredArgsConstructor @RequiredArgsConstructor
@@ -15,5 +15,5 @@ import mc.core.player.Player;
@Setter @Setter
public class PlayerLookEvent extends EventBase { public class PlayerLookEvent extends EventBase {
private final Player player; private final Player player;
private Look newLook; private ILook newLook;
} }

View File

@@ -0,0 +1,13 @@
package mc.core.player;
public interface ILook {
void set(ILook look);
float getYaw();
float getPitch();
void setYaw(float yaw);
void setPitch(float pitch);
}

View File

@@ -31,7 +31,7 @@ public class InMemoryPlayerManager implements PlayerManager, Runnable {
} }
@Override @Override
public Player createPlayer(String name, Location defaultLocation, Look defaultLook) { public Player createPlayer(String name, Location defaultLocation, ILook defaultLook) {
SimplePlayer player = new SimplePlayer(); SimplePlayer player = new SimplePlayer();
player.setId(rand.nextInt(10000)); player.setId(rand.nextInt(10000));
player.setUUID(UUID.nameUUIDFromBytes(name.getBytes())); player.setUUID(UUID.nameUUIDFromBytes(name.getBytes()));

View File

@@ -7,15 +7,14 @@ package mc.core.player;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import java.io.Serializable;
@Data @Data
@AllArgsConstructor @AllArgsConstructor
public class Look implements Serializable{ public class Look implements ILook {
private float yaw, pitch; private float yaw, pitch;
public void set(Look look) { @Override
this.yaw = look.yaw; public void set(ILook look) {
this.pitch = look.pitch; this.yaw = look.getYaw();
this.pitch = look.getPitch();
} }
} }

View File

@@ -20,7 +20,7 @@ public interface Player {
Location getLocation(); Location getLocation();
Look getLook(); ILook getLook();
boolean isFlying(); boolean isFlying();
void setFlying(boolean value); void setFlying(boolean value);

View File

@@ -11,7 +11,7 @@ import java.util.List;
import java.util.Optional; import java.util.Optional;
public interface PlayerManager { public interface PlayerManager {
Player createPlayer(String name, Location defaultLocation, Look defaultLook); Player createPlayer(String name, Location defaultLocation, ILook defaultLook);
void joinServer(Player player); void joinServer(Player player);
void leftServer(Player player); void leftServer(Player player);
Optional<Player> getPlayer(String name); Optional<Player> getPlayer(String name);

View File

@@ -18,7 +18,7 @@ public class SimplePlayer implements Player {
private boolean online = false; private boolean online = false;
private NetChannel channel; private NetChannel channel;
private Location location = new Location(0, 0, 0); private Location location = new Location(0, 0, 0);
private Look look = new Look(0, 0); private ILook look = new Look(0, 0);
private boolean flying = false; private boolean flying = false;
private PlayerSettings settings; private PlayerSettings settings;
@@ -26,7 +26,7 @@ public class SimplePlayer implements Player {
this.location.set(location); this.location.set(location);
} }
public void setLook(Look look) { public void setLook(ILook look) {
this.look.set(look); this.look.set(look);
} }

View File

@@ -10,6 +10,7 @@ import lombok.Setter;
import lombok.ToString; import lombok.ToString;
import mc.core.Location; import mc.core.Location;
import mc.core.network.*; import mc.core.network.*;
import mc.core.player.ILook;
import mc.core.player.Look; import mc.core.player.Look;
@NoArgsConstructor @NoArgsConstructor
@@ -18,7 +19,7 @@ import mc.core.player.Look;
@ToString @ToString
public class PlayerPositionAndLookPacket implements SCPacket, CSPacket { public class PlayerPositionAndLookPacket implements SCPacket, CSPacket {
private Location location; private Location location;
private Look look; private ILook look;
private int teleportId; private int teleportId;
private boolean onGround = false; private boolean onGround = false;

View File

@@ -10,7 +10,6 @@ import mc.core.network.proto_1_12_2.State;
import mc.core.network.proto_1_12_2.TeleportManager; import mc.core.network.proto_1_12_2.TeleportManager;
import mc.core.network.proto_1_12_2.netty.wrappers.WrapperNetChannel; import mc.core.network.proto_1_12_2.netty.wrappers.WrapperNetChannel;
import mc.core.network.proto_1_12_2.packets.*; import mc.core.network.proto_1_12_2.packets.*;
import mc.core.player.Look;
import mc.core.player.Player; import mc.core.player.Player;
import mc.core.player.PlayerManager; import mc.core.player.PlayerManager;
import mc.core.player.PlayerMode; import mc.core.player.PlayerMode;
@@ -48,8 +47,8 @@ public class LoginHandler extends AbstractStateHandler implements LoginStateHand
Player player = playerManager.getPlayer(packet.getPlayerName()) Player player = playerManager.getPlayer(packet.getPlayerName())
.orElseGet(() -> playerManager.createPlayer( .orElseGet(() -> playerManager.createPlayer(
packet.getPlayerName(), packet.getPlayerName(),
world.getSpawn().getLocation(), world.getSpawn(),
world.getSpawn().getLook())); world.getSpawn()));
channel.writeAndFlush(new LoginSuccessPacket( channel.writeAndFlush(new LoginSuccessPacket(
player.getUUID(), player.getUUID(),
@@ -68,7 +67,7 @@ public class LoginHandler extends AbstractStateHandler implements LoginStateHand
// Spawn Position // Spawn Position
SpawnPositionPacket pkt2 = new SpawnPositionPacket(); SpawnPositionPacket pkt2 = new SpawnPositionPacket();
pkt2.setLocation(world.getSpawn().getLocation()); pkt2.setLocation(world.getSpawn());
channel.write(pkt2); channel.write(pkt2);
// Player Abilities // Player Abilities