From ab3aabf6b0084444d516080084c1af31ff242601 Mon Sep 17 00:00:00 2001 From: Felix Cravic Date: Wed, 22 Apr 2020 02:42:58 +0200 Subject: [PATCH] Update --- build.gradle | 2 +- src/main/java/fr/themode/demo/PlayerInit.java | 5 ++--- .../java/fr/themode/demo/entity/ChickenCreature.java | 5 +++-- src/main/java/fr/themode/demo/entity/TestArrow.java | 3 ++- .../fr/themode/demo/generator/NoiseTestGenerator.java | 1 - .../fr/themode/minestom/benchmark/BenchmarkManager.java | 9 ++++----- .../java/fr/themode/minestom/entity/EntityCreature.java | 8 +++++--- src/main/java/fr/themode/minestom/entity/Player.java | 3 ++- .../minestom/entity/pathfinding/EntityPathFinder.java | 2 +- .../fr/themode/minestom/inventory/PlayerInventory.java | 6 +++--- src/main/java/fr/themode/minestom/item/ItemStack.java | 4 ++++ 11 files changed, 27 insertions(+), 21 deletions(-) diff --git a/build.gradle b/build.gradle index 21ffed56b..ed704d1d4 100644 --- a/build.gradle +++ b/build.gradle @@ -35,7 +35,7 @@ dependencies { implementation 'com.github.Querz:NBT:4.1' implementation 'com.github.luben:zstd-jni:1.4.3-1' implementation 'com.esotericsoftware:reflectasm:1.11.9' - implementation 'com.github.LynnOwens:starlite:9971b899f7' + // https://mvnrepository.com/artifact/com.google.code.gson/gson implementation group: 'com.google.code.gson', name: 'gson', version: '2.8.5' diff --git a/src/main/java/fr/themode/demo/PlayerInit.java b/src/main/java/fr/themode/demo/PlayerInit.java index a6e31aaac..2404ed036 100644 --- a/src/main/java/fr/themode/demo/PlayerInit.java +++ b/src/main/java/fr/themode/demo/PlayerInit.java @@ -1,6 +1,5 @@ package fr.themode.demo; -import fr.themode.demo.entity.ChickenCreature; import fr.themode.demo.generator.ChunkGeneratorDemo; import fr.themode.demo.generator.NoiseTestGenerator; import fr.themode.minestom.MinecraftServer; @@ -117,8 +116,8 @@ public class PlayerInit { p.teleport(player.getPosition()); }*/ - ChickenCreature chickenCreature = new ChickenCreature(player.getPosition()); - chickenCreature.setInstance(player.getInstance()); + //ChickenCreature chickenCreature = new ChickenCreature(player.getPosition()); + //chickenCreature.setInstance(player.getInstance()); }); diff --git a/src/main/java/fr/themode/demo/entity/ChickenCreature.java b/src/main/java/fr/themode/demo/entity/ChickenCreature.java index dd07f37f7..617ad4596 100644 --- a/src/main/java/fr/themode/demo/entity/ChickenCreature.java +++ b/src/main/java/fr/themode/demo/entity/ChickenCreature.java @@ -1,5 +1,6 @@ package fr.themode.demo.entity; +import fr.themode.minestom.MinecraftServer; import fr.themode.minestom.entity.Entity; import fr.themode.minestom.entity.EntityCreature; import fr.themode.minestom.entity.EntityType; @@ -86,7 +87,7 @@ public class ChickenCreature extends EntityCreature { //move(randomX * speed, 0, randomZ * speed, true); } - //Player player = MinecraftServer.getConnectionManager().getPlayer("TheMode911"); - //moveTo(player.getPosition().clone().add(2, 0, 2)); + Player player = MinecraftServer.getConnectionManager().getPlayer("TheMode911"); + moveTo(player.getPosition().clone()); } } diff --git a/src/main/java/fr/themode/demo/entity/TestArrow.java b/src/main/java/fr/themode/demo/entity/TestArrow.java index 9501a84f0..dc024b6cf 100644 --- a/src/main/java/fr/themode/demo/entity/TestArrow.java +++ b/src/main/java/fr/themode/demo/entity/TestArrow.java @@ -1,5 +1,6 @@ package fr.themode.demo.entity; +import fr.themode.minestom.entity.EntityType; import fr.themode.minestom.entity.LivingEntity; import fr.themode.minestom.entity.ObjectEntity; @@ -8,7 +9,7 @@ public class TestArrow extends ObjectEntity { private LivingEntity shooter; public TestArrow(LivingEntity shooter) { - super(2); + super(EntityType.ARROW.getId()); this.shooter = shooter; } diff --git a/src/main/java/fr/themode/demo/generator/NoiseTestGenerator.java b/src/main/java/fr/themode/demo/generator/NoiseTestGenerator.java index 655f8c62c..70137d640 100644 --- a/src/main/java/fr/themode/demo/generator/NoiseTestGenerator.java +++ b/src/main/java/fr/themode/demo/generator/NoiseTestGenerator.java @@ -11,7 +11,6 @@ public class NoiseTestGenerator extends ChunkGenerator { private Random random = new Random(); private FastNoise fastNoise = new FastNoise(); - private int totalChunk = 15; { fastNoise.SetNoiseType(FastNoise.NoiseType.Simplex); diff --git a/src/main/java/fr/themode/minestom/benchmark/BenchmarkManager.java b/src/main/java/fr/themode/minestom/benchmark/BenchmarkManager.java index fb67bdac6..021bb3a9f 100644 --- a/src/main/java/fr/themode/minestom/benchmark/BenchmarkManager.java +++ b/src/main/java/fr/themode/minestom/benchmark/BenchmarkManager.java @@ -9,7 +9,6 @@ import java.lang.management.ThreadMXBean; import java.util.*; import static fr.themode.minestom.MinecraftServer.*; -import static org.junit.Assert.assertTrue; public class BenchmarkManager { @@ -19,12 +18,8 @@ public class BenchmarkManager { THREAD_NAME_PLAYERS_ENTITIES, THREAD_NAME_SCHEDULER); static { - assertTrue(threadMXBean.isThreadCpuTimeSupported()); - assertTrue(threadMXBean.isCurrentThreadCpuTimeSupported()); - threadMXBean.setThreadContentionMonitoringEnabled(true); threadMXBean.setThreadCpuTimeEnabled(true); - assertTrue(threadMXBean.isThreadCpuTimeEnabled()); } private Map lastCpuTimeMap = new HashMap<>(); @@ -74,6 +69,10 @@ public class BenchmarkManager { this.enabled = false; } + public void addThreadMonitor(String threadName) { + threads.add(threadName); + } + public long getUsedMemory() { return Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory(); } diff --git a/src/main/java/fr/themode/minestom/entity/EntityCreature.java b/src/main/java/fr/themode/minestom/entity/EntityCreature.java index 3bd63c8bc..d99006637 100644 --- a/src/main/java/fr/themode/minestom/entity/EntityCreature.java +++ b/src/main/java/fr/themode/minestom/entity/EntityCreature.java @@ -33,7 +33,6 @@ public abstract class EntityCreature extends LivingEntity { setNextPathPosition(); //System.out.println("END TARGET"); } else { - // TODO jump support moveTowards(targetPosition, getAttributeValue(Attribute.MOVEMENT_SPEED)); //System.out.println("MOVE TOWARD " + targetPosition); } @@ -123,8 +122,8 @@ public abstract class EntityCreature extends LivingEntity { public void jump(float height) { // FIXME magic value - Vector velocity = new Vector(0, height * 6, 0); - setVelocity(velocity, 250); + Vector velocity = new Vector(0, height * 8, 0); + setVelocity(velocity, 350); } public void moveTo(Position position) { @@ -151,5 +150,8 @@ public abstract class EntityCreature extends LivingEntity { } this.targetPosition = blockPosition.toPosition().subtract(0.5f, 0, 0.5f); + // FIXME: jump support + //if(blockPosition.getY() > getPosition().getY()) + // jump(1); } } diff --git a/src/main/java/fr/themode/minestom/entity/Player.java b/src/main/java/fr/themode/minestom/entity/Player.java index 1d3caa166..191df60a6 100644 --- a/src/main/java/fr/themode/minestom/entity/Player.java +++ b/src/main/java/fr/themode/minestom/entity/Player.java @@ -604,7 +604,8 @@ public class Player extends LivingEntity { if (dimension == null) throw new IllegalArgumentException("Dimension cannot be null!"); if (dimension.equals(getDimension())) - return; + throw new IllegalArgumentException("The dimension need to be different than the current one!"); + RespawnPacket respawnPacket = new RespawnPacket(); respawnPacket.dimension = dimension; respawnPacket.gameMode = gameMode; diff --git a/src/main/java/fr/themode/minestom/entity/pathfinding/EntityPathFinder.java b/src/main/java/fr/themode/minestom/entity/pathfinding/EntityPathFinder.java index 7f1fd5bb2..aad12d94f 100644 --- a/src/main/java/fr/themode/minestom/entity/pathfinding/EntityPathFinder.java +++ b/src/main/java/fr/themode/minestom/entity/pathfinding/EntityPathFinder.java @@ -12,7 +12,7 @@ import java.util.function.Consumer; public class EntityPathFinder { - private ExecutorService pathfindingPool = new MinestomThread(MinecraftServer.THREAD_COUNT_ENTITIES_PATHFINDING, MinecraftServer.THREAD_NAME_ENTITIES_PATHFINDING); + private static ExecutorService pathfindingPool = new MinestomThread(MinecraftServer.THREAD_COUNT_ENTITIES_PATHFINDING, MinecraftServer.THREAD_NAME_ENTITIES_PATHFINDING); private Entity entity; diff --git a/src/main/java/fr/themode/minestom/inventory/PlayerInventory.java b/src/main/java/fr/themode/minestom/inventory/PlayerInventory.java index 607e1455d..bc2ce51b2 100644 --- a/src/main/java/fr/themode/minestom/inventory/PlayerInventory.java +++ b/src/main/java/fr/themode/minestom/inventory/PlayerInventory.java @@ -333,17 +333,17 @@ public class PlayerInventory implements InventoryModifier, InventoryClickHandler ItemStack cursor = getCursorItem(); ItemStack clicked = getItemStack(slot, OFFSET); - boolean slotClick = convertToPacketSlot(slot) < 9; + boolean hotbarClick = convertToPacketSlot(slot) < 9; InventoryClickResult clickResult = clickProcessor.shiftClick(getInventoryCondition(), player, slot, clicked, cursor, new InventoryClickLoopHandler(0, items.length, 1, i -> { - if (slotClick) { + if (hotbarClick) { return i < 9 ? i + 9 : i - 9; } else { return convertSlot(i, OFFSET); } }, - index -> items[index], + index -> getItemStack(index, OFFSET), (index, itemStack) -> setItemStack(index, OFFSET, itemStack))); if (clickResult == null) diff --git a/src/main/java/fr/themode/minestom/item/ItemStack.java b/src/main/java/fr/themode/minestom/item/ItemStack.java index 6f254bf83..391c80c07 100644 --- a/src/main/java/fr/themode/minestom/item/ItemStack.java +++ b/src/main/java/fr/themode/minestom/item/ItemStack.java @@ -76,6 +76,10 @@ public class ItemStack implements DataContainer { return materialId; } + public Material getMaterial() { + return Material.fromId(getMaterialId()); + } + public void setAmount(byte amount) { this.amount = amount; }