diff --git a/src/main/java/fr/themode/demo/Main.java b/src/main/java/fr/themode/demo/Main.java index cb076dd63..b382f1e28 100644 --- a/src/main/java/fr/themode/demo/Main.java +++ b/src/main/java/fr/themode/demo/Main.java @@ -40,7 +40,7 @@ public class Main { shapelessRecipe.addIngredient(ingredient); recipeManager.addRecipe(shapelessRecipe); - MinecraftServer.getBenchmarkManager().enable(new UpdateOption(60 * 1000, TimeUnit.MILLISECOND)); + MinecraftServer.getBenchmarkManager().enable(new UpdateOption(10 * 1000, TimeUnit.MILLISECOND)); PlayerInit.init(); diff --git a/src/main/java/fr/themode/demo/PlayerInit.java b/src/main/java/fr/themode/demo/PlayerInit.java index b8bc62fa4..cc5a4f620 100644 --- a/src/main/java/fr/themode/demo/PlayerInit.java +++ b/src/main/java/fr/themode/demo/PlayerInit.java @@ -15,6 +15,7 @@ import fr.themode.minestom.instance.InstanceContainer; import fr.themode.minestom.inventory.Inventory; import fr.themode.minestom.inventory.InventoryType; import fr.themode.minestom.item.ItemStack; +import fr.themode.minestom.item.Material; import fr.themode.minestom.net.ConnectionManager; import fr.themode.minestom.timer.TaskRunnable; import fr.themode.minestom.utils.MathUtils; @@ -61,11 +62,11 @@ public class PlayerInit { for (Map.Entry<String, ThreadResult> resultEntry : benchmarkManager.getResultMap().entrySet()) { String name = resultEntry.getKey(); ThreadResult result = resultEntry.getValue(); - benchmarkMessage += name; + benchmarkMessage += "&7" + name; benchmarkMessage += ": "; - benchmarkMessage += MathUtils.round(result.getCpuPercentage(), 2) + "% CPU "; - benchmarkMessage += MathUtils.round(result.getUserPercentage(), 2) + "% USER "; - benchmarkMessage += MathUtils.round(result.getBlockedPercentage(), 2) + "% BLOCKED "; + benchmarkMessage += "&e" + MathUtils.round(result.getCpuPercentage(), 2) + "% CPU "; + benchmarkMessage += "&c" + MathUtils.round(result.getUserPercentage(), 2) + "% USER "; + benchmarkMessage += "&d" + MathUtils.round(result.getBlockedPercentage(), 2) + "% BLOCKED "; benchmarkMessage += "\n"; } // if (benchmarkMessage.length() > 0) @@ -81,7 +82,7 @@ public class PlayerInit { responseData.setName("1.15.2"); responseData.setProtocol(578); responseData.setMaxPlayer(100); - responseData.setOnline(0); + responseData.setOnline(connectionManager.getOnlinePlayers().size()); responseData.addPlayer("A name", UUID.randomUUID()); responseData.addPlayer("Could be some message", UUID.randomUUID()); responseData.setDescription("IP test: " + playerConnection.getRemoteAddress()); @@ -167,6 +168,7 @@ public class PlayerInit { player.openInventory(inventory); player.getInventory().addItemStack(new ItemStack((short) 1, (byte) 100)); + player.getInventory().addItemStack(new ItemStack(Material.DIAMOND_CHESTPLATE, (byte) 1)); /*TeamManager teamManager = Main.getTeamManager(); Team team = teamManager.createTeam(getUsername()); diff --git a/src/main/java/fr/themode/minestom/entity/EntityManager.java b/src/main/java/fr/themode/minestom/entity/EntityManager.java index 9c7a64550..ccf26cd8b 100644 --- a/src/main/java/fr/themode/minestom/entity/EntityManager.java +++ b/src/main/java/fr/themode/minestom/entity/EntityManager.java @@ -171,14 +171,14 @@ public class EntityManager { } } - public UpdateType getUpdateType() { - return updateType; - } - public void addWaitingPlayer(Player player) { this.waitingPlayers.add(player); } + public UpdateType getUpdateType() { + return updateType; + } + public void setUpdateType(UpdateType updateType) { this.updateType = updateType; } diff --git a/src/main/java/fr/themode/minestom/item/Material.java b/src/main/java/fr/themode/minestom/item/Material.java index bab468fa1..fb729a669 100644 --- a/src/main/java/fr/themode/minestom/item/Material.java +++ b/src/main/java/fr/themode/minestom/item/Material.java @@ -907,7 +907,7 @@ public enum Material { } public boolean isBlock() { - return block != null; + return block != null && this != AIR; } public Block getBlock() { diff --git a/src/main/java/fr/themode/minestom/listener/BlockPlacementListener.java b/src/main/java/fr/themode/minestom/listener/BlockPlacementListener.java index 439847bf2..f2b57a97f 100644 --- a/src/main/java/fr/themode/minestom/listener/BlockPlacementListener.java +++ b/src/main/java/fr/themode/minestom/listener/BlockPlacementListener.java @@ -58,7 +58,7 @@ public class BlockPlacementListener { blockPosition.add(offsetX, offsetY, offsetZ); boolean intersectPlayer = player.getBoundingBox().intersect(blockPosition); // TODO check if collide with nearby players - if (!intersectPlayer) { + if (material.isBlock() && !intersectPlayer) { PlayerBlockPlaceEvent playerBlockPlaceEvent = new PlayerBlockPlaceEvent((short) 10, blockPosition, packet.hand); playerBlockPlaceEvent.consumeBlock(player.getGameMode() != GameMode.CREATIVE); @@ -78,12 +78,12 @@ public class BlockPlacementListener { if (playerBlockPlaceEvent.doesConsumeBlock()) { StackingRule stackingRule = usedItem.getStackingRule(); - stackingRule.apply(usedItem, stackingRule.getAmount(usedItem) - 1); + ItemStack newUsedItem = stackingRule.apply(usedItem, stackingRule.getAmount(usedItem) - 1); if (hand == Player.Hand.OFF) { - playerInventory.setItemInOffHand(usedItem); + playerInventory.setItemInOffHand(newUsedItem); } else { // Main - playerInventory.setItemInMainHand(usedItem); + playerInventory.setItemInMainHand(newUsedItem); } } } else { diff --git a/src/main/java/fr/themode/minestom/utils/inventory/PlayerInventoryUtils.java b/src/main/java/fr/themode/minestom/utils/inventory/PlayerInventoryUtils.java index 3f0796e5d..de4950428 100644 --- a/src/main/java/fr/themode/minestom/utils/inventory/PlayerInventoryUtils.java +++ b/src/main/java/fr/themode/minestom/utils/inventory/PlayerInventoryUtils.java @@ -25,6 +25,14 @@ public class PlayerInventoryUtils { return CRAFT_SLOT_3 + 1; case 4: return CRAFT_SLOT_4 + 1; + case 5: + return HELMET_SLOT; + case 6: + return CHESTPLATE_SLOT; + case 7: + return LEGGINGS_SLOT; + case 8: + return BOOTS_SLOT; } //System.out.println("ENTRY: " + slot + " | " + offset); final int rowSize = 9;