Archived
0

Merge branch 'proto_1.12.2' into h2-playermanager

# Conflicts:
#	core/src/main/java/mc/core/EntityLocation.java
#	core/src/main/java/mc/core/Location.java
#	core/src/test/java/mc/core/TestEntityLocation.java
#	core/src/test/java/mc/core/TestLocation.java
This commit is contained in:
2018-09-08 17:18:20 +03:00
43 changed files with 703 additions and 470 deletions

View File

@@ -2,10 +2,14 @@ package mc.core.h2db;
import lombok.Data;
import mc.core.EntityLocation;
import mc.core.exception.ResourceUnloadedException;
import mc.core.network.NetChannel;
import mc.core.player.Player;
import mc.core.player.PlayerSettings;
import mc.core.world.World;
import java.lang.ref.Reference;
import java.lang.ref.WeakReference;
import java.util.List;
import java.util.UUID;
@@ -18,6 +22,23 @@ public class H2Player implements Player {
private List<Integer> loadedChunks;
private NetChannel channel;
private EntityLocation location;
private Reference<World> $refWorld;
private boolean flying = false;
private PlayerSettings settings;
@Override
public World getWorld() {
if ($refWorld == null) {
return null;
} else if ($refWorld.get() == null) {
throw new ResourceUnloadedException("You're trying to get unloaded world");
} else {
return $refWorld.get();
}
}
@Override
public void setWorld(World world) {
this.$refWorld = new WeakReference<>(world);
}
}

View File

@@ -39,7 +39,7 @@ public class H2PlayerSerializer {
stmt.setDouble(5, player.getLocation().getZ());
stmt.setFloat(6, player.getLocation().getYaw());
stmt.setFloat(7, player.getLocation().getPitch());
stmt.setString(8, player.getLocation().getWorld().getName());
stmt.setString(8, player.getWorld().getName());
return stmt;
}, keyHolder);
@@ -106,9 +106,9 @@ public class H2PlayerSerializer {
resultSet.getDouble("location_y"),
resultSet.getDouble("location_z"),
resultSet.getFloat("location_yaw"),
resultSet.getFloat("location_pitch"),
world
resultSet.getFloat("location_pitch")
));
player.setWorld(world);
}
}
}

View File

@@ -49,9 +49,9 @@ public class TestH2Database {
rnd.nextDouble(minD, maxD),
rnd.nextDouble(minD, maxD),
rnd.nextFloat() * (maxF - minF) + minF,
rnd.nextFloat() * (maxF - minF) + minF,
mockWorld
rnd.nextFloat() * (maxF - minF) + minF
));
player.setWorld(mockWorld);
}
@Test
@@ -81,7 +81,7 @@ public class TestH2Database {
assertEquals(player.getLocation().getZ(), resultSet.getDouble("location_z"), 0.01d);
assertEquals(player.getLocation().getYaw(), resultSet.getFloat("location_yaw"), 0.01f);
assertEquals(player.getLocation().getPitch(), resultSet.getFloat("location_pitch"), 0.01f);
assertEquals(player.getLocation().getWorld().getName(), resultSet.getString("location_world"));
assertEquals(player.getWorld().getName(), resultSet.getString("location_world"));
});
}
@@ -100,7 +100,7 @@ public class TestH2Database {
ps.setDouble(6, player.getLocation().getZ());
ps.setFloat(7, player.getLocation().getYaw());
ps.setFloat(8, player.getLocation().getPitch());
ps.setString(9, player.getLocation().getWorld().getName());
ps.setString(9, player.getWorld().getName());
});
assertEquals(1, affectedRows);