mirror of
https://github.com/Minestom/Minestom.git
synced 2024-11-20 01:25:27 +01:00
1.19.4 (#11)
* first join
* add new entities
* fix type on interpolation duration
* switch long to var long
* switch long to var long, round 2
* add flags to TextDisplay
* 1.19.4
* setView in Entity#teleport
* do not trigger touchTick if entity physics are disabled
* Add new 1.19.4 packets
* constant expr
* no localhost on github actions
* yoinked changes from 1.19.3 main
* update to forked changes
* remove potion command
* remove potion command
---------
Co-authored-by: GreatWyrm <alecmusante@gmail.com>
(cherry picked from commit 7f3144337d
)
This commit is contained in:
parent
139ef70bf7
commit
cc6ff539f0
@ -54,6 +54,8 @@ public class Main {
|
||||
commandManager.register(new ExecuteCommand());
|
||||
commandManager.register(new RedirectTestCommand());
|
||||
commandManager.register(new DebugGridCommand());
|
||||
commandManager.register(new DisplayCommand());
|
||||
|
||||
|
||||
commandManager.setUnknownCommandCallback((sender, command) -> sender.sendMessage(Component.text("Unknown command", NamedTextColor.RED)));
|
||||
|
||||
|
@ -0,0 +1,91 @@
|
||||
package net.minestom.demo.commands;
|
||||
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.minestom.server.MinecraftServer;
|
||||
import net.minestom.server.command.CommandSender;
|
||||
import net.minestom.server.command.builder.Command;
|
||||
import net.minestom.server.command.builder.CommandContext;
|
||||
import net.minestom.server.command.builder.arguments.ArgumentType;
|
||||
import net.minestom.server.entity.Entity;
|
||||
import net.minestom.server.entity.EntityType;
|
||||
import net.minestom.server.entity.Player;
|
||||
import net.minestom.server.entity.metadata.display.AbstractDisplayMeta;
|
||||
import net.minestom.server.entity.metadata.display.BlockDisplayMeta;
|
||||
import net.minestom.server.entity.metadata.display.ItemDisplayMeta;
|
||||
import net.minestom.server.entity.metadata.display.TextDisplayMeta;
|
||||
import net.minestom.server.instance.block.Block;
|
||||
import net.minestom.server.item.ItemStack;
|
||||
import net.minestom.server.item.Material;
|
||||
import net.minestom.server.utils.time.TimeUnit;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class DisplayCommand extends Command {
|
||||
|
||||
public DisplayCommand() {
|
||||
super("display");
|
||||
|
||||
var follow = ArgumentType.Literal("follow");
|
||||
|
||||
addSyntax(this::spawnItem, ArgumentType.Literal("item"));
|
||||
addSyntax(this::spawnBlock, ArgumentType.Literal("block"));
|
||||
addSyntax(this::spawnText, ArgumentType.Literal("text"));
|
||||
|
||||
addSyntax(this::spawnItem, ArgumentType.Literal("item"), follow);
|
||||
addSyntax(this::spawnBlock, ArgumentType.Literal("block"), follow);
|
||||
addSyntax(this::spawnText, ArgumentType.Literal("text"), follow);
|
||||
}
|
||||
|
||||
public void spawnItem(@NotNull CommandSender sender, @NotNull CommandContext context) {
|
||||
if (!(sender instanceof Player player))
|
||||
return;
|
||||
|
||||
var entity = new Entity(EntityType.ITEM_DISPLAY);
|
||||
var meta = (ItemDisplayMeta) entity.getEntityMeta();
|
||||
meta.setItemStack(ItemStack.of(Material.STICK));
|
||||
entity.setInstance(player.getInstance(), player.getPosition());
|
||||
|
||||
if (context.has("follow")) {
|
||||
startSmoothFollow(entity, player);
|
||||
}
|
||||
}
|
||||
|
||||
public void spawnBlock(@NotNull CommandSender sender, @NotNull CommandContext context) {
|
||||
if (!(sender instanceof Player player))
|
||||
return;
|
||||
|
||||
var entity = new Entity(EntityType.BLOCK_DISPLAY);
|
||||
var meta = (BlockDisplayMeta) entity.getEntityMeta();
|
||||
meta.setBlockState(Block.STONE_STAIRS.stateId());
|
||||
entity.setInstance(player.getInstance(), player.getPosition());
|
||||
|
||||
if (context.has("follow")) {
|
||||
startSmoothFollow(entity, player);
|
||||
}
|
||||
}
|
||||
|
||||
public void spawnText(@NotNull CommandSender sender, @NotNull CommandContext context) {
|
||||
if (!(sender instanceof Player player))
|
||||
return;
|
||||
|
||||
var entity = new Entity(EntityType.TEXT_DISPLAY);
|
||||
var meta = (TextDisplayMeta) entity.getEntityMeta();
|
||||
meta.setBillboardRenderConstraints(AbstractDisplayMeta.BillboardConstraints.CENTER);
|
||||
meta.setText(Component.text("Hello, world!"));
|
||||
entity.setInstance(player.getInstance(), player.getPosition());
|
||||
|
||||
if (context.has("follow")) {
|
||||
startSmoothFollow(entity, player);
|
||||
}
|
||||
}
|
||||
|
||||
private void startSmoothFollow(@NotNull Entity entity, @NotNull Player player) {
|
||||
MinecraftServer.getSchedulerManager().buildTask(() -> {
|
||||
var meta = (AbstractDisplayMeta) entity.getEntityMeta();
|
||||
meta.setNotifyAboutChanges(false);
|
||||
meta.setInterpolationStartDelta(1);
|
||||
meta.setInterpolationDuration(20);
|
||||
meta.setTranslation(player.getPosition().sub(entity.getPosition()));
|
||||
meta.setNotifyAboutChanges(true);
|
||||
}).delay(20, TimeUnit.SERVER_TICK).repeat(20, TimeUnit.SERVER_TICK).schedule();
|
||||
}
|
||||
}
|
@ -3,7 +3,7 @@ metadata.format.version = "1.1"
|
||||
[versions]
|
||||
|
||||
# Important dependencies
|
||||
minestomData = "53e0da5be1"
|
||||
data = "1.19.4-rv2"
|
||||
adventure = "4.12.0"
|
||||
kotlin = "1.7.22"
|
||||
hydrazine = "1.7.2"
|
||||
@ -51,7 +51,7 @@ kotlin-stdlib-jdk8 = { group = "org.jetbrains.kotlin", name = "kotlin-stdlib-jdk
|
||||
|
||||
# Miscellaneous
|
||||
hydrazine = { group = "com.github.MadMartian", name = "hydrazine-path-finding", version.ref = "hydrazine" }
|
||||
minestomData = { group = "com.github.Minestom", name = "MinestomDataGenerator", version.ref = "minestomData" }
|
||||
minestomData = { group = "dev.hollowcube", name = "minestom-ce-data", version.ref = "data" }
|
||||
jetbrainsAnnotations = { group = "org.jetbrains", name = "annotations", version.ref = "jetbrainsAnnotations" }
|
||||
hephaistos-common = { group = "io.github.jglrxavpok.hephaistos", name = "common", version.ref = "hephaistos" }
|
||||
hephaistos-gson = { group = "io.github.jglrxavpok.hephaistos", name = "gson", version.ref = "hephaistos" }
|
||||
|
@ -21,18 +21,26 @@ interface EntityTypes {
|
||||
|
||||
EntityType BLAZE = EntityTypeImpl.get("minecraft:blaze");
|
||||
|
||||
EntityType BLOCK_DISPLAY = EntityTypeImpl.get("minecraft:block_display");
|
||||
|
||||
EntityType BOAT = EntityTypeImpl.get("minecraft:boat");
|
||||
|
||||
EntityType CHEST_BOAT = EntityTypeImpl.get("minecraft:chest_boat");
|
||||
EntityType CAMEL = EntityTypeImpl.get("minecraft:camel");
|
||||
|
||||
EntityType CAT = EntityTypeImpl.get("minecraft:cat");
|
||||
|
||||
EntityType CAVE_SPIDER = EntityTypeImpl.get("minecraft:cave_spider");
|
||||
|
||||
EntityType CHEST_BOAT = EntityTypeImpl.get("minecraft:chest_boat");
|
||||
|
||||
EntityType CHEST_MINECART = EntityTypeImpl.get("minecraft:chest_minecart");
|
||||
|
||||
EntityType CHICKEN = EntityTypeImpl.get("minecraft:chicken");
|
||||
|
||||
EntityType COD = EntityTypeImpl.get("minecraft:cod");
|
||||
|
||||
EntityType COMMAND_BLOCK_MINECART = EntityTypeImpl.get("minecraft:command_block_minecart");
|
||||
|
||||
EntityType COW = EntityTypeImpl.get("minecraft:cow");
|
||||
|
||||
EntityType CREEPER = EntityTypeImpl.get("minecraft:creeper");
|
||||
@ -45,12 +53,16 @@ interface EntityTypes {
|
||||
|
||||
EntityType DROWNED = EntityTypeImpl.get("minecraft:drowned");
|
||||
|
||||
EntityType EGG = EntityTypeImpl.get("minecraft:egg");
|
||||
|
||||
EntityType ELDER_GUARDIAN = EntityTypeImpl.get("minecraft:elder_guardian");
|
||||
|
||||
EntityType END_CRYSTAL = EntityTypeImpl.get("minecraft:end_crystal");
|
||||
|
||||
EntityType ENDER_DRAGON = EntityTypeImpl.get("minecraft:ender_dragon");
|
||||
|
||||
EntityType ENDER_PEARL = EntityTypeImpl.get("minecraft:ender_pearl");
|
||||
|
||||
EntityType ENDERMAN = EntityTypeImpl.get("minecraft:enderman");
|
||||
|
||||
EntityType ENDERMITE = EntityTypeImpl.get("minecraft:endermite");
|
||||
@ -59,6 +71,8 @@ interface EntityTypes {
|
||||
|
||||
EntityType EVOKER_FANGS = EntityTypeImpl.get("minecraft:evoker_fangs");
|
||||
|
||||
EntityType EXPERIENCE_BOTTLE = EntityTypeImpl.get("minecraft:experience_bottle");
|
||||
|
||||
EntityType EXPERIENCE_ORB = EntityTypeImpl.get("minecraft:experience_orb");
|
||||
|
||||
EntityType EYE_OF_ENDER = EntityTypeImpl.get("minecraft:eye_of_ender");
|
||||
@ -71,6 +85,8 @@ interface EntityTypes {
|
||||
|
||||
EntityType FROG = EntityTypeImpl.get("minecraft:frog");
|
||||
|
||||
EntityType FURNACE_MINECART = EntityTypeImpl.get("minecraft:furnace_minecart");
|
||||
|
||||
EntityType GHAST = EntityTypeImpl.get("minecraft:ghast");
|
||||
|
||||
EntityType GIANT = EntityTypeImpl.get("minecraft:giant");
|
||||
@ -85,16 +101,22 @@ interface EntityTypes {
|
||||
|
||||
EntityType HOGLIN = EntityTypeImpl.get("minecraft:hoglin");
|
||||
|
||||
EntityType HOPPER_MINECART = EntityTypeImpl.get("minecraft:hopper_minecart");
|
||||
|
||||
EntityType HORSE = EntityTypeImpl.get("minecraft:horse");
|
||||
|
||||
EntityType HUSK = EntityTypeImpl.get("minecraft:husk");
|
||||
|
||||
EntityType ILLUSIONER = EntityTypeImpl.get("minecraft:illusioner");
|
||||
|
||||
EntityType INTERACTION = EntityTypeImpl.get("minecraft:interaction");
|
||||
|
||||
EntityType IRON_GOLEM = EntityTypeImpl.get("minecraft:iron_golem");
|
||||
|
||||
EntityType ITEM = EntityTypeImpl.get("minecraft:item");
|
||||
|
||||
EntityType ITEM_DISPLAY = EntityTypeImpl.get("minecraft:item_display");
|
||||
|
||||
EntityType ITEM_FRAME = EntityTypeImpl.get("minecraft:item_frame");
|
||||
|
||||
EntityType FIREBALL = EntityTypeImpl.get("minecraft:fireball");
|
||||
@ -113,22 +135,10 @@ interface EntityTypes {
|
||||
|
||||
EntityType MINECART = EntityTypeImpl.get("minecraft:minecart");
|
||||
|
||||
EntityType CHEST_MINECART = EntityTypeImpl.get("minecraft:chest_minecart");
|
||||
|
||||
EntityType COMMAND_BLOCK_MINECART = EntityTypeImpl.get("minecraft:command_block_minecart");
|
||||
|
||||
EntityType FURNACE_MINECART = EntityTypeImpl.get("minecraft:furnace_minecart");
|
||||
|
||||
EntityType HOPPER_MINECART = EntityTypeImpl.get("minecraft:hopper_minecart");
|
||||
|
||||
EntityType SPAWNER_MINECART = EntityTypeImpl.get("minecraft:spawner_minecart");
|
||||
|
||||
EntityType TNT_MINECART = EntityTypeImpl.get("minecraft:tnt_minecart");
|
||||
EntityType MOOSHROOM = EntityTypeImpl.get("minecraft:mooshroom");
|
||||
|
||||
EntityType MULE = EntityTypeImpl.get("minecraft:mule");
|
||||
|
||||
EntityType MOOSHROOM = EntityTypeImpl.get("minecraft:mooshroom");
|
||||
|
||||
EntityType OCELOT = EntityTypeImpl.get("minecraft:ocelot");
|
||||
|
||||
EntityType PAINTING = EntityTypeImpl.get("minecraft:painting");
|
||||
@ -149,7 +159,7 @@ interface EntityTypes {
|
||||
|
||||
EntityType POLAR_BEAR = EntityTypeImpl.get("minecraft:polar_bear");
|
||||
|
||||
EntityType TNT = EntityTypeImpl.get("minecraft:tnt");
|
||||
EntityType POTION = EntityTypeImpl.get("minecraft:potion");
|
||||
|
||||
EntityType PUFFERFISH = EntityTypeImpl.get("minecraft:pufferfish");
|
||||
|
||||
@ -175,10 +185,14 @@ interface EntityTypes {
|
||||
|
||||
EntityType SMALL_FIREBALL = EntityTypeImpl.get("minecraft:small_fireball");
|
||||
|
||||
EntityType SNIFFER = EntityTypeImpl.get("minecraft:sniffer");
|
||||
|
||||
EntityType SNOW_GOLEM = EntityTypeImpl.get("minecraft:snow_golem");
|
||||
|
||||
EntityType SNOWBALL = EntityTypeImpl.get("minecraft:snowball");
|
||||
|
||||
EntityType SPAWNER_MINECART = EntityTypeImpl.get("minecraft:spawner_minecart");
|
||||
|
||||
EntityType SPECTRAL_ARROW = EntityTypeImpl.get("minecraft:spectral_arrow");
|
||||
|
||||
EntityType SPIDER = EntityTypeImpl.get("minecraft:spider");
|
||||
@ -191,18 +205,16 @@ interface EntityTypes {
|
||||
|
||||
EntityType TADPOLE = EntityTypeImpl.get("minecraft:tadpole");
|
||||
|
||||
EntityType EGG = EntityTypeImpl.get("minecraft:egg");
|
||||
EntityType TEXT_DISPLAY = EntityTypeImpl.get("minecraft:text_display");
|
||||
|
||||
EntityType ENDER_PEARL = EntityTypeImpl.get("minecraft:ender_pearl");
|
||||
EntityType TNT = EntityTypeImpl.get("minecraft:tnt");
|
||||
|
||||
EntityType EXPERIENCE_BOTTLE = EntityTypeImpl.get("minecraft:experience_bottle");
|
||||
|
||||
EntityType POTION = EntityTypeImpl.get("minecraft:potion");
|
||||
|
||||
EntityType TRIDENT = EntityTypeImpl.get("minecraft:trident");
|
||||
EntityType TNT_MINECART = EntityTypeImpl.get("minecraft:tnt_minecart");
|
||||
|
||||
EntityType TRADER_LLAMA = EntityTypeImpl.get("minecraft:trader_llama");
|
||||
|
||||
EntityType TRIDENT = EntityTypeImpl.get("minecraft:trident");
|
||||
|
||||
EntityType TROPICAL_FISH = EntityTypeImpl.get("minecraft:tropical_fish");
|
||||
|
||||
EntityType TURTLE = EntityTypeImpl.get("minecraft:turtle");
|
||||
|
@ -41,10 +41,16 @@ interface Blocks {
|
||||
|
||||
Block ACACIA_PLANKS = BlockImpl.get("minecraft:acacia_planks");
|
||||
|
||||
Block CHERRY_PLANKS = BlockImpl.get("minecraft:cherry_planks");
|
||||
|
||||
Block DARK_OAK_PLANKS = BlockImpl.get("minecraft:dark_oak_planks");
|
||||
|
||||
Block MANGROVE_PLANKS = BlockImpl.get("minecraft:mangrove_planks");
|
||||
|
||||
Block BAMBOO_PLANKS = BlockImpl.get("minecraft:bamboo_planks");
|
||||
|
||||
Block BAMBOO_MOSAIC = BlockImpl.get("minecraft:bamboo_mosaic");
|
||||
|
||||
Block OAK_SAPLING = BlockImpl.get("minecraft:oak_sapling");
|
||||
|
||||
Block SPRUCE_SAPLING = BlockImpl.get("minecraft:spruce_sapling");
|
||||
@ -55,6 +61,8 @@ interface Blocks {
|
||||
|
||||
Block ACACIA_SAPLING = BlockImpl.get("minecraft:acacia_sapling");
|
||||
|
||||
Block CHERRY_SAPLING = BlockImpl.get("minecraft:cherry_sapling");
|
||||
|
||||
Block DARK_OAK_SAPLING = BlockImpl.get("minecraft:dark_oak_sapling");
|
||||
|
||||
Block MANGROVE_PROPAGULE = BlockImpl.get("minecraft:mangrove_propagule");
|
||||
@ -67,6 +75,8 @@ interface Blocks {
|
||||
|
||||
Block SAND = BlockImpl.get("minecraft:sand");
|
||||
|
||||
Block SUSPICIOUS_SAND = BlockImpl.get("minecraft:suspicious_sand");
|
||||
|
||||
Block RED_SAND = BlockImpl.get("minecraft:red_sand");
|
||||
|
||||
Block GRAVEL = BlockImpl.get("minecraft:gravel");
|
||||
@ -95,6 +105,8 @@ interface Blocks {
|
||||
|
||||
Block ACACIA_LOG = BlockImpl.get("minecraft:acacia_log");
|
||||
|
||||
Block CHERRY_LOG = BlockImpl.get("minecraft:cherry_log");
|
||||
|
||||
Block DARK_OAK_LOG = BlockImpl.get("minecraft:dark_oak_log");
|
||||
|
||||
Block MANGROVE_LOG = BlockImpl.get("minecraft:mangrove_log");
|
||||
@ -103,6 +115,8 @@ interface Blocks {
|
||||
|
||||
Block MUDDY_MANGROVE_ROOTS = BlockImpl.get("minecraft:muddy_mangrove_roots");
|
||||
|
||||
Block BAMBOO_BLOCK = BlockImpl.get("minecraft:bamboo_block");
|
||||
|
||||
Block STRIPPED_SPRUCE_LOG = BlockImpl.get("minecraft:stripped_spruce_log");
|
||||
|
||||
Block STRIPPED_BIRCH_LOG = BlockImpl.get("minecraft:stripped_birch_log");
|
||||
@ -111,12 +125,16 @@ interface Blocks {
|
||||
|
||||
Block STRIPPED_ACACIA_LOG = BlockImpl.get("minecraft:stripped_acacia_log");
|
||||
|
||||
Block STRIPPED_CHERRY_LOG = BlockImpl.get("minecraft:stripped_cherry_log");
|
||||
|
||||
Block STRIPPED_DARK_OAK_LOG = BlockImpl.get("minecraft:stripped_dark_oak_log");
|
||||
|
||||
Block STRIPPED_OAK_LOG = BlockImpl.get("minecraft:stripped_oak_log");
|
||||
|
||||
Block STRIPPED_MANGROVE_LOG = BlockImpl.get("minecraft:stripped_mangrove_log");
|
||||
|
||||
Block STRIPPED_BAMBOO_BLOCK = BlockImpl.get("minecraft:stripped_bamboo_block");
|
||||
|
||||
Block OAK_WOOD = BlockImpl.get("minecraft:oak_wood");
|
||||
|
||||
Block SPRUCE_WOOD = BlockImpl.get("minecraft:spruce_wood");
|
||||
@ -127,6 +145,8 @@ interface Blocks {
|
||||
|
||||
Block ACACIA_WOOD = BlockImpl.get("minecraft:acacia_wood");
|
||||
|
||||
Block CHERRY_WOOD = BlockImpl.get("minecraft:cherry_wood");
|
||||
|
||||
Block DARK_OAK_WOOD = BlockImpl.get("minecraft:dark_oak_wood");
|
||||
|
||||
Block MANGROVE_WOOD = BlockImpl.get("minecraft:mangrove_wood");
|
||||
@ -141,6 +161,8 @@ interface Blocks {
|
||||
|
||||
Block STRIPPED_ACACIA_WOOD = BlockImpl.get("minecraft:stripped_acacia_wood");
|
||||
|
||||
Block STRIPPED_CHERRY_WOOD = BlockImpl.get("minecraft:stripped_cherry_wood");
|
||||
|
||||
Block STRIPPED_DARK_OAK_WOOD = BlockImpl.get("minecraft:stripped_dark_oak_wood");
|
||||
|
||||
Block STRIPPED_MANGROVE_WOOD = BlockImpl.get("minecraft:stripped_mangrove_wood");
|
||||
@ -155,6 +177,8 @@ interface Blocks {
|
||||
|
||||
Block ACACIA_LEAVES = BlockImpl.get("minecraft:acacia_leaves");
|
||||
|
||||
Block CHERRY_LEAVES = BlockImpl.get("minecraft:cherry_leaves");
|
||||
|
||||
Block DARK_OAK_LEAVES = BlockImpl.get("minecraft:dark_oak_leaves");
|
||||
|
||||
Block MANGROVE_LEAVES = BlockImpl.get("minecraft:mangrove_leaves");
|
||||
@ -275,6 +299,8 @@ interface Blocks {
|
||||
|
||||
Block DANDELION = BlockImpl.get("minecraft:dandelion");
|
||||
|
||||
Block TORCHFLOWER = BlockImpl.get("minecraft:torchflower");
|
||||
|
||||
Block POPPY = BlockImpl.get("minecraft:poppy");
|
||||
|
||||
Block BLUE_ORCHID = BlockImpl.get("minecraft:blue_orchid");
|
||||
@ -313,6 +339,8 @@ interface Blocks {
|
||||
|
||||
Block BOOKSHELF = BlockImpl.get("minecraft:bookshelf");
|
||||
|
||||
Block CHISELED_BOOKSHELF = BlockImpl.get("minecraft:chiseled_bookshelf");
|
||||
|
||||
Block MOSSY_COBBLESTONE = BlockImpl.get("minecraft:mossy_cobblestone");
|
||||
|
||||
Block OBSIDIAN = BlockImpl.get("minecraft:obsidian");
|
||||
@ -355,12 +383,16 @@ interface Blocks {
|
||||
|
||||
Block ACACIA_SIGN = BlockImpl.get("minecraft:acacia_sign");
|
||||
|
||||
Block CHERRY_SIGN = BlockImpl.get("minecraft:cherry_sign");
|
||||
|
||||
Block JUNGLE_SIGN = BlockImpl.get("minecraft:jungle_sign");
|
||||
|
||||
Block DARK_OAK_SIGN = BlockImpl.get("minecraft:dark_oak_sign");
|
||||
|
||||
Block MANGROVE_SIGN = BlockImpl.get("minecraft:mangrove_sign");
|
||||
|
||||
Block BAMBOO_SIGN = BlockImpl.get("minecraft:bamboo_sign");
|
||||
|
||||
Block OAK_DOOR = BlockImpl.get("minecraft:oak_door");
|
||||
|
||||
Block LADDER = BlockImpl.get("minecraft:ladder");
|
||||
@ -377,12 +409,60 @@ interface Blocks {
|
||||
|
||||
Block ACACIA_WALL_SIGN = BlockImpl.get("minecraft:acacia_wall_sign");
|
||||
|
||||
Block CHERRY_WALL_SIGN = BlockImpl.get("minecraft:cherry_wall_sign");
|
||||
|
||||
Block JUNGLE_WALL_SIGN = BlockImpl.get("minecraft:jungle_wall_sign");
|
||||
|
||||
Block DARK_OAK_WALL_SIGN = BlockImpl.get("minecraft:dark_oak_wall_sign");
|
||||
|
||||
Block MANGROVE_WALL_SIGN = BlockImpl.get("minecraft:mangrove_wall_sign");
|
||||
|
||||
Block BAMBOO_WALL_SIGN = BlockImpl.get("minecraft:bamboo_wall_sign");
|
||||
|
||||
Block OAK_HANGING_SIGN = BlockImpl.get("minecraft:oak_hanging_sign");
|
||||
|
||||
Block SPRUCE_HANGING_SIGN = BlockImpl.get("minecraft:spruce_hanging_sign");
|
||||
|
||||
Block BIRCH_HANGING_SIGN = BlockImpl.get("minecraft:birch_hanging_sign");
|
||||
|
||||
Block ACACIA_HANGING_SIGN = BlockImpl.get("minecraft:acacia_hanging_sign");
|
||||
|
||||
Block CHERRY_HANGING_SIGN = BlockImpl.get("minecraft:cherry_hanging_sign");
|
||||
|
||||
Block JUNGLE_HANGING_SIGN = BlockImpl.get("minecraft:jungle_hanging_sign");
|
||||
|
||||
Block DARK_OAK_HANGING_SIGN = BlockImpl.get("minecraft:dark_oak_hanging_sign");
|
||||
|
||||
Block CRIMSON_HANGING_SIGN = BlockImpl.get("minecraft:crimson_hanging_sign");
|
||||
|
||||
Block WARPED_HANGING_SIGN = BlockImpl.get("minecraft:warped_hanging_sign");
|
||||
|
||||
Block MANGROVE_HANGING_SIGN = BlockImpl.get("minecraft:mangrove_hanging_sign");
|
||||
|
||||
Block BAMBOO_HANGING_SIGN = BlockImpl.get("minecraft:bamboo_hanging_sign");
|
||||
|
||||
Block OAK_WALL_HANGING_SIGN = BlockImpl.get("minecraft:oak_wall_hanging_sign");
|
||||
|
||||
Block SPRUCE_WALL_HANGING_SIGN = BlockImpl.get("minecraft:spruce_wall_hanging_sign");
|
||||
|
||||
Block BIRCH_WALL_HANGING_SIGN = BlockImpl.get("minecraft:birch_wall_hanging_sign");
|
||||
|
||||
Block ACACIA_WALL_HANGING_SIGN = BlockImpl.get("minecraft:acacia_wall_hanging_sign");
|
||||
|
||||
Block CHERRY_WALL_HANGING_SIGN = BlockImpl.get("minecraft:cherry_wall_hanging_sign");
|
||||
|
||||
Block JUNGLE_WALL_HANGING_SIGN = BlockImpl.get("minecraft:jungle_wall_hanging_sign");
|
||||
|
||||
Block DARK_OAK_WALL_HANGING_SIGN = BlockImpl.get("minecraft:dark_oak_wall_hanging_sign");
|
||||
|
||||
Block MANGROVE_WALL_HANGING_SIGN = BlockImpl.get("minecraft:mangrove_wall_hanging_sign");
|
||||
|
||||
Block CRIMSON_WALL_HANGING_SIGN = BlockImpl.get("minecraft:crimson_wall_hanging_sign");
|
||||
|
||||
Block WARPED_WALL_HANGING_SIGN = BlockImpl.get("minecraft:warped_wall_hanging_sign");
|
||||
|
||||
Block BAMBOO_WALL_HANGING_SIGN = BlockImpl.get("minecraft:bamboo_wall_hanging_sign");
|
||||
|
||||
Block LEVER = BlockImpl.get("minecraft:lever");
|
||||
|
||||
Block STONE_PRESSURE_PLATE = BlockImpl.get("minecraft:stone_pressure_plate");
|
||||
@ -399,10 +479,14 @@ interface Blocks {
|
||||
|
||||
Block ACACIA_PRESSURE_PLATE = BlockImpl.get("minecraft:acacia_pressure_plate");
|
||||
|
||||
Block CHERRY_PRESSURE_PLATE = BlockImpl.get("minecraft:cherry_pressure_plate");
|
||||
|
||||
Block DARK_OAK_PRESSURE_PLATE = BlockImpl.get("minecraft:dark_oak_pressure_plate");
|
||||
|
||||
Block MANGROVE_PRESSURE_PLATE = BlockImpl.get("minecraft:mangrove_pressure_plate");
|
||||
|
||||
Block BAMBOO_PRESSURE_PLATE = BlockImpl.get("minecraft:bamboo_pressure_plate");
|
||||
|
||||
Block REDSTONE_ORE = BlockImpl.get("minecraft:redstone_ore");
|
||||
|
||||
Block DEEPSLATE_REDSTONE_ORE = BlockImpl.get("minecraft:deepslate_redstone_ore");
|
||||
@ -499,10 +583,14 @@ interface Blocks {
|
||||
|
||||
Block ACACIA_TRAPDOOR = BlockImpl.get("minecraft:acacia_trapdoor");
|
||||
|
||||
Block CHERRY_TRAPDOOR = BlockImpl.get("minecraft:cherry_trapdoor");
|
||||
|
||||
Block DARK_OAK_TRAPDOOR = BlockImpl.get("minecraft:dark_oak_trapdoor");
|
||||
|
||||
Block MANGROVE_TRAPDOOR = BlockImpl.get("minecraft:mangrove_trapdoor");
|
||||
|
||||
Block BAMBOO_TRAPDOOR = BlockImpl.get("minecraft:bamboo_trapdoor");
|
||||
|
||||
Block STONE_BRICKS = BlockImpl.get("minecraft:stone_bricks");
|
||||
|
||||
Block MOSSY_STONE_BRICKS = BlockImpl.get("minecraft:mossy_stone_bricks");
|
||||
@ -627,6 +715,8 @@ interface Blocks {
|
||||
|
||||
Block FLOWER_POT = BlockImpl.get("minecraft:flower_pot");
|
||||
|
||||
Block POTTED_TORCHFLOWER = BlockImpl.get("minecraft:potted_torchflower");
|
||||
|
||||
Block POTTED_OAK_SAPLING = BlockImpl.get("minecraft:potted_oak_sapling");
|
||||
|
||||
Block POTTED_SPRUCE_SAPLING = BlockImpl.get("minecraft:potted_spruce_sapling");
|
||||
@ -637,6 +727,8 @@ interface Blocks {
|
||||
|
||||
Block POTTED_ACACIA_SAPLING = BlockImpl.get("minecraft:potted_acacia_sapling");
|
||||
|
||||
Block POTTED_CHERRY_SAPLING = BlockImpl.get("minecraft:potted_cherry_sapling");
|
||||
|
||||
Block POTTED_DARK_OAK_SAPLING = BlockImpl.get("minecraft:potted_dark_oak_sapling");
|
||||
|
||||
Block POTTED_MANGROVE_PROPAGULE = BlockImpl.get("minecraft:potted_mangrove_propagule");
|
||||
@ -691,10 +783,14 @@ interface Blocks {
|
||||
|
||||
Block ACACIA_BUTTON = BlockImpl.get("minecraft:acacia_button");
|
||||
|
||||
Block CHERRY_BUTTON = BlockImpl.get("minecraft:cherry_button");
|
||||
|
||||
Block DARK_OAK_BUTTON = BlockImpl.get("minecraft:dark_oak_button");
|
||||
|
||||
Block MANGROVE_BUTTON = BlockImpl.get("minecraft:mangrove_button");
|
||||
|
||||
Block BAMBOO_BUTTON = BlockImpl.get("minecraft:bamboo_button");
|
||||
|
||||
Block SKELETON_SKULL = BlockImpl.get("minecraft:skeleton_skull");
|
||||
|
||||
Block SKELETON_WALL_SKULL = BlockImpl.get("minecraft:skeleton_wall_skull");
|
||||
@ -719,6 +815,10 @@ interface Blocks {
|
||||
|
||||
Block DRAGON_WALL_HEAD = BlockImpl.get("minecraft:dragon_wall_head");
|
||||
|
||||
Block PIGLIN_HEAD = BlockImpl.get("minecraft:piglin_head");
|
||||
|
||||
Block PIGLIN_WALL_HEAD = BlockImpl.get("minecraft:piglin_wall_head");
|
||||
|
||||
Block ANVIL = BlockImpl.get("minecraft:anvil");
|
||||
|
||||
Block CHIPPED_ANVIL = BlockImpl.get("minecraft:chipped_anvil");
|
||||
@ -819,10 +919,16 @@ interface Blocks {
|
||||
|
||||
Block ACACIA_STAIRS = BlockImpl.get("minecraft:acacia_stairs");
|
||||
|
||||
Block CHERRY_STAIRS = BlockImpl.get("minecraft:cherry_stairs");
|
||||
|
||||
Block DARK_OAK_STAIRS = BlockImpl.get("minecraft:dark_oak_stairs");
|
||||
|
||||
Block MANGROVE_STAIRS = BlockImpl.get("minecraft:mangrove_stairs");
|
||||
|
||||
Block BAMBOO_STAIRS = BlockImpl.get("minecraft:bamboo_stairs");
|
||||
|
||||
Block BAMBOO_MOSAIC_STAIRS = BlockImpl.get("minecraft:bamboo_mosaic_stairs");
|
||||
|
||||
Block SLIME_BLOCK = BlockImpl.get("minecraft:slime_block");
|
||||
|
||||
Block BARRIER = BlockImpl.get("minecraft:barrier");
|
||||
@ -985,10 +1091,16 @@ interface Blocks {
|
||||
|
||||
Block ACACIA_SLAB = BlockImpl.get("minecraft:acacia_slab");
|
||||
|
||||
Block CHERRY_SLAB = BlockImpl.get("minecraft:cherry_slab");
|
||||
|
||||
Block DARK_OAK_SLAB = BlockImpl.get("minecraft:dark_oak_slab");
|
||||
|
||||
Block MANGROVE_SLAB = BlockImpl.get("minecraft:mangrove_slab");
|
||||
|
||||
Block BAMBOO_SLAB = BlockImpl.get("minecraft:bamboo_slab");
|
||||
|
||||
Block BAMBOO_MOSAIC_SLAB = BlockImpl.get("minecraft:bamboo_mosaic_slab");
|
||||
|
||||
Block STONE_SLAB = BlockImpl.get("minecraft:stone_slab");
|
||||
|
||||
Block SMOOTH_STONE_SLAB = BlockImpl.get("minecraft:smooth_stone_slab");
|
||||
@ -1033,10 +1145,14 @@ interface Blocks {
|
||||
|
||||
Block ACACIA_FENCE_GATE = BlockImpl.get("minecraft:acacia_fence_gate");
|
||||
|
||||
Block CHERRY_FENCE_GATE = BlockImpl.get("minecraft:cherry_fence_gate");
|
||||
|
||||
Block DARK_OAK_FENCE_GATE = BlockImpl.get("minecraft:dark_oak_fence_gate");
|
||||
|
||||
Block MANGROVE_FENCE_GATE = BlockImpl.get("minecraft:mangrove_fence_gate");
|
||||
|
||||
Block BAMBOO_FENCE_GATE = BlockImpl.get("minecraft:bamboo_fence_gate");
|
||||
|
||||
Block SPRUCE_FENCE = BlockImpl.get("minecraft:spruce_fence");
|
||||
|
||||
Block BIRCH_FENCE = BlockImpl.get("minecraft:birch_fence");
|
||||
@ -1045,10 +1161,14 @@ interface Blocks {
|
||||
|
||||
Block ACACIA_FENCE = BlockImpl.get("minecraft:acacia_fence");
|
||||
|
||||
Block CHERRY_FENCE = BlockImpl.get("minecraft:cherry_fence");
|
||||
|
||||
Block DARK_OAK_FENCE = BlockImpl.get("minecraft:dark_oak_fence");
|
||||
|
||||
Block MANGROVE_FENCE = BlockImpl.get("minecraft:mangrove_fence");
|
||||
|
||||
Block BAMBOO_FENCE = BlockImpl.get("minecraft:bamboo_fence");
|
||||
|
||||
Block SPRUCE_DOOR = BlockImpl.get("minecraft:spruce_door");
|
||||
|
||||
Block BIRCH_DOOR = BlockImpl.get("minecraft:birch_door");
|
||||
@ -1057,10 +1177,14 @@ interface Blocks {
|
||||
|
||||
Block ACACIA_DOOR = BlockImpl.get("minecraft:acacia_door");
|
||||
|
||||
Block CHERRY_DOOR = BlockImpl.get("minecraft:cherry_door");
|
||||
|
||||
Block DARK_OAK_DOOR = BlockImpl.get("minecraft:dark_oak_door");
|
||||
|
||||
Block MANGROVE_DOOR = BlockImpl.get("minecraft:mangrove_door");
|
||||
|
||||
Block BAMBOO_DOOR = BlockImpl.get("minecraft:bamboo_door");
|
||||
|
||||
Block END_ROD = BlockImpl.get("minecraft:end_rod");
|
||||
|
||||
Block CHORUS_PLANT = BlockImpl.get("minecraft:chorus_plant");
|
||||
@ -1075,6 +1199,8 @@ interface Blocks {
|
||||
|
||||
Block END_STONE_BRICKS = BlockImpl.get("minecraft:end_stone_bricks");
|
||||
|
||||
Block TORCHFLOWER_CROP = BlockImpl.get("minecraft:torchflower_crop");
|
||||
|
||||
Block BEETROOTS = BlockImpl.get("minecraft:beetroots");
|
||||
|
||||
Block DIRT_PATH = BlockImpl.get("minecraft:dirt_path");
|
||||
@ -1793,6 +1919,8 @@ interface Blocks {
|
||||
|
||||
Block MOSS_CARPET = BlockImpl.get("minecraft:moss_carpet");
|
||||
|
||||
Block PINK_PETALS = BlockImpl.get("minecraft:pink_petals");
|
||||
|
||||
Block MOSS_BLOCK = BlockImpl.get("minecraft:moss_block");
|
||||
|
||||
Block BIG_DRIPLEAF = BlockImpl.get("minecraft:big_dripleaf");
|
||||
@ -1870,4 +1998,6 @@ interface Blocks {
|
||||
Block FROGSPAWN = BlockImpl.get("minecraft:frogspawn");
|
||||
|
||||
Block REINFORCED_DEEPSLATE = BlockImpl.get("minecraft:reinforced_deepslate");
|
||||
|
||||
Block DECORATED_POT = BlockImpl.get("minecraft:decorated_pot");
|
||||
}
|
||||
|
@ -61,14 +61,20 @@ interface Materials {
|
||||
|
||||
Material ACACIA_PLANKS = MaterialImpl.get("minecraft:acacia_planks");
|
||||
|
||||
Material CHERRY_PLANKS = MaterialImpl.get("minecraft:cherry_planks");
|
||||
|
||||
Material DARK_OAK_PLANKS = MaterialImpl.get("minecraft:dark_oak_planks");
|
||||
|
||||
Material MANGROVE_PLANKS = MaterialImpl.get("minecraft:mangrove_planks");
|
||||
|
||||
Material BAMBOO_PLANKS = MaterialImpl.get("minecraft:bamboo_planks");
|
||||
|
||||
Material CRIMSON_PLANKS = MaterialImpl.get("minecraft:crimson_planks");
|
||||
|
||||
Material WARPED_PLANKS = MaterialImpl.get("minecraft:warped_planks");
|
||||
|
||||
Material BAMBOO_MOSAIC = MaterialImpl.get("minecraft:bamboo_mosaic");
|
||||
|
||||
Material OAK_SAPLING = MaterialImpl.get("minecraft:oak_sapling");
|
||||
|
||||
Material SPRUCE_SAPLING = MaterialImpl.get("minecraft:spruce_sapling");
|
||||
@ -79,6 +85,8 @@ interface Materials {
|
||||
|
||||
Material ACACIA_SAPLING = MaterialImpl.get("minecraft:acacia_sapling");
|
||||
|
||||
Material CHERRY_SAPLING = MaterialImpl.get("minecraft:cherry_sapling");
|
||||
|
||||
Material DARK_OAK_SAPLING = MaterialImpl.get("minecraft:dark_oak_sapling");
|
||||
|
||||
Material MANGROVE_PROPAGULE = MaterialImpl.get("minecraft:mangrove_propagule");
|
||||
@ -87,6 +95,8 @@ interface Materials {
|
||||
|
||||
Material SAND = MaterialImpl.get("minecraft:sand");
|
||||
|
||||
Material SUSPICIOUS_SAND = MaterialImpl.get("minecraft:suspicious_sand");
|
||||
|
||||
Material RED_SAND = MaterialImpl.get("minecraft:red_sand");
|
||||
|
||||
Material GRAVEL = MaterialImpl.get("minecraft:gravel");
|
||||
@ -223,6 +233,8 @@ interface Materials {
|
||||
|
||||
Material ACACIA_LOG = MaterialImpl.get("minecraft:acacia_log");
|
||||
|
||||
Material CHERRY_LOG = MaterialImpl.get("minecraft:cherry_log");
|
||||
|
||||
Material DARK_OAK_LOG = MaterialImpl.get("minecraft:dark_oak_log");
|
||||
|
||||
Material MANGROVE_LOG = MaterialImpl.get("minecraft:mangrove_log");
|
||||
@ -235,6 +247,8 @@ interface Materials {
|
||||
|
||||
Material WARPED_STEM = MaterialImpl.get("minecraft:warped_stem");
|
||||
|
||||
Material BAMBOO_BLOCK = MaterialImpl.get("minecraft:bamboo_block");
|
||||
|
||||
Material STRIPPED_OAK_LOG = MaterialImpl.get("minecraft:stripped_oak_log");
|
||||
|
||||
Material STRIPPED_SPRUCE_LOG = MaterialImpl.get("minecraft:stripped_spruce_log");
|
||||
@ -245,6 +259,8 @@ interface Materials {
|
||||
|
||||
Material STRIPPED_ACACIA_LOG = MaterialImpl.get("minecraft:stripped_acacia_log");
|
||||
|
||||
Material STRIPPED_CHERRY_LOG = MaterialImpl.get("minecraft:stripped_cherry_log");
|
||||
|
||||
Material STRIPPED_DARK_OAK_LOG = MaterialImpl.get("minecraft:stripped_dark_oak_log");
|
||||
|
||||
Material STRIPPED_MANGROVE_LOG = MaterialImpl.get("minecraft:stripped_mangrove_log");
|
||||
@ -263,6 +279,8 @@ interface Materials {
|
||||
|
||||
Material STRIPPED_ACACIA_WOOD = MaterialImpl.get("minecraft:stripped_acacia_wood");
|
||||
|
||||
Material STRIPPED_CHERRY_WOOD = MaterialImpl.get("minecraft:stripped_cherry_wood");
|
||||
|
||||
Material STRIPPED_DARK_OAK_WOOD = MaterialImpl.get("minecraft:stripped_dark_oak_wood");
|
||||
|
||||
Material STRIPPED_MANGROVE_WOOD = MaterialImpl.get("minecraft:stripped_mangrove_wood");
|
||||
@ -271,6 +289,8 @@ interface Materials {
|
||||
|
||||
Material STRIPPED_WARPED_HYPHAE = MaterialImpl.get("minecraft:stripped_warped_hyphae");
|
||||
|
||||
Material STRIPPED_BAMBOO_BLOCK = MaterialImpl.get("minecraft:stripped_bamboo_block");
|
||||
|
||||
Material OAK_WOOD = MaterialImpl.get("minecraft:oak_wood");
|
||||
|
||||
Material SPRUCE_WOOD = MaterialImpl.get("minecraft:spruce_wood");
|
||||
@ -281,6 +301,8 @@ interface Materials {
|
||||
|
||||
Material ACACIA_WOOD = MaterialImpl.get("minecraft:acacia_wood");
|
||||
|
||||
Material CHERRY_WOOD = MaterialImpl.get("minecraft:cherry_wood");
|
||||
|
||||
Material DARK_OAK_WOOD = MaterialImpl.get("minecraft:dark_oak_wood");
|
||||
|
||||
Material MANGROVE_WOOD = MaterialImpl.get("minecraft:mangrove_wood");
|
||||
@ -299,6 +321,8 @@ interface Materials {
|
||||
|
||||
Material ACACIA_LEAVES = MaterialImpl.get("minecraft:acacia_leaves");
|
||||
|
||||
Material CHERRY_LEAVES = MaterialImpl.get("minecraft:cherry_leaves");
|
||||
|
||||
Material DARK_OAK_LEAVES = MaterialImpl.get("minecraft:dark_oak_leaves");
|
||||
|
||||
Material MANGROVE_LEAVES = MaterialImpl.get("minecraft:mangrove_leaves");
|
||||
@ -397,6 +421,8 @@ interface Materials {
|
||||
|
||||
Material WITHER_ROSE = MaterialImpl.get("minecraft:wither_rose");
|
||||
|
||||
Material TORCHFLOWER = MaterialImpl.get("minecraft:torchflower");
|
||||
|
||||
Material SPORE_BLOSSOM = MaterialImpl.get("minecraft:spore_blossom");
|
||||
|
||||
Material BROWN_MUSHROOM = MaterialImpl.get("minecraft:brown_mushroom");
|
||||
@ -423,6 +449,8 @@ interface Materials {
|
||||
|
||||
Material MOSS_CARPET = MaterialImpl.get("minecraft:moss_carpet");
|
||||
|
||||
Material PINK_PETALS = MaterialImpl.get("minecraft:pink_petals");
|
||||
|
||||
Material MOSS_BLOCK = MaterialImpl.get("minecraft:moss_block");
|
||||
|
||||
Material HANGING_ROOTS = MaterialImpl.get("minecraft:hanging_roots");
|
||||
@ -443,10 +471,16 @@ interface Materials {
|
||||
|
||||
Material ACACIA_SLAB = MaterialImpl.get("minecraft:acacia_slab");
|
||||
|
||||
Material CHERRY_SLAB = MaterialImpl.get("minecraft:cherry_slab");
|
||||
|
||||
Material DARK_OAK_SLAB = MaterialImpl.get("minecraft:dark_oak_slab");
|
||||
|
||||
Material MANGROVE_SLAB = MaterialImpl.get("minecraft:mangrove_slab");
|
||||
|
||||
Material BAMBOO_SLAB = MaterialImpl.get("minecraft:bamboo_slab");
|
||||
|
||||
Material BAMBOO_MOSAIC_SLAB = MaterialImpl.get("minecraft:bamboo_mosaic_slab");
|
||||
|
||||
Material CRIMSON_SLAB = MaterialImpl.get("minecraft:crimson_slab");
|
||||
|
||||
Material WARPED_SLAB = MaterialImpl.get("minecraft:warped_slab");
|
||||
@ -497,6 +531,10 @@ interface Materials {
|
||||
|
||||
Material BOOKSHELF = MaterialImpl.get("minecraft:bookshelf");
|
||||
|
||||
Material CHISELED_BOOKSHELF = MaterialImpl.get("minecraft:chiseled_bookshelf");
|
||||
|
||||
Material DECORATED_POT = MaterialImpl.get("minecraft:decorated_pot");
|
||||
|
||||
Material MOSSY_COBBLESTONE = MaterialImpl.get("minecraft:mossy_cobblestone");
|
||||
|
||||
Material OBSIDIAN = MaterialImpl.get("minecraft:obsidian");
|
||||
@ -551,10 +589,14 @@ interface Materials {
|
||||
|
||||
Material ACACIA_FENCE = MaterialImpl.get("minecraft:acacia_fence");
|
||||
|
||||
Material CHERRY_FENCE = MaterialImpl.get("minecraft:cherry_fence");
|
||||
|
||||
Material DARK_OAK_FENCE = MaterialImpl.get("minecraft:dark_oak_fence");
|
||||
|
||||
Material MANGROVE_FENCE = MaterialImpl.get("minecraft:mangrove_fence");
|
||||
|
||||
Material BAMBOO_FENCE = MaterialImpl.get("minecraft:bamboo_fence");
|
||||
|
||||
Material CRIMSON_FENCE = MaterialImpl.get("minecraft:crimson_fence");
|
||||
|
||||
Material WARPED_FENCE = MaterialImpl.get("minecraft:warped_fence");
|
||||
@ -691,10 +733,16 @@ interface Materials {
|
||||
|
||||
Material ACACIA_STAIRS = MaterialImpl.get("minecraft:acacia_stairs");
|
||||
|
||||
Material CHERRY_STAIRS = MaterialImpl.get("minecraft:cherry_stairs");
|
||||
|
||||
Material DARK_OAK_STAIRS = MaterialImpl.get("minecraft:dark_oak_stairs");
|
||||
|
||||
Material MANGROVE_STAIRS = MaterialImpl.get("minecraft:mangrove_stairs");
|
||||
|
||||
Material BAMBOO_STAIRS = MaterialImpl.get("minecraft:bamboo_stairs");
|
||||
|
||||
Material BAMBOO_MOSAIC_STAIRS = MaterialImpl.get("minecraft:bamboo_mosaic_stairs");
|
||||
|
||||
Material CRIMSON_STAIRS = MaterialImpl.get("minecraft:crimson_stairs");
|
||||
|
||||
Material WARPED_STAIRS = MaterialImpl.get("minecraft:warped_stairs");
|
||||
@ -1283,10 +1331,14 @@ interface Materials {
|
||||
|
||||
Material ACACIA_BUTTON = MaterialImpl.get("minecraft:acacia_button");
|
||||
|
||||
Material CHERRY_BUTTON = MaterialImpl.get("minecraft:cherry_button");
|
||||
|
||||
Material DARK_OAK_BUTTON = MaterialImpl.get("minecraft:dark_oak_button");
|
||||
|
||||
Material MANGROVE_BUTTON = MaterialImpl.get("minecraft:mangrove_button");
|
||||
|
||||
Material BAMBOO_BUTTON = MaterialImpl.get("minecraft:bamboo_button");
|
||||
|
||||
Material CRIMSON_BUTTON = MaterialImpl.get("minecraft:crimson_button");
|
||||
|
||||
Material WARPED_BUTTON = MaterialImpl.get("minecraft:warped_button");
|
||||
@ -1309,10 +1361,14 @@ interface Materials {
|
||||
|
||||
Material ACACIA_PRESSURE_PLATE = MaterialImpl.get("minecraft:acacia_pressure_plate");
|
||||
|
||||
Material CHERRY_PRESSURE_PLATE = MaterialImpl.get("minecraft:cherry_pressure_plate");
|
||||
|
||||
Material DARK_OAK_PRESSURE_PLATE = MaterialImpl.get("minecraft:dark_oak_pressure_plate");
|
||||
|
||||
Material MANGROVE_PRESSURE_PLATE = MaterialImpl.get("minecraft:mangrove_pressure_plate");
|
||||
|
||||
Material BAMBOO_PRESSURE_PLATE = MaterialImpl.get("minecraft:bamboo_pressure_plate");
|
||||
|
||||
Material CRIMSON_PRESSURE_PLATE = MaterialImpl.get("minecraft:crimson_pressure_plate");
|
||||
|
||||
Material WARPED_PRESSURE_PLATE = MaterialImpl.get("minecraft:warped_pressure_plate");
|
||||
@ -1329,10 +1385,14 @@ interface Materials {
|
||||
|
||||
Material ACACIA_DOOR = MaterialImpl.get("minecraft:acacia_door");
|
||||
|
||||
Material CHERRY_DOOR = MaterialImpl.get("minecraft:cherry_door");
|
||||
|
||||
Material DARK_OAK_DOOR = MaterialImpl.get("minecraft:dark_oak_door");
|
||||
|
||||
Material MANGROVE_DOOR = MaterialImpl.get("minecraft:mangrove_door");
|
||||
|
||||
Material BAMBOO_DOOR = MaterialImpl.get("minecraft:bamboo_door");
|
||||
|
||||
Material CRIMSON_DOOR = MaterialImpl.get("minecraft:crimson_door");
|
||||
|
||||
Material WARPED_DOOR = MaterialImpl.get("minecraft:warped_door");
|
||||
@ -1349,10 +1409,14 @@ interface Materials {
|
||||
|
||||
Material ACACIA_TRAPDOOR = MaterialImpl.get("minecraft:acacia_trapdoor");
|
||||
|
||||
Material CHERRY_TRAPDOOR = MaterialImpl.get("minecraft:cherry_trapdoor");
|
||||
|
||||
Material DARK_OAK_TRAPDOOR = MaterialImpl.get("minecraft:dark_oak_trapdoor");
|
||||
|
||||
Material MANGROVE_TRAPDOOR = MaterialImpl.get("minecraft:mangrove_trapdoor");
|
||||
|
||||
Material BAMBOO_TRAPDOOR = MaterialImpl.get("minecraft:bamboo_trapdoor");
|
||||
|
||||
Material CRIMSON_TRAPDOOR = MaterialImpl.get("minecraft:crimson_trapdoor");
|
||||
|
||||
Material WARPED_TRAPDOOR = MaterialImpl.get("minecraft:warped_trapdoor");
|
||||
@ -1367,10 +1431,14 @@ interface Materials {
|
||||
|
||||
Material ACACIA_FENCE_GATE = MaterialImpl.get("minecraft:acacia_fence_gate");
|
||||
|
||||
Material CHERRY_FENCE_GATE = MaterialImpl.get("minecraft:cherry_fence_gate");
|
||||
|
||||
Material DARK_OAK_FENCE_GATE = MaterialImpl.get("minecraft:dark_oak_fence_gate");
|
||||
|
||||
Material MANGROVE_FENCE_GATE = MaterialImpl.get("minecraft:mangrove_fence_gate");
|
||||
|
||||
Material BAMBOO_FENCE_GATE = MaterialImpl.get("minecraft:bamboo_fence_gate");
|
||||
|
||||
Material CRIMSON_FENCE_GATE = MaterialImpl.get("minecraft:crimson_fence_gate");
|
||||
|
||||
Material WARPED_FENCE_GATE = MaterialImpl.get("minecraft:warped_fence_gate");
|
||||
@ -1421,6 +1489,10 @@ interface Materials {
|
||||
|
||||
Material ACACIA_CHEST_BOAT = MaterialImpl.get("minecraft:acacia_chest_boat");
|
||||
|
||||
Material CHERRY_BOAT = MaterialImpl.get("minecraft:cherry_boat");
|
||||
|
||||
Material CHERRY_CHEST_BOAT = MaterialImpl.get("minecraft:cherry_chest_boat");
|
||||
|
||||
Material DARK_OAK_BOAT = MaterialImpl.get("minecraft:dark_oak_boat");
|
||||
|
||||
Material DARK_OAK_CHEST_BOAT = MaterialImpl.get("minecraft:dark_oak_chest_boat");
|
||||
@ -1429,6 +1501,10 @@ interface Materials {
|
||||
|
||||
Material MANGROVE_CHEST_BOAT = MaterialImpl.get("minecraft:mangrove_chest_boat");
|
||||
|
||||
Material BAMBOO_RAFT = MaterialImpl.get("minecraft:bamboo_raft");
|
||||
|
||||
Material BAMBOO_CHEST_RAFT = MaterialImpl.get("minecraft:bamboo_chest_raft");
|
||||
|
||||
Material STRUCTURE_BLOCK = MaterialImpl.get("minecraft:structure_block");
|
||||
|
||||
Material JIGSAW = MaterialImpl.get("minecraft:jigsaw");
|
||||
@ -1623,14 +1699,40 @@ interface Materials {
|
||||
|
||||
Material ACACIA_SIGN = MaterialImpl.get("minecraft:acacia_sign");
|
||||
|
||||
Material CHERRY_SIGN = MaterialImpl.get("minecraft:cherry_sign");
|
||||
|
||||
Material DARK_OAK_SIGN = MaterialImpl.get("minecraft:dark_oak_sign");
|
||||
|
||||
Material MANGROVE_SIGN = MaterialImpl.get("minecraft:mangrove_sign");
|
||||
|
||||
Material BAMBOO_SIGN = MaterialImpl.get("minecraft:bamboo_sign");
|
||||
|
||||
Material CRIMSON_SIGN = MaterialImpl.get("minecraft:crimson_sign");
|
||||
|
||||
Material WARPED_SIGN = MaterialImpl.get("minecraft:warped_sign");
|
||||
|
||||
Material OAK_HANGING_SIGN = MaterialImpl.get("minecraft:oak_hanging_sign");
|
||||
|
||||
Material SPRUCE_HANGING_SIGN = MaterialImpl.get("minecraft:spruce_hanging_sign");
|
||||
|
||||
Material BIRCH_HANGING_SIGN = MaterialImpl.get("minecraft:birch_hanging_sign");
|
||||
|
||||
Material JUNGLE_HANGING_SIGN = MaterialImpl.get("minecraft:jungle_hanging_sign");
|
||||
|
||||
Material ACACIA_HANGING_SIGN = MaterialImpl.get("minecraft:acacia_hanging_sign");
|
||||
|
||||
Material CHERRY_HANGING_SIGN = MaterialImpl.get("minecraft:cherry_hanging_sign");
|
||||
|
||||
Material DARK_OAK_HANGING_SIGN = MaterialImpl.get("minecraft:dark_oak_hanging_sign");
|
||||
|
||||
Material MANGROVE_HANGING_SIGN = MaterialImpl.get("minecraft:mangrove_hanging_sign");
|
||||
|
||||
Material BAMBOO_HANGING_SIGN = MaterialImpl.get("minecraft:bamboo_hanging_sign");
|
||||
|
||||
Material CRIMSON_HANGING_SIGN = MaterialImpl.get("minecraft:crimson_hanging_sign");
|
||||
|
||||
Material WARPED_HANGING_SIGN = MaterialImpl.get("minecraft:warped_hanging_sign");
|
||||
|
||||
Material BUCKET = MaterialImpl.get("minecraft:bucket");
|
||||
|
||||
Material WATER_BUCKET = MaterialImpl.get("minecraft:water_bucket");
|
||||
@ -1841,6 +1943,8 @@ interface Materials {
|
||||
|
||||
Material CAT_SPAWN_EGG = MaterialImpl.get("minecraft:cat_spawn_egg");
|
||||
|
||||
Material CAMEL_SPAWN_EGG = MaterialImpl.get("minecraft:camel_spawn_egg");
|
||||
|
||||
Material CAVE_SPIDER_SPAWN_EGG = MaterialImpl.get("minecraft:cave_spider_spawn_egg");
|
||||
|
||||
Material CHICKEN_SPAWN_EGG = MaterialImpl.get("minecraft:chicken_spawn_egg");
|
||||
@ -1859,6 +1963,8 @@ interface Materials {
|
||||
|
||||
Material ELDER_GUARDIAN_SPAWN_EGG = MaterialImpl.get("minecraft:elder_guardian_spawn_egg");
|
||||
|
||||
Material ENDER_DRAGON_SPAWN_EGG = MaterialImpl.get("minecraft:ender_dragon_spawn_egg");
|
||||
|
||||
Material ENDERMAN_SPAWN_EGG = MaterialImpl.get("minecraft:enderman_spawn_egg");
|
||||
|
||||
Material ENDERMITE_SPAWN_EGG = MaterialImpl.get("minecraft:endermite_spawn_egg");
|
||||
@ -1883,6 +1989,8 @@ interface Materials {
|
||||
|
||||
Material HUSK_SPAWN_EGG = MaterialImpl.get("minecraft:husk_spawn_egg");
|
||||
|
||||
Material IRON_GOLEM_SPAWN_EGG = MaterialImpl.get("minecraft:iron_golem_spawn_egg");
|
||||
|
||||
Material LLAMA_SPAWN_EGG = MaterialImpl.get("minecraft:llama_spawn_egg");
|
||||
|
||||
Material MAGMA_CUBE_SPAWN_EGG = MaterialImpl.get("minecraft:magma_cube_spawn_egg");
|
||||
@ -1929,6 +2037,10 @@ interface Materials {
|
||||
|
||||
Material SLIME_SPAWN_EGG = MaterialImpl.get("minecraft:slime_spawn_egg");
|
||||
|
||||
Material SNIFFER_SPAWN_EGG = MaterialImpl.get("minecraft:sniffer_spawn_egg");
|
||||
|
||||
Material SNOW_GOLEM_SPAWN_EGG = MaterialImpl.get("minecraft:snow_golem_spawn_egg");
|
||||
|
||||
Material SPIDER_SPAWN_EGG = MaterialImpl.get("minecraft:spider_spawn_egg");
|
||||
|
||||
Material SQUID_SPAWN_EGG = MaterialImpl.get("minecraft:squid_spawn_egg");
|
||||
@ -1957,6 +2069,8 @@ interface Materials {
|
||||
|
||||
Material WITCH_SPAWN_EGG = MaterialImpl.get("minecraft:witch_spawn_egg");
|
||||
|
||||
Material WITHER_SPAWN_EGG = MaterialImpl.get("minecraft:wither_spawn_egg");
|
||||
|
||||
Material WITHER_SKELETON_SPAWN_EGG = MaterialImpl.get("minecraft:wither_skeleton_spawn_egg");
|
||||
|
||||
Material WOLF_SPAWN_EGG = MaterialImpl.get("minecraft:wolf_spawn_egg");
|
||||
@ -2009,6 +2123,8 @@ interface Materials {
|
||||
|
||||
Material DRAGON_HEAD = MaterialImpl.get("minecraft:dragon_head");
|
||||
|
||||
Material PIGLIN_HEAD = MaterialImpl.get("minecraft:piglin_head");
|
||||
|
||||
Material NETHER_STAR = MaterialImpl.get("minecraft:nether_star");
|
||||
|
||||
Material PUMPKIN_PIE = MaterialImpl.get("minecraft:pumpkin_pie");
|
||||
@ -2093,6 +2209,8 @@ interface Materials {
|
||||
|
||||
Material POPPED_CHORUS_FRUIT = MaterialImpl.get("minecraft:popped_chorus_fruit");
|
||||
|
||||
Material TORCHFLOWER_SEEDS = MaterialImpl.get("minecraft:torchflower_seeds");
|
||||
|
||||
Material BEETROOT = MaterialImpl.get("minecraft:beetroot");
|
||||
|
||||
Material BEETROOT_SEEDS = MaterialImpl.get("minecraft:beetroot_seeds");
|
||||
@ -2308,4 +2426,38 @@ interface Materials {
|
||||
Material FROGSPAWN = MaterialImpl.get("minecraft:frogspawn");
|
||||
|
||||
Material ECHO_SHARD = MaterialImpl.get("minecraft:echo_shard");
|
||||
|
||||
Material BRUSH = MaterialImpl.get("minecraft:brush");
|
||||
|
||||
Material NETHERITE_UPGRADE_SMITHING_TEMPLATE = MaterialImpl.get("minecraft:netherite_upgrade_smithing_template");
|
||||
|
||||
Material SENTRY_ARMOR_TRIM_SMITHING_TEMPLATE = MaterialImpl.get("minecraft:sentry_armor_trim_smithing_template");
|
||||
|
||||
Material DUNE_ARMOR_TRIM_SMITHING_TEMPLATE = MaterialImpl.get("minecraft:dune_armor_trim_smithing_template");
|
||||
|
||||
Material COAST_ARMOR_TRIM_SMITHING_TEMPLATE = MaterialImpl.get("minecraft:coast_armor_trim_smithing_template");
|
||||
|
||||
Material WILD_ARMOR_TRIM_SMITHING_TEMPLATE = MaterialImpl.get("minecraft:wild_armor_trim_smithing_template");
|
||||
|
||||
Material WARD_ARMOR_TRIM_SMITHING_TEMPLATE = MaterialImpl.get("minecraft:ward_armor_trim_smithing_template");
|
||||
|
||||
Material EYE_ARMOR_TRIM_SMITHING_TEMPLATE = MaterialImpl.get("minecraft:eye_armor_trim_smithing_template");
|
||||
|
||||
Material VEX_ARMOR_TRIM_SMITHING_TEMPLATE = MaterialImpl.get("minecraft:vex_armor_trim_smithing_template");
|
||||
|
||||
Material TIDE_ARMOR_TRIM_SMITHING_TEMPLATE = MaterialImpl.get("minecraft:tide_armor_trim_smithing_template");
|
||||
|
||||
Material SNOUT_ARMOR_TRIM_SMITHING_TEMPLATE = MaterialImpl.get("minecraft:snout_armor_trim_smithing_template");
|
||||
|
||||
Material RIB_ARMOR_TRIM_SMITHING_TEMPLATE = MaterialImpl.get("minecraft:rib_armor_trim_smithing_template");
|
||||
|
||||
Material SPIRE_ARMOR_TRIM_SMITHING_TEMPLATE = MaterialImpl.get("minecraft:spire_armor_trim_smithing_template");
|
||||
|
||||
Material POTTERY_SHARD_ARCHER = MaterialImpl.get("minecraft:pottery_shard_archer");
|
||||
|
||||
Material POTTERY_SHARD_PRIZE = MaterialImpl.get("minecraft:pottery_shard_prize");
|
||||
|
||||
Material POTTERY_SHARD_ARMS_UP = MaterialImpl.get("minecraft:pottery_shard_arms_up");
|
||||
|
||||
Material POTTERY_SHARD_SKULL = MaterialImpl.get("minecraft:pottery_shard_skull");
|
||||
}
|
||||
|
@ -63,6 +63,12 @@ interface Particles {
|
||||
|
||||
Particle FLAME = ParticleImpl.get("minecraft:flame");
|
||||
|
||||
Particle DRIPPING_CHERRY_LEAVES = ParticleImpl.get("minecraft:dripping_cherry_leaves");
|
||||
|
||||
Particle FALLING_CHERRY_LEAVES = ParticleImpl.get("minecraft:falling_cherry_leaves");
|
||||
|
||||
Particle LANDING_CHERRY_LEAVES = ParticleImpl.get("minecraft:landing_cherry_leaves");
|
||||
|
||||
Particle SCULK_SOUL = ParticleImpl.get("minecraft:sculk_soul");
|
||||
|
||||
Particle SCULK_CHARGE = ParticleImpl.get("minecraft:sculk_charge");
|
||||
|
@ -199,6 +199,36 @@ interface SoundEvents {
|
||||
|
||||
SoundEvent BLOCK_BAMBOO_SAPLING_PLACE = SoundEventImpl.get("minecraft:block.bamboo_sapling.place");
|
||||
|
||||
SoundEvent BLOCK_BAMBOO_WOOD_BREAK = SoundEventImpl.get("minecraft:block.bamboo_wood.break");
|
||||
|
||||
SoundEvent BLOCK_BAMBOO_WOOD_FALL = SoundEventImpl.get("minecraft:block.bamboo_wood.fall");
|
||||
|
||||
SoundEvent BLOCK_BAMBOO_WOOD_HIT = SoundEventImpl.get("minecraft:block.bamboo_wood.hit");
|
||||
|
||||
SoundEvent BLOCK_BAMBOO_WOOD_PLACE = SoundEventImpl.get("minecraft:block.bamboo_wood.place");
|
||||
|
||||
SoundEvent BLOCK_BAMBOO_WOOD_STEP = SoundEventImpl.get("minecraft:block.bamboo_wood.step");
|
||||
|
||||
SoundEvent BLOCK_BAMBOO_WOOD_DOOR_CLOSE = SoundEventImpl.get("minecraft:block.bamboo_wood_door.close");
|
||||
|
||||
SoundEvent BLOCK_BAMBOO_WOOD_DOOR_OPEN = SoundEventImpl.get("minecraft:block.bamboo_wood_door.open");
|
||||
|
||||
SoundEvent BLOCK_BAMBOO_WOOD_TRAPDOOR_CLOSE = SoundEventImpl.get("minecraft:block.bamboo_wood_trapdoor.close");
|
||||
|
||||
SoundEvent BLOCK_BAMBOO_WOOD_TRAPDOOR_OPEN = SoundEventImpl.get("minecraft:block.bamboo_wood_trapdoor.open");
|
||||
|
||||
SoundEvent BLOCK_BAMBOO_WOOD_BUTTON_CLICK_OFF = SoundEventImpl.get("minecraft:block.bamboo_wood_button.click_off");
|
||||
|
||||
SoundEvent BLOCK_BAMBOO_WOOD_BUTTON_CLICK_ON = SoundEventImpl.get("minecraft:block.bamboo_wood_button.click_on");
|
||||
|
||||
SoundEvent BLOCK_BAMBOO_WOOD_PRESSURE_PLATE_CLICK_OFF = SoundEventImpl.get("minecraft:block.bamboo_wood_pressure_plate.click_off");
|
||||
|
||||
SoundEvent BLOCK_BAMBOO_WOOD_PRESSURE_PLATE_CLICK_ON = SoundEventImpl.get("minecraft:block.bamboo_wood_pressure_plate.click_on");
|
||||
|
||||
SoundEvent BLOCK_BAMBOO_WOOD_FENCE_GATE_CLOSE = SoundEventImpl.get("minecraft:block.bamboo_wood_fence_gate.close");
|
||||
|
||||
SoundEvent BLOCK_BAMBOO_WOOD_FENCE_GATE_OPEN = SoundEventImpl.get("minecraft:block.bamboo_wood_fence_gate.open");
|
||||
|
||||
SoundEvent BLOCK_BARREL_CLOSE = SoundEventImpl.get("minecraft:block.barrel.close");
|
||||
|
||||
SoundEvent BLOCK_BARREL_OPEN = SoundEventImpl.get("minecraft:block.barrel.open");
|
||||
@ -307,6 +337,10 @@ interface SoundEvents {
|
||||
|
||||
SoundEvent BLOCK_BREWING_STAND_BREW = SoundEventImpl.get("minecraft:block.brewing_stand.brew");
|
||||
|
||||
SoundEvent ITEM_BRUSH_BRUSHING = SoundEventImpl.get("minecraft:item.brush.brushing");
|
||||
|
||||
SoundEvent ITEM_BRUSH_BRUSH_SAND_COMPLETED = SoundEventImpl.get("minecraft:item.brush.brush_sand_completed");
|
||||
|
||||
SoundEvent BLOCK_BUBBLE_COLUMN_BUBBLE_POP = SoundEventImpl.get("minecraft:block.bubble_column.bubble_pop");
|
||||
|
||||
SoundEvent BLOCK_BUBBLE_COLUMN_UPWARDS_AMBIENT = SoundEventImpl.get("minecraft:block.bubble_column.upwards_ambient");
|
||||
@ -359,6 +393,28 @@ interface SoundEvents {
|
||||
|
||||
SoundEvent BLOCK_CALCITE_FALL = SoundEventImpl.get("minecraft:block.calcite.fall");
|
||||
|
||||
SoundEvent ENTITY_CAMEL_AMBIENT = SoundEventImpl.get("minecraft:entity.camel.ambient");
|
||||
|
||||
SoundEvent ENTITY_CAMEL_DASH = SoundEventImpl.get("minecraft:entity.camel.dash");
|
||||
|
||||
SoundEvent ENTITY_CAMEL_DASH_READY = SoundEventImpl.get("minecraft:entity.camel.dash_ready");
|
||||
|
||||
SoundEvent ENTITY_CAMEL_DEATH = SoundEventImpl.get("minecraft:entity.camel.death");
|
||||
|
||||
SoundEvent ENTITY_CAMEL_EAT = SoundEventImpl.get("minecraft:entity.camel.eat");
|
||||
|
||||
SoundEvent ENTITY_CAMEL_HURT = SoundEventImpl.get("minecraft:entity.camel.hurt");
|
||||
|
||||
SoundEvent ENTITY_CAMEL_SADDLE = SoundEventImpl.get("minecraft:entity.camel.saddle");
|
||||
|
||||
SoundEvent ENTITY_CAMEL_SIT = SoundEventImpl.get("minecraft:entity.camel.sit");
|
||||
|
||||
SoundEvent ENTITY_CAMEL_STAND = SoundEventImpl.get("minecraft:entity.camel.stand");
|
||||
|
||||
SoundEvent ENTITY_CAMEL_STEP = SoundEventImpl.get("minecraft:entity.camel.step");
|
||||
|
||||
SoundEvent ENTITY_CAMEL_STEP_SAND = SoundEventImpl.get("minecraft:entity.camel.step_sand");
|
||||
|
||||
SoundEvent BLOCK_CAMPFIRE_CRACKLE = SoundEventImpl.get("minecraft:block.campfire.crackle");
|
||||
|
||||
SoundEvent BLOCK_CANDLE_AMBIENT = SoundEventImpl.get("minecraft:block.candle.ambient");
|
||||
@ -415,6 +471,66 @@ interface SoundEvents {
|
||||
|
||||
SoundEvent BLOCK_CHAIN_STEP = SoundEventImpl.get("minecraft:block.chain.step");
|
||||
|
||||
SoundEvent BLOCK_CHERRY_WOOD_BREAK = SoundEventImpl.get("minecraft:block.cherry_wood.break");
|
||||
|
||||
SoundEvent BLOCK_CHERRY_WOOD_FALL = SoundEventImpl.get("minecraft:block.cherry_wood.fall");
|
||||
|
||||
SoundEvent BLOCK_CHERRY_WOOD_HIT = SoundEventImpl.get("minecraft:block.cherry_wood.hit");
|
||||
|
||||
SoundEvent BLOCK_CHERRY_WOOD_PLACE = SoundEventImpl.get("minecraft:block.cherry_wood.place");
|
||||
|
||||
SoundEvent BLOCK_CHERRY_WOOD_STEP = SoundEventImpl.get("minecraft:block.cherry_wood.step");
|
||||
|
||||
SoundEvent BLOCK_CHERRY_SAPLING_BREAK = SoundEventImpl.get("minecraft:block.cherry_sapling.break");
|
||||
|
||||
SoundEvent BLOCK_CHERRY_SAPLING_FALL = SoundEventImpl.get("minecraft:block.cherry_sapling.fall");
|
||||
|
||||
SoundEvent BLOCK_CHERRY_SAPLING_HIT = SoundEventImpl.get("minecraft:block.cherry_sapling.hit");
|
||||
|
||||
SoundEvent BLOCK_CHERRY_SAPLING_PLACE = SoundEventImpl.get("minecraft:block.cherry_sapling.place");
|
||||
|
||||
SoundEvent BLOCK_CHERRY_SAPLING_STEP = SoundEventImpl.get("minecraft:block.cherry_sapling.step");
|
||||
|
||||
SoundEvent BLOCK_CHERRY_LEAVES_BREAK = SoundEventImpl.get("minecraft:block.cherry_leaves.break");
|
||||
|
||||
SoundEvent BLOCK_CHERRY_LEAVES_FALL = SoundEventImpl.get("minecraft:block.cherry_leaves.fall");
|
||||
|
||||
SoundEvent BLOCK_CHERRY_LEAVES_HIT = SoundEventImpl.get("minecraft:block.cherry_leaves.hit");
|
||||
|
||||
SoundEvent BLOCK_CHERRY_LEAVES_PLACE = SoundEventImpl.get("minecraft:block.cherry_leaves.place");
|
||||
|
||||
SoundEvent BLOCK_CHERRY_LEAVES_STEP = SoundEventImpl.get("minecraft:block.cherry_leaves.step");
|
||||
|
||||
SoundEvent BLOCK_CHERRY_WOOD_HANGING_SIGN_STEP = SoundEventImpl.get("minecraft:block.cherry_wood_hanging_sign.step");
|
||||
|
||||
SoundEvent BLOCK_CHERRY_WOOD_HANGING_SIGN_BREAK = SoundEventImpl.get("minecraft:block.cherry_wood_hanging_sign.break");
|
||||
|
||||
SoundEvent BLOCK_CHERRY_WOOD_HANGING_SIGN_FALL = SoundEventImpl.get("minecraft:block.cherry_wood_hanging_sign.fall");
|
||||
|
||||
SoundEvent BLOCK_CHERRY_WOOD_HANGING_SIGN_HIT = SoundEventImpl.get("minecraft:block.cherry_wood_hanging_sign.hit");
|
||||
|
||||
SoundEvent BLOCK_CHERRY_WOOD_HANGING_SIGN_PLACE = SoundEventImpl.get("minecraft:block.cherry_wood_hanging_sign.place");
|
||||
|
||||
SoundEvent BLOCK_CHERRY_WOOD_DOOR_CLOSE = SoundEventImpl.get("minecraft:block.cherry_wood_door.close");
|
||||
|
||||
SoundEvent BLOCK_CHERRY_WOOD_DOOR_OPEN = SoundEventImpl.get("minecraft:block.cherry_wood_door.open");
|
||||
|
||||
SoundEvent BLOCK_CHERRY_WOOD_TRAPDOOR_CLOSE = SoundEventImpl.get("minecraft:block.cherry_wood_trapdoor.close");
|
||||
|
||||
SoundEvent BLOCK_CHERRY_WOOD_TRAPDOOR_OPEN = SoundEventImpl.get("minecraft:block.cherry_wood_trapdoor.open");
|
||||
|
||||
SoundEvent BLOCK_CHERRY_WOOD_BUTTON_CLICK_OFF = SoundEventImpl.get("minecraft:block.cherry_wood_button.click_off");
|
||||
|
||||
SoundEvent BLOCK_CHERRY_WOOD_BUTTON_CLICK_ON = SoundEventImpl.get("minecraft:block.cherry_wood_button.click_on");
|
||||
|
||||
SoundEvent BLOCK_CHERRY_WOOD_PRESSURE_PLATE_CLICK_OFF = SoundEventImpl.get("minecraft:block.cherry_wood_pressure_plate.click_off");
|
||||
|
||||
SoundEvent BLOCK_CHERRY_WOOD_PRESSURE_PLATE_CLICK_ON = SoundEventImpl.get("minecraft:block.cherry_wood_pressure_plate.click_on");
|
||||
|
||||
SoundEvent BLOCK_CHERRY_WOOD_FENCE_GATE_CLOSE = SoundEventImpl.get("minecraft:block.cherry_wood_fence_gate.close");
|
||||
|
||||
SoundEvent BLOCK_CHERRY_WOOD_FENCE_GATE_OPEN = SoundEventImpl.get("minecraft:block.cherry_wood_fence_gate.open");
|
||||
|
||||
SoundEvent BLOCK_CHEST_CLOSE = SoundEventImpl.get("minecraft:block.chest.close");
|
||||
|
||||
SoundEvent BLOCK_CHEST_LOCKED = SoundEventImpl.get("minecraft:block.chest.locked");
|
||||
@ -431,6 +547,24 @@ interface SoundEvents {
|
||||
|
||||
SoundEvent ENTITY_CHICKEN_STEP = SoundEventImpl.get("minecraft:entity.chicken.step");
|
||||
|
||||
SoundEvent BLOCK_CHISELED_BOOKSHELF_BREAK = SoundEventImpl.get("minecraft:block.chiseled_bookshelf.break");
|
||||
|
||||
SoundEvent BLOCK_CHISELED_BOOKSHELF_FALL = SoundEventImpl.get("minecraft:block.chiseled_bookshelf.fall");
|
||||
|
||||
SoundEvent BLOCK_CHISELED_BOOKSHELF_HIT = SoundEventImpl.get("minecraft:block.chiseled_bookshelf.hit");
|
||||
|
||||
SoundEvent BLOCK_CHISELED_BOOKSHELF_INSERT = SoundEventImpl.get("minecraft:block.chiseled_bookshelf.insert");
|
||||
|
||||
SoundEvent BLOCK_CHISELED_BOOKSHELF_INSERT_ENCHANTED = SoundEventImpl.get("minecraft:block.chiseled_bookshelf.insert.enchanted");
|
||||
|
||||
SoundEvent BLOCK_CHISELED_BOOKSHELF_STEP = SoundEventImpl.get("minecraft:block.chiseled_bookshelf.step");
|
||||
|
||||
SoundEvent BLOCK_CHISELED_BOOKSHELF_PICKUP = SoundEventImpl.get("minecraft:block.chiseled_bookshelf.pickup");
|
||||
|
||||
SoundEvent BLOCK_CHISELED_BOOKSHELF_PICKUP_ENCHANTED = SoundEventImpl.get("minecraft:block.chiseled_bookshelf.pickup.enchanted");
|
||||
|
||||
SoundEvent BLOCK_CHISELED_BOOKSHELF_PLACE = SoundEventImpl.get("minecraft:block.chiseled_bookshelf.place");
|
||||
|
||||
SoundEvent BLOCK_CHORUS_FLOWER_DEATH = SoundEventImpl.get("minecraft:block.chorus_flower.death");
|
||||
|
||||
SoundEvent BLOCK_CHORUS_FLOWER_GROW = SoundEventImpl.get("minecraft:block.chorus_flower.grow");
|
||||
@ -521,6 +655,18 @@ interface SoundEvents {
|
||||
|
||||
SoundEvent ITEM_CROSSBOW_SHOOT = SoundEventImpl.get("minecraft:item.crossbow.shoot");
|
||||
|
||||
SoundEvent BLOCK_DECORATED_POT_BREAK = SoundEventImpl.get("minecraft:block.decorated_pot.break");
|
||||
|
||||
SoundEvent BLOCK_DECORATED_POT_FALL = SoundEventImpl.get("minecraft:block.decorated_pot.fall");
|
||||
|
||||
SoundEvent BLOCK_DECORATED_POT_HIT = SoundEventImpl.get("minecraft:block.decorated_pot.hit");
|
||||
|
||||
SoundEvent BLOCK_DECORATED_POT_STEP = SoundEventImpl.get("minecraft:block.decorated_pot.step");
|
||||
|
||||
SoundEvent BLOCK_DECORATED_POT_PLACE = SoundEventImpl.get("minecraft:block.decorated_pot.place");
|
||||
|
||||
SoundEvent BLOCK_DECORATED_POT_SHATTER = SoundEventImpl.get("minecraft:block.decorated_pot.shatter");
|
||||
|
||||
SoundEvent BLOCK_DEEPSLATE_BRICKS_BREAK = SoundEventImpl.get("minecraft:block.deepslate_bricks.break");
|
||||
|
||||
SoundEvent BLOCK_DEEPSLATE_BRICKS_FALL = SoundEventImpl.get("minecraft:block.deepslate_bricks.fall");
|
||||
@ -805,6 +951,16 @@ interface SoundEvents {
|
||||
|
||||
SoundEvent ENTITY_FOX_TELEPORT = SoundEventImpl.get("minecraft:entity.fox.teleport");
|
||||
|
||||
SoundEvent BLOCK_SUSPICIOUS_SAND_BREAK = SoundEventImpl.get("minecraft:block.suspicious_sand.break");
|
||||
|
||||
SoundEvent BLOCK_SUSPICIOUS_SAND_STEP = SoundEventImpl.get("minecraft:block.suspicious_sand.step");
|
||||
|
||||
SoundEvent BLOCK_SUSPICIOUS_SAND_PLACE = SoundEventImpl.get("minecraft:block.suspicious_sand.place");
|
||||
|
||||
SoundEvent BLOCK_SUSPICIOUS_SAND_HIT = SoundEventImpl.get("minecraft:block.suspicious_sand.hit");
|
||||
|
||||
SoundEvent BLOCK_SUSPICIOUS_SAND_FALL = SoundEventImpl.get("minecraft:block.suspicious_sand.fall");
|
||||
|
||||
SoundEvent BLOCK_FROGLIGHT_BREAK = SoundEventImpl.get("minecraft:block.froglight.break");
|
||||
|
||||
SoundEvent BLOCK_FROGLIGHT_FALL = SoundEventImpl.get("minecraft:block.froglight.fall");
|
||||
@ -1019,6 +1175,36 @@ interface SoundEvents {
|
||||
|
||||
SoundEvent BLOCK_HANGING_ROOTS_STEP = SoundEventImpl.get("minecraft:block.hanging_roots.step");
|
||||
|
||||
SoundEvent BLOCK_HANGING_SIGN_STEP = SoundEventImpl.get("minecraft:block.hanging_sign.step");
|
||||
|
||||
SoundEvent BLOCK_HANGING_SIGN_BREAK = SoundEventImpl.get("minecraft:block.hanging_sign.break");
|
||||
|
||||
SoundEvent BLOCK_HANGING_SIGN_FALL = SoundEventImpl.get("minecraft:block.hanging_sign.fall");
|
||||
|
||||
SoundEvent BLOCK_HANGING_SIGN_HIT = SoundEventImpl.get("minecraft:block.hanging_sign.hit");
|
||||
|
||||
SoundEvent BLOCK_HANGING_SIGN_PLACE = SoundEventImpl.get("minecraft:block.hanging_sign.place");
|
||||
|
||||
SoundEvent BLOCK_NETHER_WOOD_HANGING_SIGN_STEP = SoundEventImpl.get("minecraft:block.nether_wood_hanging_sign.step");
|
||||
|
||||
SoundEvent BLOCK_NETHER_WOOD_HANGING_SIGN_BREAK = SoundEventImpl.get("minecraft:block.nether_wood_hanging_sign.break");
|
||||
|
||||
SoundEvent BLOCK_NETHER_WOOD_HANGING_SIGN_FALL = SoundEventImpl.get("minecraft:block.nether_wood_hanging_sign.fall");
|
||||
|
||||
SoundEvent BLOCK_NETHER_WOOD_HANGING_SIGN_HIT = SoundEventImpl.get("minecraft:block.nether_wood_hanging_sign.hit");
|
||||
|
||||
SoundEvent BLOCK_NETHER_WOOD_HANGING_SIGN_PLACE = SoundEventImpl.get("minecraft:block.nether_wood_hanging_sign.place");
|
||||
|
||||
SoundEvent BLOCK_BAMBOO_WOOD_HANGING_SIGN_STEP = SoundEventImpl.get("minecraft:block.bamboo_wood_hanging_sign.step");
|
||||
|
||||
SoundEvent BLOCK_BAMBOO_WOOD_HANGING_SIGN_BREAK = SoundEventImpl.get("minecraft:block.bamboo_wood_hanging_sign.break");
|
||||
|
||||
SoundEvent BLOCK_BAMBOO_WOOD_HANGING_SIGN_FALL = SoundEventImpl.get("minecraft:block.bamboo_wood_hanging_sign.fall");
|
||||
|
||||
SoundEvent BLOCK_BAMBOO_WOOD_HANGING_SIGN_HIT = SoundEventImpl.get("minecraft:block.bamboo_wood_hanging_sign.hit");
|
||||
|
||||
SoundEvent BLOCK_BAMBOO_WOOD_HANGING_SIGN_PLACE = SoundEventImpl.get("minecraft:block.bamboo_wood_hanging_sign.place");
|
||||
|
||||
SoundEvent ITEM_HOE_TILL = SoundEventImpl.get("minecraft:item.hoe.till");
|
||||
|
||||
SoundEvent ENTITY_HOGLIN_AMBIENT = SoundEventImpl.get("minecraft:entity.hoglin.ambient");
|
||||
@ -1307,6 +1493,16 @@ interface SoundEvents {
|
||||
|
||||
SoundEvent BLOCK_MOSS_CARPET_STEP = SoundEventImpl.get("minecraft:block.moss_carpet.step");
|
||||
|
||||
SoundEvent BLOCK_PINK_PETALS_BREAK = SoundEventImpl.get("minecraft:block.pink_petals.break");
|
||||
|
||||
SoundEvent BLOCK_PINK_PETALS_FALL = SoundEventImpl.get("minecraft:block.pink_petals.fall");
|
||||
|
||||
SoundEvent BLOCK_PINK_PETALS_HIT = SoundEventImpl.get("minecraft:block.pink_petals.hit");
|
||||
|
||||
SoundEvent BLOCK_PINK_PETALS_PLACE = SoundEventImpl.get("minecraft:block.pink_petals.place");
|
||||
|
||||
SoundEvent BLOCK_PINK_PETALS_STEP = SoundEventImpl.get("minecraft:block.pink_petals.step");
|
||||
|
||||
SoundEvent BLOCK_MOSS_BREAK = SoundEventImpl.get("minecraft:block.moss.break");
|
||||
|
||||
SoundEvent BLOCK_MOSS_FALL = SoundEventImpl.get("minecraft:block.moss.fall");
|
||||
@ -1423,6 +1619,8 @@ interface SoundEvents {
|
||||
|
||||
SoundEvent MUSIC_OVERWORLD_MEADOW = SoundEventImpl.get("minecraft:music.overworld.meadow");
|
||||
|
||||
SoundEvent MUSIC_OVERWORLD_CHERRY_GROVE = SoundEventImpl.get("minecraft:music.overworld.cherry_grove");
|
||||
|
||||
SoundEvent MUSIC_NETHER_NETHER_WASTES = SoundEventImpl.get("minecraft:music.nether.nether_wastes");
|
||||
|
||||
SoundEvent MUSIC_OVERWORLD_FROZEN_PEAKS = SoundEventImpl.get("minecraft:music.overworld.frozen_peaks");
|
||||
@ -1451,6 +1649,38 @@ interface SoundEvents {
|
||||
|
||||
SoundEvent ITEM_NETHER_WART_PLANT = SoundEventImpl.get("minecraft:item.nether_wart.plant");
|
||||
|
||||
SoundEvent BLOCK_NETHER_WOOD_BREAK = SoundEventImpl.get("minecraft:block.nether_wood.break");
|
||||
|
||||
SoundEvent BLOCK_NETHER_WOOD_FALL = SoundEventImpl.get("minecraft:block.nether_wood.fall");
|
||||
|
||||
SoundEvent BLOCK_NETHER_WOOD_HIT = SoundEventImpl.get("minecraft:block.nether_wood.hit");
|
||||
|
||||
SoundEvent BLOCK_NETHER_WOOD_PLACE = SoundEventImpl.get("minecraft:block.nether_wood.place");
|
||||
|
||||
SoundEvent BLOCK_NETHER_WOOD_STEP = SoundEventImpl.get("minecraft:block.nether_wood.step");
|
||||
|
||||
SoundEvent BLOCK_NETHER_WOOD_DOOR_CLOSE = SoundEventImpl.get("minecraft:block.nether_wood_door.close");
|
||||
|
||||
SoundEvent BLOCK_NETHER_WOOD_DOOR_OPEN = SoundEventImpl.get("minecraft:block.nether_wood_door.open");
|
||||
|
||||
SoundEvent BLOCK_NETHER_WOOD_TRAPDOOR_CLOSE = SoundEventImpl.get("minecraft:block.nether_wood_trapdoor.close");
|
||||
|
||||
SoundEvent BLOCK_NETHER_WOOD_TRAPDOOR_OPEN = SoundEventImpl.get("minecraft:block.nether_wood_trapdoor.open");
|
||||
|
||||
SoundEvent BLOCK_NETHER_WOOD_BUTTON_CLICK_OFF = SoundEventImpl.get("minecraft:block.nether_wood_button.click_off");
|
||||
|
||||
SoundEvent BLOCK_NETHER_WOOD_BUTTON_CLICK_ON = SoundEventImpl.get("minecraft:block.nether_wood_button.click_on");
|
||||
|
||||
SoundEvent BLOCK_NETHER_WOOD_PRESSURE_PLATE_CLICK_OFF = SoundEventImpl.get("minecraft:block.nether_wood_pressure_plate.click_off");
|
||||
|
||||
SoundEvent BLOCK_NETHER_WOOD_PRESSURE_PLATE_CLICK_ON = SoundEventImpl.get("minecraft:block.nether_wood_pressure_plate.click_on");
|
||||
|
||||
SoundEvent BLOCK_NETHER_WOOD_FENCE_GATE_CLOSE = SoundEventImpl.get("minecraft:block.nether_wood_fence_gate.close");
|
||||
|
||||
SoundEvent BLOCK_NETHER_WOOD_FENCE_GATE_OPEN = SoundEventImpl.get("minecraft:block.nether_wood_fence_gate.open");
|
||||
|
||||
SoundEvent INTENTIONALLY_EMPTY = SoundEventImpl.get("minecraft:intentionally_empty");
|
||||
|
||||
SoundEvent BLOCK_PACKED_MUD_BREAK = SoundEventImpl.get("minecraft:block.packed_mud.break");
|
||||
|
||||
SoundEvent BLOCK_PACKED_MUD_FALL = SoundEventImpl.get("minecraft:block.packed_mud.fall");
|
||||
@ -1573,6 +1803,18 @@ interface SoundEvents {
|
||||
|
||||
SoundEvent BLOCK_NOTE_BLOCK_BANJO = SoundEventImpl.get("minecraft:block.note_block.banjo");
|
||||
|
||||
SoundEvent BLOCK_NOTE_BLOCK_IMITATE_ZOMBIE = SoundEventImpl.get("minecraft:block.note_block.imitate.zombie");
|
||||
|
||||
SoundEvent BLOCK_NOTE_BLOCK_IMITATE_SKELETON = SoundEventImpl.get("minecraft:block.note_block.imitate.skeleton");
|
||||
|
||||
SoundEvent BLOCK_NOTE_BLOCK_IMITATE_CREEPER = SoundEventImpl.get("minecraft:block.note_block.imitate.creeper");
|
||||
|
||||
SoundEvent BLOCK_NOTE_BLOCK_IMITATE_ENDER_DRAGON = SoundEventImpl.get("minecraft:block.note_block.imitate.ender_dragon");
|
||||
|
||||
SoundEvent BLOCK_NOTE_BLOCK_IMITATE_WITHER_SKELETON = SoundEventImpl.get("minecraft:block.note_block.imitate.wither_skeleton");
|
||||
|
||||
SoundEvent BLOCK_NOTE_BLOCK_IMITATE_PIGLIN = SoundEventImpl.get("minecraft:block.note_block.imitate.piglin");
|
||||
|
||||
SoundEvent ENTITY_OCELOT_HURT = SoundEventImpl.get("minecraft:entity.ocelot.hurt");
|
||||
|
||||
SoundEvent ENTITY_OCELOT_AMBIENT = SoundEventImpl.get("minecraft:entity.ocelot.ambient");
|
||||
@ -2183,6 +2425,30 @@ interface SoundEvents {
|
||||
|
||||
SoundEvent BLOCK_SMOKER_SMOKE = SoundEventImpl.get("minecraft:block.smoker.smoke");
|
||||
|
||||
SoundEvent ENTITY_SNIFFER_STEP = SoundEventImpl.get("minecraft:entity.sniffer.step");
|
||||
|
||||
SoundEvent ENTITY_SNIFFER_EAT = SoundEventImpl.get("minecraft:entity.sniffer.eat");
|
||||
|
||||
SoundEvent ENTITY_SNIFFER_IDLE = SoundEventImpl.get("minecraft:entity.sniffer.idle");
|
||||
|
||||
SoundEvent ENTITY_SNIFFER_HURT = SoundEventImpl.get("minecraft:entity.sniffer.hurt");
|
||||
|
||||
SoundEvent ENTITY_SNIFFER_DEATH = SoundEventImpl.get("minecraft:entity.sniffer.death");
|
||||
|
||||
SoundEvent ENTITY_SNIFFER_DROP_SEED = SoundEventImpl.get("minecraft:entity.sniffer.drop_seed");
|
||||
|
||||
SoundEvent ENTITY_SNIFFER_SCENTING = SoundEventImpl.get("minecraft:entity.sniffer.scenting");
|
||||
|
||||
SoundEvent ENTITY_SNIFFER_SNIFFING = SoundEventImpl.get("minecraft:entity.sniffer.sniffing");
|
||||
|
||||
SoundEvent ENTITY_SNIFFER_SEARCHING = SoundEventImpl.get("minecraft:entity.sniffer.searching");
|
||||
|
||||
SoundEvent ENTITY_SNIFFER_DIGGING = SoundEventImpl.get("minecraft:entity.sniffer.digging");
|
||||
|
||||
SoundEvent ENTITY_SNIFFER_DIGGING_STOP = SoundEventImpl.get("minecraft:entity.sniffer.digging_stop");
|
||||
|
||||
SoundEvent ENTITY_SNIFFER_HAPPY = SoundEventImpl.get("minecraft:entity.sniffer.happy");
|
||||
|
||||
SoundEvent ENTITY_SNOWBALL_THROW = SoundEventImpl.get("minecraft:entity.snowball.throw");
|
||||
|
||||
SoundEvent BLOCK_SNOW_BREAK = SoundEventImpl.get("minecraft:block.snow.break");
|
||||
@ -2561,22 +2827,22 @@ interface SoundEvents {
|
||||
|
||||
SoundEvent BLOCK_WOODEN_TRAPDOOR_OPEN = SoundEventImpl.get("minecraft:block.wooden_trapdoor.open");
|
||||
|
||||
SoundEvent BLOCK_WOOD_BREAK = SoundEventImpl.get("minecraft:block.wood.break");
|
||||
|
||||
SoundEvent BLOCK_WOODEN_BUTTON_CLICK_OFF = SoundEventImpl.get("minecraft:block.wooden_button.click_off");
|
||||
|
||||
SoundEvent BLOCK_WOODEN_BUTTON_CLICK_ON = SoundEventImpl.get("minecraft:block.wooden_button.click_on");
|
||||
|
||||
SoundEvent BLOCK_WOODEN_PRESSURE_PLATE_CLICK_OFF = SoundEventImpl.get("minecraft:block.wooden_pressure_plate.click_off");
|
||||
|
||||
SoundEvent BLOCK_WOODEN_PRESSURE_PLATE_CLICK_ON = SoundEventImpl.get("minecraft:block.wooden_pressure_plate.click_on");
|
||||
|
||||
SoundEvent BLOCK_WOOD_BREAK = SoundEventImpl.get("minecraft:block.wood.break");
|
||||
|
||||
SoundEvent BLOCK_WOOD_FALL = SoundEventImpl.get("minecraft:block.wood.fall");
|
||||
|
||||
SoundEvent BLOCK_WOOD_HIT = SoundEventImpl.get("minecraft:block.wood.hit");
|
||||
|
||||
SoundEvent BLOCK_WOOD_PLACE = SoundEventImpl.get("minecraft:block.wood.place");
|
||||
|
||||
SoundEvent BLOCK_WOODEN_PRESSURE_PLATE_CLICK_OFF = SoundEventImpl.get("minecraft:block.wooden_pressure_plate.click_off");
|
||||
|
||||
SoundEvent BLOCK_WOODEN_PRESSURE_PLATE_CLICK_ON = SoundEventImpl.get("minecraft:block.wooden_pressure_plate.click_on");
|
||||
|
||||
SoundEvent BLOCK_WOOD_STEP = SoundEventImpl.get("minecraft:block.wood.step");
|
||||
|
||||
SoundEvent BLOCK_WOOL_BREAK = SoundEventImpl.get("minecraft:block.wool.break");
|
||||
|
@ -45,8 +45,8 @@ public final class MinecraftServer {
|
||||
|
||||
public static final ComponentLogger LOGGER = ComponentLogger.logger(MinecraftServer.class);
|
||||
|
||||
public static final String VERSION_NAME = "1.19.3";
|
||||
public static final int PROTOCOL_VERSION = 761;
|
||||
public static final String VERSION_NAME = "1.19.4";
|
||||
public static final int PROTOCOL_VERSION = 762;
|
||||
|
||||
// Threads
|
||||
public static final String THREAD_NAME_BENCHMARK = "Ms-Benchmark";
|
||||
|
@ -1,5 +1,6 @@
|
||||
package net.minestom.server.command.builder.arguments.minecraft;
|
||||
|
||||
import net.minestom.server.command.CommandSender;
|
||||
import net.minestom.server.command.builder.arguments.Argument;
|
||||
import net.minestom.server.command.builder.exception.ArgumentSyntaxException;
|
||||
import net.minestom.server.utils.StringUtils;
|
||||
@ -19,7 +20,7 @@ public class ArgumentResource extends Argument<String> {
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull String parse(@NotNull String input) throws ArgumentSyntaxException {
|
||||
public @NotNull String parse(@NotNull CommandSender sender, @NotNull String input) throws ArgumentSyntaxException {
|
||||
if (input.contains(StringUtils.SPACE))
|
||||
throw new ArgumentSyntaxException("Resource location cannot contain space character", input, SPACE_ERROR);
|
||||
|
||||
|
@ -1,5 +1,6 @@
|
||||
package net.minestom.server.command.builder.arguments.minecraft;
|
||||
|
||||
import net.minestom.server.command.CommandSender;
|
||||
import net.minestom.server.command.builder.arguments.Argument;
|
||||
import net.minestom.server.command.builder.exception.ArgumentSyntaxException;
|
||||
import net.minestom.server.utils.StringUtils;
|
||||
@ -19,7 +20,7 @@ public class ArgumentResourceOrTag extends Argument<String> {
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull String parse(@NotNull String input) throws ArgumentSyntaxException {
|
||||
public @NotNull String parse(@NotNull CommandSender sender, @NotNull String input) throws ArgumentSyntaxException {
|
||||
if (input.contains(StringUtils.SPACE))
|
||||
throw new ArgumentSyntaxException("Resource location cannot contain space character", input, SPACE_ERROR);
|
||||
|
||||
|
@ -301,6 +301,7 @@ public class Entity implements Viewable, Tickable, Schedulable, Snapshotable, Ev
|
||||
this.position = position;
|
||||
refreshCoordinate(position);
|
||||
synchronizePosition(true);
|
||||
setView(position.yaw(), position.pitch());
|
||||
};
|
||||
|
||||
if (chunks != null && chunks.length > 0) {
|
||||
@ -666,6 +667,8 @@ public class Entity implements Viewable, Tickable, Schedulable, Snapshotable, Ev
|
||||
}
|
||||
|
||||
private void touchTick() {
|
||||
if (!hasPhysics) return;
|
||||
|
||||
// TODO do not call every tick (it is pretty expensive)
|
||||
final Pos position = this.position;
|
||||
final BoundingBox boundingBox = this.boundingBox;
|
||||
|
@ -10,6 +10,9 @@ import net.minestom.server.entity.metadata.animal.tameable.WolfMeta;
|
||||
import net.minestom.server.entity.metadata.arrow.ArrowMeta;
|
||||
import net.minestom.server.entity.metadata.arrow.SpectralArrowMeta;
|
||||
import net.minestom.server.entity.metadata.arrow.ThrownTridentMeta;
|
||||
import net.minestom.server.entity.metadata.display.BlockDisplayMeta;
|
||||
import net.minestom.server.entity.metadata.display.ItemDisplayMeta;
|
||||
import net.minestom.server.entity.metadata.display.TextDisplayMeta;
|
||||
import net.minestom.server.entity.metadata.flying.GhastMeta;
|
||||
import net.minestom.server.entity.metadata.flying.PhantomMeta;
|
||||
import net.minestom.server.entity.metadata.golem.IronGolemMeta;
|
||||
@ -83,8 +86,10 @@ record EntityTypeImpl(Registry.EntityEntry registry) implements EntityType {
|
||||
entry("minecraft:bat", BatMeta::new),
|
||||
entry("minecraft:bee", BeeMeta::new),
|
||||
entry("minecraft:blaze", BlazeMeta::new),
|
||||
entry("minecraft:block_display", BlockDisplayMeta::new),
|
||||
entry("minecraft:boat", BoatMeta::new),
|
||||
entry("minecraft:chest_boat", EntityMeta::new), // TODO dedicated metadata
|
||||
entry("minecraft:camel", CamelMeta::new),
|
||||
entry("minecraft:cat", CatMeta::new),
|
||||
entry("minecraft:cave_spider", CaveSpiderMeta::new),
|
||||
entry("minecraft:chicken", ChickenMeta::new),
|
||||
@ -118,8 +123,10 @@ record EntityTypeImpl(Registry.EntityEntry registry) implements EntityType {
|
||||
entry("minecraft:horse", HorseMeta::new),
|
||||
entry("minecraft:husk", HuskMeta::new),
|
||||
entry("minecraft:illusioner", IllusionerMeta::new),
|
||||
entry("minecraft:interaction", InteractionMeta::new),
|
||||
entry("minecraft:iron_golem", IronGolemMeta::new),
|
||||
entry("minecraft:item", ItemEntityMeta::new),
|
||||
entry("minecraft:item_display", ItemDisplayMeta::new),
|
||||
entry("minecraft:item_frame", ItemFrameMeta::new),
|
||||
entry("minecraft:fireball", FireballMeta::new),
|
||||
entry("minecraft:leash_knot", LeashKnotMeta::new),
|
||||
@ -134,6 +141,7 @@ record EntityTypeImpl(Registry.EntityEntry registry) implements EntityType {
|
||||
entry("minecraft:furnace_minecart", FurnaceMinecartMeta::new),
|
||||
entry("minecraft:hopper_minecart", HopperMinecartMeta::new),
|
||||
entry("minecraft:spawner_minecart", SpawnerMinecartMeta::new),
|
||||
entry("minecraft:text_display", TextDisplayMeta::new),
|
||||
entry("minecraft:tnt_minecart", TntMinecartMeta::new),
|
||||
entry("minecraft:mule", MuleMeta::new),
|
||||
entry("minecraft:mooshroom", MooshroomMeta::new),
|
||||
@ -160,6 +168,7 @@ record EntityTypeImpl(Registry.EntityEntry registry) implements EntityType {
|
||||
entry("minecraft:skeleton_horse", SkeletonHorseMeta::new),
|
||||
entry("minecraft:slime", SlimeMeta::new),
|
||||
entry("minecraft:small_fireball", SmallFireballMeta::new),
|
||||
entry("minecraft:sniffer", SnifferMeta::new),
|
||||
entry("minecraft:snow_golem", SnowGolemMeta::new),
|
||||
entry("minecraft:snowball", SnowballMeta::new),
|
||||
entry("minecraft:spectral_arrow", SpectralArrowMeta::new),
|
||||
|
@ -3,6 +3,7 @@ package net.minestom.server.entity;
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.minestom.server.coordinate.Point;
|
||||
import net.minestom.server.entity.metadata.animal.FrogMeta;
|
||||
import net.minestom.server.entity.metadata.animal.SnifferMeta;
|
||||
import net.minestom.server.entity.metadata.animal.tameable.CatMeta;
|
||||
import net.minestom.server.item.ItemStack;
|
||||
import net.minestom.server.network.NetworkBuffer;
|
||||
@ -31,7 +32,7 @@ public final class Metadata {
|
||||
}
|
||||
|
||||
public static Entry<Long> Long(long value) {
|
||||
return new MetadataImpl.EntryImpl<>(TYPE_LONG, value, NetworkBuffer.LONG);
|
||||
return new MetadataImpl.EntryImpl<>(TYPE_LONG, value, NetworkBuffer.VAR_LONG);
|
||||
}
|
||||
|
||||
public static Entry<Float> Float(float value) {
|
||||
@ -78,8 +79,12 @@ public final class Metadata {
|
||||
return new MetadataImpl.EntryImpl<>(TYPE_OPTUUID, value, NetworkBuffer.OPT_UUID);
|
||||
}
|
||||
|
||||
public static Entry<Integer> OptBlockID(@Nullable Integer value) {
|
||||
return new MetadataImpl.EntryImpl<>(TYPE_OPTBLOCKID, value, NetworkBuffer.OPT_BLOCK_ID);
|
||||
public static Entry<Integer> BlockState(@Nullable Integer value) {
|
||||
return new MetadataImpl.EntryImpl<>(TYPE_BLOCKSTATE, value, NetworkBuffer.BLOCK_STATE);
|
||||
}
|
||||
|
||||
public static Entry<Integer> OptBlockState(@Nullable Integer value) {
|
||||
return new MetadataImpl.EntryImpl<>(TYPE_OPTBLOCKSTATE, value, NetworkBuffer.OPT_BLOCK_STATE);
|
||||
}
|
||||
|
||||
public static Entry<NBT> NBT(@NotNull NBT nbt) {
|
||||
@ -109,6 +114,18 @@ public final class Metadata {
|
||||
return new MetadataImpl.EntryImpl<>(TYPE_FROG_VARIANT, value, NetworkBuffer.FROG_VARIANT);
|
||||
}
|
||||
|
||||
public static Entry<SnifferMeta.State> SnifferState(@NotNull SnifferMeta.State value) {
|
||||
return new MetadataImpl.EntryImpl<>(TYPE_SNIFFER_STATE, value, NetworkBuffer.SNIFFER_STATE);
|
||||
}
|
||||
|
||||
public static Entry<Point> Vector3(@NotNull Point value) {
|
||||
return new MetadataImpl.EntryImpl<>(TYPE_VECTOR3, value, NetworkBuffer.VECTOR3);
|
||||
}
|
||||
|
||||
public static Entry<float[]> Quaternion(float @NotNull[] value) {
|
||||
return new MetadataImpl.EntryImpl<>(TYPE_QUATERNION, value, NetworkBuffer.QUATERNION);
|
||||
}
|
||||
|
||||
public static final byte TYPE_BYTE = 0;
|
||||
public static final byte TYPE_VARINT = 1;
|
||||
public static final byte TYPE_LONG = 2;
|
||||
@ -123,14 +140,20 @@ public final class Metadata {
|
||||
public static final byte TYPE_OPTPOSITION = 11;
|
||||
public static final byte TYPE_DIRECTION = 12;
|
||||
public static final byte TYPE_OPTUUID = 13;
|
||||
public static final byte TYPE_OPTBLOCKID = 14;
|
||||
public static final byte TYPE_NBT = 15;
|
||||
public static final byte TYPE_PARTICLE = 16;
|
||||
public static final byte TYPE_VILLAGERDATA = 17;
|
||||
public static final byte TYPE_OPTVARINT = 18;
|
||||
public static final byte TYPE_POSE = 19;
|
||||
public static final byte TYPE_CAT_VARIANT = 20;
|
||||
public static final byte TYPE_FROG_VARIANT = 21;
|
||||
public static final byte TYPE_BLOCKSTATE = 14;
|
||||
public static final byte TYPE_OPTBLOCKSTATE = 15;
|
||||
public static final byte TYPE_NBT = 16;
|
||||
public static final byte TYPE_PARTICLE = 17;
|
||||
public static final byte TYPE_VILLAGERDATA = 18;
|
||||
public static final byte TYPE_OPTVARINT = 19;
|
||||
public static final byte TYPE_POSE = 20;
|
||||
public static final byte TYPE_CAT_VARIANT = 21;
|
||||
public static final byte TYPE_FROG_VARIANT = 22;
|
||||
public static final byte TYPE_OPTGLOBALPOS = 23;
|
||||
public static final byte TYPE_PAINTINGVARIANT = 24;
|
||||
public static final byte TYPE_SNIFFER_STATE = 25;
|
||||
public static final byte TYPE_VECTOR3 = 26;
|
||||
public static final byte TYPE_QUATERNION = 27;
|
||||
|
||||
private static final VarHandle NOTIFIED_CHANGES;
|
||||
|
||||
|
@ -34,7 +34,7 @@ final class MetadataImpl {
|
||||
EMPTY_VALUES.set(TYPE_OPTPOSITION, OptPosition(null));
|
||||
EMPTY_VALUES.set(TYPE_DIRECTION, Direction(Direction.DOWN));
|
||||
EMPTY_VALUES.set(TYPE_OPTUUID, OptUUID(null));
|
||||
EMPTY_VALUES.set(TYPE_OPTBLOCKID, OptBlockID(null));
|
||||
EMPTY_VALUES.set(TYPE_OPTBLOCKSTATE, OptBlockState(null));
|
||||
EMPTY_VALUES.set(TYPE_NBT, NBT(NBTEnd.INSTANCE));
|
||||
//EMPTY_VALUES.set(TYPE_PARTICLE -> throw new UnsupportedOperationException();
|
||||
EMPTY_VALUES.set(TYPE_VILLAGERDATA, VillagerData(0, 0, 0));
|
||||
|
@ -61,6 +61,7 @@ import net.minestom.server.network.player.PlayerConnection;
|
||||
import net.minestom.server.network.player.PlayerSocketConnection;
|
||||
import net.minestom.server.recipe.Recipe;
|
||||
import net.minestom.server.recipe.RecipeManager;
|
||||
import net.minestom.server.registry.Registry;
|
||||
import net.minestom.server.resourcepack.ResourcePack;
|
||||
import net.minestom.server.scoreboard.BelowNameTag;
|
||||
import net.minestom.server.scoreboard.Team;
|
||||
@ -89,7 +90,7 @@ import org.jetbrains.annotations.ApiStatus;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jglrxavpok.hephaistos.nbt.NBT;
|
||||
import org.jglrxavpok.hephaistos.nbt.NBTCompound;
|
||||
import org.jglrxavpok.hephaistos.nbt.NBTType;
|
||||
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.time.Duration;
|
||||
@ -248,13 +249,37 @@ public class Player extends LivingEntity implements CommandSender, Localizable,
|
||||
public CompletableFuture<Void> UNSAFE_init(@NotNull Instance spawnInstance) {
|
||||
this.dimensionType = spawnInstance.getDimensionType();
|
||||
|
||||
NBTCompound nbt = NBT.Compound(Map.of(
|
||||
"minecraft:chat_type", Messenger.chatRegistry(),
|
||||
"minecraft:dimension_type", MinecraftServer.getDimensionTypeManager().toNBT(),
|
||||
"minecraft:worldgen/biome", MinecraftServer.getBiomeManager().toNBT()));
|
||||
var registry = new HashMap<String, NBT>();
|
||||
registry.put("minecraft:chat_type", Messenger.chatRegistry());
|
||||
registry.put("minecraft:dimension_type", MinecraftServer.getDimensionTypeManager().toNBT());
|
||||
registry.put("minecraft:worldgen/biome", MinecraftServer.getBiomeManager().toNBT());
|
||||
|
||||
var damageTypeData = Registry.load(Registry.Resource.DAMAGE_TYPES);
|
||||
var damageTypes = new ArrayList<NBT>();
|
||||
int i = 0;
|
||||
for (var entry : damageTypeData.entrySet()) {
|
||||
var elem = new HashMap<String, NBT>();
|
||||
for (var e : entry.getValue().entrySet()) {
|
||||
if (e.getValue() instanceof String s) {
|
||||
elem.put(e.getKey(), NBT.String(s));
|
||||
} else if (e.getValue() instanceof Double f) {
|
||||
elem.put(e.getKey(), NBT.Float(f.floatValue()));
|
||||
} else if (e.getValue() instanceof Integer integer) {
|
||||
elem.put(e.getKey(), NBT.Int(integer));
|
||||
}
|
||||
}
|
||||
damageTypes.add(NBT.Compound(Map.of(
|
||||
"id", NBT.Int(i++),
|
||||
"name", NBT.String(entry.getKey()),
|
||||
"element", NBT.Compound(elem)
|
||||
)));
|
||||
}
|
||||
registry.put("minecraft:damage_type", NBT.Compound(Map.of(
|
||||
"type", NBT.String("minecraft:damage_type"),
|
||||
"value", NBT.List(NBTType.TAG_Compound, damageTypes)
|
||||
)));
|
||||
final JoinGamePacket joinGamePacket = new JoinGamePacket(getEntityId(), false, gameMode, null,
|
||||
List.of(dimensionType.getName().asString()), nbt, dimensionType.toString(), dimensionType.getName().asString(),
|
||||
List.of(dimensionType.getName().asString()), NBT.Compound(registry), dimensionType.toString(), dimensionType.getName().asString(),
|
||||
0, 0, MinecraftServer.getChunkViewDistance(), MinecraftServer.getChunkViewDistance(),
|
||||
false, true, false, levelFlat, deathLocation);
|
||||
sendPacket(joinGamePacket);
|
||||
@ -1560,7 +1585,7 @@ public class Player extends LivingEntity implements CommandSender, Localizable,
|
||||
@ApiStatus.Internal
|
||||
protected void synchronizePosition(boolean includeSelf) {
|
||||
if (includeSelf) {
|
||||
sendPacket(new PlayerPositionAndLookPacket(position, (byte) 0x00, getNextTeleportId(), false));
|
||||
sendPacket(new PlayerPositionAndLookPacket(position, (byte) 0x00, getNextTeleportId()));
|
||||
}
|
||||
super.synchronizePosition(includeSelf);
|
||||
}
|
||||
|
@ -4,11 +4,9 @@ import net.minestom.server.entity.Entity;
|
||||
import net.minestom.server.entity.Metadata;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
public class AbstractHorseMeta extends AnimalMeta {
|
||||
public static final byte OFFSET = AnimalMeta.MAX_OFFSET;
|
||||
public static final byte MAX_OFFSET = OFFSET + 2;
|
||||
public static final byte MAX_OFFSET = OFFSET + 1;
|
||||
|
||||
private final static byte TAMED_BIT = 0x02;
|
||||
private final static byte SADDLED_BIT = 0x04;
|
||||
@ -69,12 +67,4 @@ public class AbstractHorseMeta extends AnimalMeta {
|
||||
setMaskBit(OFFSET, MOUTH_OPEN_BIT, value);
|
||||
}
|
||||
|
||||
public UUID getOwner() {
|
||||
return super.metadata.getIndex(OFFSET + 1, null);
|
||||
}
|
||||
|
||||
public void setOwner(UUID value) {
|
||||
super.metadata.setIndex(OFFSET + 1, Metadata.OptUUID(value));
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,30 @@
|
||||
package net.minestom.server.entity.metadata.animal;
|
||||
|
||||
import net.minestom.server.entity.Entity;
|
||||
import net.minestom.server.entity.Metadata;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class CamelMeta extends AbstractHorseMeta {
|
||||
public static final byte OFFSET = AbstractHorseMeta.MAX_OFFSET;
|
||||
public static final byte MAX_OFFSET = OFFSET + 1;
|
||||
|
||||
public CamelMeta(@NotNull Entity entity, @NotNull Metadata metadata) {
|
||||
super(entity, metadata);
|
||||
}
|
||||
|
||||
public boolean isDashing() {
|
||||
return super.metadata.getIndex(OFFSET, false);
|
||||
}
|
||||
|
||||
public void setDashing(boolean value) {
|
||||
super.metadata.setIndex(OFFSET, Metadata.Boolean(value));
|
||||
}
|
||||
|
||||
public long getLastPoseChangeTick() {
|
||||
return super.metadata.getIndex(OFFSET + 1, 0L);
|
||||
}
|
||||
|
||||
public void setLastPoseChangeTick(long value) {
|
||||
super.metadata.setIndex(OFFSET + 1, Metadata.Long(value));
|
||||
}
|
||||
}
|
@ -0,0 +1,43 @@
|
||||
package net.minestom.server.entity.metadata.animal;
|
||||
|
||||
import net.minestom.server.entity.Entity;
|
||||
import net.minestom.server.entity.Metadata;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class SnifferMeta extends AnimalMeta {
|
||||
|
||||
public static final byte OFFSET = AnimalMeta.MAX_OFFSET;
|
||||
public static final byte MAX_OFFSET = OFFSET + 2;
|
||||
|
||||
public SnifferMeta(@NotNull Entity entity, @NotNull Metadata metadata) {
|
||||
super(entity, metadata);
|
||||
}
|
||||
|
||||
public @NotNull State getState() {
|
||||
return super.metadata.getIndex(OFFSET, State.IDLING);
|
||||
}
|
||||
|
||||
public void setState(@NotNull State value) {
|
||||
super.metadata.setIndex(OFFSET, Metadata.SnifferState(value));
|
||||
}
|
||||
|
||||
public int getDropSeedAtTick() {
|
||||
return super.metadata.getIndex(OFFSET + 1, 0);
|
||||
}
|
||||
|
||||
public void setDropSeedAtTick(int value) {
|
||||
super.metadata.setIndex(OFFSET + 1, Metadata.VarInt(value));
|
||||
}
|
||||
|
||||
public enum State {
|
||||
IDLING,
|
||||
FEELING_HAPPY,
|
||||
SCENTING,
|
||||
SNIFFING,
|
||||
SEARCHING,
|
||||
DIGGING,
|
||||
RISING;
|
||||
|
||||
private static final State[] VALUES = values();
|
||||
}
|
||||
}
|
@ -0,0 +1,142 @@
|
||||
package net.minestom.server.entity.metadata.display;
|
||||
|
||||
import net.minestom.server.coordinate.Point;
|
||||
import net.minestom.server.coordinate.Vec;
|
||||
import net.minestom.server.entity.Entity;
|
||||
import net.minestom.server.entity.Metadata;
|
||||
import net.minestom.server.entity.metadata.EntityMeta;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class AbstractDisplayMeta extends EntityMeta {
|
||||
|
||||
public static final byte OFFSET = EntityMeta.MAX_OFFSET;
|
||||
public static final byte MAX_OFFSET = OFFSET + 14;
|
||||
|
||||
protected AbstractDisplayMeta(@NotNull Entity entity, @NotNull Metadata metadata) {
|
||||
super(entity, metadata);
|
||||
}
|
||||
|
||||
public long getInterpolationStartDelta() {
|
||||
return super.metadata.getIndex(OFFSET, 0);
|
||||
}
|
||||
|
||||
public void setInterpolationStartDelta(int value) {
|
||||
super.metadata.setIndex(OFFSET, Metadata.VarInt(value));
|
||||
}
|
||||
|
||||
public int getInterpolationDuration() {
|
||||
return super.metadata.getIndex(OFFSET + 1, 0);
|
||||
}
|
||||
|
||||
public void setInterpolationDuration(int value) {
|
||||
super.metadata.setIndex(OFFSET + 1, Metadata.VarInt(value));
|
||||
}
|
||||
|
||||
public @NotNull Point getTranslation() {
|
||||
return super.metadata.getIndex(OFFSET + 2, Vec.ZERO);
|
||||
}
|
||||
|
||||
public void setTranslation(@NotNull Point value) {
|
||||
super.metadata.setIndex(OFFSET + 2, Metadata.Vector3(value));
|
||||
}
|
||||
|
||||
public @NotNull Vec getScale() {
|
||||
return super.metadata.getIndex(OFFSET + 3, Vec.ONE);
|
||||
}
|
||||
|
||||
public void setScale(@NotNull Vec value) {
|
||||
super.metadata.setIndex(OFFSET + 3, Metadata.Vector3(value));
|
||||
}
|
||||
|
||||
public float @NotNull[] getLeftRotation() {
|
||||
//todo replace with actual quaternion type
|
||||
return super.metadata.getIndex(OFFSET + 4, new float[] {0, 0, 0, 1});
|
||||
}
|
||||
|
||||
public void setLeftRotation(float @NotNull[] value) {
|
||||
super.metadata.setIndex(OFFSET + 4, Metadata.Quaternion(value));
|
||||
}
|
||||
|
||||
public float @NotNull[] getRightRotation() {
|
||||
//todo replace with actual quaternion type
|
||||
return super.metadata.getIndex(OFFSET + 5, new float[] {0, 0, 0, 1});
|
||||
}
|
||||
|
||||
public void setRightRotation(float @NotNull[] value) {
|
||||
super.metadata.setIndex(OFFSET + 5, Metadata.Quaternion(value));
|
||||
}
|
||||
|
||||
public @NotNull BillboardConstraints getBillboardRenderConstraints() {
|
||||
return BillboardConstraints.VALUES[super.metadata.getIndex(OFFSET + 6, (byte) 0)];
|
||||
}
|
||||
|
||||
public void setBillboardRenderConstraints(@NotNull BillboardConstraints value) {
|
||||
super.metadata.setIndex(OFFSET + 6, Metadata.Byte((byte) value.ordinal()));
|
||||
}
|
||||
|
||||
public int getBrightnessOverride() {
|
||||
return super.metadata.getIndex(OFFSET + 7, -1);
|
||||
}
|
||||
|
||||
public void setBrightnessOverride(int value) {
|
||||
super.metadata.setIndex(OFFSET + 7, Metadata.VarInt(value));
|
||||
}
|
||||
|
||||
public float getViewRange() {
|
||||
return super.metadata.getIndex(OFFSET + 8, 1.0F);
|
||||
}
|
||||
|
||||
public void setViewRange(float value) {
|
||||
super.metadata.setIndex(OFFSET + 8, Metadata.Float(value));
|
||||
}
|
||||
|
||||
public float getShadowRadius() {
|
||||
return super.metadata.getIndex(OFFSET + 9, 0.0F);
|
||||
}
|
||||
|
||||
public void setShadowRadius(float value) {
|
||||
super.metadata.setIndex(OFFSET + 9, Metadata.Float(value));
|
||||
}
|
||||
|
||||
public float getShadowStrength() {
|
||||
return super.metadata.getIndex(OFFSET + 10, 1.0F);
|
||||
}
|
||||
|
||||
public void setShadowStrength(float value) {
|
||||
super.metadata.setIndex(OFFSET + 10, Metadata.Float(value));
|
||||
}
|
||||
|
||||
public float getWidth() {
|
||||
return super.metadata.getIndex(OFFSET + 11, 0.0F);
|
||||
}
|
||||
|
||||
public void setWidth(float value) {
|
||||
super.metadata.setIndex(OFFSET + 11, Metadata.Float(value));
|
||||
}
|
||||
|
||||
public float getHeight() {
|
||||
return super.metadata.getIndex(OFFSET + 12, 0.0F);
|
||||
}
|
||||
|
||||
public void setHeight(float value) {
|
||||
super.metadata.setIndex(OFFSET + 12, Metadata.Float(value));
|
||||
}
|
||||
|
||||
public int getGlowColorOverride() {
|
||||
return super.metadata.getIndex(OFFSET + 13, 0);
|
||||
}
|
||||
|
||||
public void setGlowColorOverride(int value) {
|
||||
super.metadata.setIndex(OFFSET + 13, Metadata.VarInt(value));
|
||||
}
|
||||
|
||||
public enum BillboardConstraints {
|
||||
FIXED,
|
||||
VERTICAL,
|
||||
HORIZONTAL,
|
||||
CENTER;
|
||||
|
||||
private final static BillboardConstraints[] VALUES = values();
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,23 @@
|
||||
package net.minestom.server.entity.metadata.display;
|
||||
|
||||
import net.minestom.server.entity.Entity;
|
||||
import net.minestom.server.entity.Metadata;
|
||||
import net.minestom.server.instance.block.Block;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class BlockDisplayMeta extends AbstractDisplayMeta {
|
||||
public static final byte OFFSET = AbstractDisplayMeta.MAX_OFFSET;
|
||||
public static final byte MAX_OFFSET = OFFSET + 1;
|
||||
|
||||
public BlockDisplayMeta(@NotNull Entity entity, @NotNull Metadata metadata) {
|
||||
super(entity, metadata);
|
||||
}
|
||||
|
||||
public int getBlockStateId() {
|
||||
return super.metadata.getIndex(OFFSET, Block.AIR.stateId());
|
||||
}
|
||||
|
||||
public void setBlockState(int value) {
|
||||
super.metadata.setIndex(OFFSET, Metadata.BlockState(value));
|
||||
}
|
||||
}
|
@ -0,0 +1,46 @@
|
||||
package net.minestom.server.entity.metadata.display;
|
||||
|
||||
import net.minestom.server.entity.Entity;
|
||||
import net.minestom.server.entity.Metadata;
|
||||
import net.minestom.server.item.ItemStack;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class ItemDisplayMeta extends AbstractDisplayMeta {
|
||||
public static final byte OFFSET = AbstractDisplayMeta.MAX_OFFSET;
|
||||
public static final byte MAX_OFFSET = OFFSET + 2;
|
||||
|
||||
public ItemDisplayMeta(@NotNull Entity entity, @NotNull Metadata metadata) {
|
||||
super(entity, metadata);
|
||||
}
|
||||
|
||||
public @NotNull ItemStack getItemStack() {
|
||||
return super.metadata.getIndex(OFFSET, ItemStack.AIR);
|
||||
}
|
||||
|
||||
public void setItemStack(@NotNull ItemStack value) {
|
||||
super.metadata.setIndex(OFFSET, Metadata.Slot(value));
|
||||
}
|
||||
|
||||
public @NotNull DisplayContext getDisplayContext() {
|
||||
return DisplayContext.VALUES[super.metadata.getIndex(OFFSET + 1, (byte) 0)];
|
||||
}
|
||||
|
||||
public void setDisplayContext(@NotNull DisplayContext value) {
|
||||
super.metadata.setIndex(OFFSET + 1, Metadata.Byte((byte) value.ordinal()));
|
||||
}
|
||||
|
||||
public enum DisplayContext {
|
||||
NONE,
|
||||
THIRD_PERSON_LEFT_HAND,
|
||||
THIRD_PERSON_RIGHT_HAND,
|
||||
FIRST_PERSON_LEFT_HAND,
|
||||
FIRST_PERSON_RIGHT_HAND,
|
||||
HEAD,
|
||||
GUI,
|
||||
GROUND,
|
||||
FIXED;
|
||||
|
||||
private final static DisplayContext[] VALUES = values();
|
||||
|
||||
}
|
||||
}
|
@ -0,0 +1,93 @@
|
||||
package net.minestom.server.entity.metadata.display;
|
||||
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.minestom.server.entity.Entity;
|
||||
import net.minestom.server.entity.Metadata;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class TextDisplayMeta extends AbstractDisplayMeta {
|
||||
public static final byte OFFSET = AbstractDisplayMeta.MAX_OFFSET;
|
||||
public static final byte MAX_OFFSET = OFFSET + 5;
|
||||
|
||||
private static final byte SHADOW = 1;
|
||||
private static final byte SEE_THROUGH = 2;
|
||||
private static final byte USE_DEFAULT_BACKGROUND = 4;
|
||||
private static final byte ALIGN_LEFT = 8;
|
||||
private static final byte ALIGN_RIGHT = 16;
|
||||
|
||||
public TextDisplayMeta(@NotNull Entity entity, @NotNull Metadata metadata) {
|
||||
super(entity, metadata);
|
||||
}
|
||||
|
||||
public @NotNull Component getText() {
|
||||
return super.metadata.getIndex(OFFSET, Component.empty());
|
||||
}
|
||||
|
||||
public void setText(@NotNull Component value) {
|
||||
super.metadata.setIndex(OFFSET, Metadata.Chat(value));
|
||||
}
|
||||
|
||||
public int getLineWidth() {
|
||||
return super.metadata.getIndex(OFFSET + 1, 200);
|
||||
}
|
||||
|
||||
public void setLineWidth(int value) {
|
||||
super.metadata.setIndex(OFFSET + 1, Metadata.VarInt(value));
|
||||
}
|
||||
|
||||
public int getBackgroundColor() {
|
||||
return super.metadata.getIndex(OFFSET + 2, 1073741824);
|
||||
}
|
||||
|
||||
public void setBackgroundColor(int value) {
|
||||
super.metadata.setIndex(OFFSET + 2, Metadata.VarInt(value));
|
||||
}
|
||||
|
||||
public int getTextOpacity() {
|
||||
return super.metadata.getIndex(OFFSET + 3, -1);
|
||||
}
|
||||
|
||||
public void setTextOpacity(int value) {
|
||||
super.metadata.setIndex(OFFSET + 3, Metadata.VarInt(value));
|
||||
}
|
||||
|
||||
public boolean isShadow() {
|
||||
return getMaskBit(OFFSET + 4, SHADOW);
|
||||
}
|
||||
|
||||
public void setShadow(boolean value) {
|
||||
setMaskBit(OFFSET + 4, SHADOW, value);
|
||||
}
|
||||
|
||||
public boolean isSeeThrough() {
|
||||
return getMaskBit(OFFSET + 4, SEE_THROUGH);
|
||||
}
|
||||
|
||||
public void setSeeThrough(boolean value) {
|
||||
setMaskBit(OFFSET + 4, SEE_THROUGH, value);
|
||||
}
|
||||
|
||||
public boolean isUseDefaultBackground() {
|
||||
return getMaskBit(OFFSET + 4, USE_DEFAULT_BACKGROUND);
|
||||
}
|
||||
|
||||
public void setUseDefaultBackground(boolean value) {
|
||||
setMaskBit(OFFSET + 4, USE_DEFAULT_BACKGROUND, value);
|
||||
}
|
||||
|
||||
public boolean isAlignLeft() {
|
||||
return getMaskBit(OFFSET + 4, ALIGN_LEFT);
|
||||
}
|
||||
|
||||
public void setAlignLeft(boolean value) {
|
||||
setMaskBit(OFFSET + 4, ALIGN_LEFT, value);
|
||||
}
|
||||
|
||||
public boolean isAlignRight() {
|
||||
return getMaskBit(OFFSET + 4, ALIGN_RIGHT);
|
||||
}
|
||||
|
||||
public void setAlignRight(boolean value) {
|
||||
setMaskBit(OFFSET + 4, ALIGN_RIGHT, value);
|
||||
}
|
||||
}
|
@ -18,7 +18,7 @@ public class EndermanMeta extends MonsterMeta {
|
||||
}
|
||||
|
||||
public void setCarriedBlockID(@Nullable Integer value) {
|
||||
super.metadata.setIndex(OFFSET, Metadata.OptBlockID(value));
|
||||
super.metadata.setIndex(OFFSET, Metadata.OptBlockState(value));
|
||||
}
|
||||
|
||||
public boolean isScreaming() {
|
||||
|
@ -0,0 +1,41 @@
|
||||
package net.minestom.server.entity.metadata.other;
|
||||
|
||||
import net.minestom.server.entity.Entity;
|
||||
import net.minestom.server.entity.Metadata;
|
||||
import net.minestom.server.entity.metadata.EntityMeta;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
public class InteractionMeta extends EntityMeta {
|
||||
|
||||
public static final byte OFFSET = EntityMeta.MAX_OFFSET;
|
||||
public static final byte MAX_OFFSET = OFFSET + 3;
|
||||
|
||||
public InteractionMeta(@Nullable Entity entity, @NotNull Metadata metadata) {
|
||||
super(entity, metadata);
|
||||
}
|
||||
|
||||
public float getWidth() {
|
||||
return super.metadata.getIndex(OFFSET, 0f);
|
||||
}
|
||||
|
||||
public void setWidth(float value) {
|
||||
super.metadata.setIndex(OFFSET, Metadata.Float(value));
|
||||
}
|
||||
|
||||
public float getHeight() {
|
||||
return super.metadata.getIndex(OFFSET + 1, 0f);
|
||||
}
|
||||
|
||||
public void setHeight(float value) {
|
||||
super.metadata.setIndex(OFFSET + 1, Metadata.Float(value));
|
||||
}
|
||||
|
||||
public boolean getResponse() {
|
||||
return super.metadata.getIndex(OFFSET + 2, false);
|
||||
}
|
||||
|
||||
public void setResponse(boolean response) {
|
||||
super.metadata.setIndex(OFFSET + 2, Metadata.Boolean(response));
|
||||
}
|
||||
}
|
@ -61,7 +61,7 @@ public class PlayerPositionListener {
|
||||
}
|
||||
if (playerMoveEvent.isCancelled()) {
|
||||
// Teleport to previous position
|
||||
player.sendPacket(new PlayerPositionAndLookPacket(currentPosition, (byte) 0x00, player.getNextTeleportId(), false));
|
||||
player.sendPacket(new PlayerPositionAndLookPacket(currentPosition, (byte) 0x00, player.getNextTeleportId()));
|
||||
return;
|
||||
}
|
||||
final Pos eventPosition = playerMoveEvent.getNewPosition();
|
||||
|
@ -12,6 +12,7 @@ import net.kyori.adventure.text.Component;
|
||||
import net.minestom.server.coordinate.Point;
|
||||
import net.minestom.server.entity.Entity;
|
||||
import net.minestom.server.entity.metadata.animal.FrogMeta;
|
||||
import net.minestom.server.entity.metadata.animal.SnifferMeta;
|
||||
import net.minestom.server.entity.metadata.animal.tameable.CatMeta;
|
||||
import net.minestom.server.item.ItemStack;
|
||||
import net.minestom.server.network.packet.server.play.data.DeathLocation;
|
||||
@ -61,13 +62,17 @@ public final class NetworkBuffer {
|
||||
public static final Type<Point> OPT_BLOCK_POSITION = NetworkBufferTypes.OPT_BLOCK_POSITION;
|
||||
public static final Type<Direction> DIRECTION = NetworkBufferTypes.DIRECTION;
|
||||
public static final Type<UUID> OPT_UUID = NetworkBufferTypes.OPT_UUID;
|
||||
public static final Type<Integer> OPT_BLOCK_ID = NetworkBufferTypes.OPT_BLOCK_ID;
|
||||
public static final Type<Integer> BLOCK_STATE = NetworkBufferTypes.BLOCK_STATE;
|
||||
public static final Type<Integer> OPT_BLOCK_STATE = NetworkBufferTypes.OPT_BLOCK_STATE;
|
||||
public static final Type<int[]> VILLAGER_DATA = NetworkBufferTypes.VILLAGER_DATA;
|
||||
public static final Type<Integer> OPT_VAR_INT = NetworkBufferTypes.OPT_VAR_INT;
|
||||
public static final Type<Entity.Pose> POSE = NetworkBufferTypes.POSE;
|
||||
public static final Type<DeathLocation> DEATH_LOCATION = NetworkBufferTypes.DEATH_LOCATION;
|
||||
public static final Type<CatMeta.Variant> CAT_VARIANT = NetworkBufferTypes.CAT_VARIANT;
|
||||
public static final Type<FrogMeta.Variant> FROG_VARIANT = NetworkBufferTypes.FROG_VARIANT;
|
||||
public static final Type<SnifferMeta.State> SNIFFER_STATE = NetworkBufferTypes.SNIFFER_STATE;
|
||||
public static final Type<Point> VECTOR3 = NetworkBufferTypes.VECTOR3;
|
||||
public static final Type<float[]> QUATERNION = NetworkBufferTypes.QUATERNION;
|
||||
|
||||
ByteBuffer nioBuffer;
|
||||
final boolean resizable;
|
||||
|
@ -6,6 +6,7 @@ import net.minestom.server.coordinate.Point;
|
||||
import net.minestom.server.coordinate.Vec;
|
||||
import net.minestom.server.entity.Entity;
|
||||
import net.minestom.server.entity.metadata.animal.FrogMeta;
|
||||
import net.minestom.server.entity.metadata.animal.SnifferMeta;
|
||||
import net.minestom.server.entity.metadata.animal.tameable.CatMeta;
|
||||
import net.minestom.server.item.ItemStack;
|
||||
import net.minestom.server.item.Material;
|
||||
@ -459,7 +460,13 @@ final class NetworkBufferTypes {
|
||||
if (!present) return null;
|
||||
return buffer.read(UUID);
|
||||
});
|
||||
static final TypeImpl<Integer> OPT_BLOCK_ID = new TypeImpl<>(Integer.class,
|
||||
static final TypeImpl<Integer> BLOCK_STATE = new TypeImpl<>(Integer.class,
|
||||
(buffer, value) -> {
|
||||
buffer.write(NetworkBuffer.VAR_INT, value);
|
||||
return -1;
|
||||
},
|
||||
buffer -> buffer.read(VAR_INT));
|
||||
static final TypeImpl<Integer> OPT_BLOCK_STATE = new TypeImpl<>(Integer.class,
|
||||
(buffer, value) -> {
|
||||
if (value == null) {
|
||||
buffer.write(NetworkBuffer.VAR_INT, 0);
|
||||
@ -543,6 +550,43 @@ final class NetworkBufferTypes {
|
||||
final int ordinal = buffer.read(VAR_INT);
|
||||
return FrogMeta.Variant.values()[ordinal];
|
||||
});
|
||||
static final TypeImpl<SnifferMeta.State> SNIFFER_STATE = new TypeImpl<>(SnifferMeta.State.class,
|
||||
(buffer, value) -> {
|
||||
buffer.write(VAR_INT, value.ordinal());
|
||||
return -1;
|
||||
},
|
||||
buffer -> {
|
||||
final int ordinal = buffer.read(VAR_INT);
|
||||
return SnifferMeta.State.values()[ordinal];
|
||||
});
|
||||
static final TypeImpl<Point> VECTOR3 = new TypeImpl<>(Point.class,
|
||||
(buffer, value) -> {
|
||||
buffer.write(FLOAT, (float) value.x());
|
||||
buffer.write(FLOAT, (float) value.y());
|
||||
buffer.write(FLOAT, (float) value.z());
|
||||
return -1;
|
||||
},
|
||||
buffer -> {
|
||||
final float x = buffer.read(FLOAT);
|
||||
final float y = buffer.read(FLOAT);
|
||||
final float z = buffer.read(FLOAT);
|
||||
return new Vec(x, y, z);
|
||||
});
|
||||
static final TypeImpl<float[]> QUATERNION = new TypeImpl<>(float[].class,
|
||||
(buffer, value) -> {
|
||||
buffer.write(FLOAT, value[0]);
|
||||
buffer.write(FLOAT, value[1]);
|
||||
buffer.write(FLOAT, value[2]);
|
||||
buffer.write(FLOAT, value[3]);
|
||||
return -1;
|
||||
},
|
||||
buffer -> {
|
||||
final float x = buffer.read(FLOAT);
|
||||
final float y = buffer.read(FLOAT);
|
||||
final float z = buffer.read(FLOAT);
|
||||
final float w = buffer.read(FLOAT);
|
||||
return new float[]{x, y, z, w};
|
||||
});
|
||||
|
||||
record TypeImpl<T>(@NotNull Class<T> type,
|
||||
@NotNull TypeWriter<T> writer,
|
||||
|
@ -51,58 +51,64 @@ public sealed class ClientPacketsHandler permits ClientPacketsHandler.Status, Cl
|
||||
}
|
||||
|
||||
public static final class Play extends ClientPacketsHandler {
|
||||
private static int nextId = 0;
|
||||
|
||||
private static int nextPlayId() {
|
||||
return nextId++;
|
||||
}
|
||||
|
||||
public Play() {
|
||||
register(0x00, ClientTeleportConfirmPacket::new);
|
||||
register(0x01, ClientQueryBlockNbtPacket::new);
|
||||
// 0x02 difficulty packet
|
||||
register(0x03, ClientChatAckPacket::new);
|
||||
register(0x04, ClientCommandChatPacket::new);
|
||||
register(0x05, ClientChatMessagePacket::new);
|
||||
register(0x06, ClientStatusPacket::new);
|
||||
register(0x07, ClientSettingsPacket::new);
|
||||
register(0x08, ClientTabCompletePacket::new);
|
||||
register(0x09, ClientClickWindowButtonPacket::new);
|
||||
register(0x0A, ClientClickWindowPacket::new);
|
||||
register(0x0B, ClientCloseWindowPacket::new);
|
||||
register(0x0C, ClientPluginMessagePacket::new);
|
||||
register(0x0D, ClientEditBookPacket::new);
|
||||
register(0x0E, ClientQueryEntityNbtPacket::new);
|
||||
register(0x0F, ClientInteractEntityPacket::new);
|
||||
register(0x10, ClientGenerateStructurePacket::new);
|
||||
register(0x11, ClientKeepAlivePacket::new);
|
||||
// 0x12 packet not used server-side
|
||||
register(0x13, ClientPlayerPositionPacket::new);
|
||||
register(0x14, ClientPlayerPositionAndRotationPacket::new);
|
||||
register(0x15, ClientPlayerRotationPacket::new);
|
||||
register(0x16, ClientPlayerPacket::new);
|
||||
register(0x17, ClientVehicleMovePacket::new);
|
||||
register(0x18, ClientSteerBoatPacket::new);
|
||||
register(0x19, ClientPickItemPacket::new);
|
||||
register(0x1A, ClientCraftRecipeRequest::new);
|
||||
register(0x1B, ClientPlayerAbilitiesPacket::new);
|
||||
register(0x1C, ClientPlayerDiggingPacket::new);
|
||||
register(0x1D, ClientEntityActionPacket::new);
|
||||
register(0x1E, ClientSteerVehiclePacket::new);
|
||||
register(0x1F, ClientPongPacket::new);
|
||||
register(0x20, ClientChatSessionUpdatePacket::new);
|
||||
register(0x21, ClientSetRecipeBookStatePacket::new);
|
||||
register(0x22, ClientSetDisplayedRecipePacket::new);
|
||||
register(0x23, ClientNameItemPacket::new);
|
||||
register(0x24, ClientResourcePackStatusPacket::new);
|
||||
register(0x25, ClientAdvancementTabPacket::new);
|
||||
register(0x26, ClientSelectTradePacket::new);
|
||||
register(0x27, ClientSetBeaconEffectPacket::new);
|
||||
register(0x28, ClientHeldItemChangePacket::new);
|
||||
register(0x29, ClientUpdateCommandBlockPacket::new);
|
||||
register(0x2A, ClientUpdateCommandBlockMinecartPacket::new);
|
||||
register(0x2B, ClientCreativeInventoryActionPacket::new);
|
||||
// 0x2B Update Jigsaw Block
|
||||
register(0x2D, ClientUpdateStructureBlockPacket::new);
|
||||
register(0x2E, ClientUpdateSignPacket::new);
|
||||
register(0x2F, ClientAnimationPacket::new);
|
||||
register(0x30, ClientSpectatePacket::new);
|
||||
register(0x31, ClientPlayerBlockPlacementPacket::new);
|
||||
register(0x32, ClientUseItemPacket::new);
|
||||
register(nextPlayId(), ClientTeleportConfirmPacket::new);
|
||||
register(nextPlayId(), ClientQueryBlockNbtPacket::new);
|
||||
nextPlayId(); // difficulty packet
|
||||
register(nextPlayId(), ClientChatAckPacket::new);
|
||||
register(nextPlayId(), ClientCommandChatPacket::new);
|
||||
register(nextPlayId(), ClientChatMessagePacket::new);
|
||||
register(nextPlayId(), ClientChatSessionUpdatePacket::new);
|
||||
register(nextPlayId(), ClientStatusPacket::new);
|
||||
register(nextPlayId(), ClientSettingsPacket::new);
|
||||
register(nextPlayId(), ClientTabCompletePacket::new);
|
||||
register(nextPlayId(), ClientClickWindowButtonPacket::new);
|
||||
register(nextPlayId(), ClientClickWindowPacket::new);
|
||||
register(nextPlayId(), ClientCloseWindowPacket::new);
|
||||
register(nextPlayId(), ClientPluginMessagePacket::new);
|
||||
register(nextPlayId(), ClientEditBookPacket::new);
|
||||
register(nextPlayId(), ClientQueryEntityNbtPacket::new);
|
||||
register(nextPlayId(), ClientInteractEntityPacket::new);
|
||||
register(nextPlayId(), ClientGenerateStructurePacket::new);
|
||||
register(nextPlayId(), ClientKeepAlivePacket::new);
|
||||
nextPlayId(); // lock difficulty
|
||||
register(nextPlayId(), ClientPlayerPositionPacket::new);
|
||||
register(nextPlayId(), ClientPlayerPositionAndRotationPacket::new);
|
||||
register(nextPlayId(), ClientPlayerRotationPacket::new);
|
||||
register(nextPlayId(), ClientPlayerPacket::new);
|
||||
register(nextPlayId(), ClientVehicleMovePacket::new);
|
||||
register(nextPlayId(), ClientSteerBoatPacket::new);
|
||||
register(nextPlayId(), ClientPickItemPacket::new);
|
||||
register(nextPlayId(), ClientCraftRecipeRequest::new);
|
||||
register(nextPlayId(), ClientPlayerAbilitiesPacket::new);
|
||||
register(nextPlayId(), ClientPlayerDiggingPacket::new);
|
||||
register(nextPlayId(), ClientEntityActionPacket::new);
|
||||
register(nextPlayId(), ClientSteerVehiclePacket::new);
|
||||
register(nextPlayId(), ClientPongPacket::new);
|
||||
register(nextPlayId(), ClientSetRecipeBookStatePacket::new);
|
||||
register(nextPlayId(), ClientSetDisplayedRecipePacket::new);
|
||||
register(nextPlayId(), ClientNameItemPacket::new);
|
||||
register(nextPlayId(), ClientResourcePackStatusPacket::new);
|
||||
register(nextPlayId(), ClientAdvancementTabPacket::new);
|
||||
register(nextPlayId(), ClientSelectTradePacket::new);
|
||||
register(nextPlayId(), ClientSetBeaconEffectPacket::new);
|
||||
register(nextPlayId(), ClientHeldItemChangePacket::new);
|
||||
register(nextPlayId(), ClientUpdateCommandBlockPacket::new);
|
||||
register(nextPlayId(), ClientUpdateCommandBlockMinecartPacket::new);
|
||||
register(nextPlayId(), ClientCreativeInventoryActionPacket::new);
|
||||
nextPlayId(); // Update Jigsaw Block
|
||||
register(nextPlayId(), ClientUpdateStructureBlockPacket::new);
|
||||
register(nextPlayId(), ClientUpdateSignPacket::new);
|
||||
register(nextPlayId(), ClientAnimationPacket::new);
|
||||
register(nextPlayId(), ClientSpectatePacket::new);
|
||||
register(nextPlayId(), ClientPlayerBlockPlacementPacket::new);
|
||||
register(nextPlayId(), ClientUseItemPacket::new);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -11,6 +11,7 @@ public final class ServerPacketIdentifier {
|
||||
public static final int LOGIN_SET_COMPRESSION = 0x03;
|
||||
public static final int LOGIN_PLUGIN_REQUEST = 0x04;
|
||||
|
||||
public static final int BUNDLE = nextPlayId();
|
||||
public static final int SPAWN_ENTITY = nextPlayId();
|
||||
public static final int SPAWN_EXPERIENCE_ORB = nextPlayId();
|
||||
public static final int SPAWN_PLAYER = nextPlayId();
|
||||
@ -23,6 +24,7 @@ public final class ServerPacketIdentifier {
|
||||
public static final int BLOCK_CHANGE = nextPlayId();
|
||||
public static final int BOSS_BAR = nextPlayId();
|
||||
public static final int SERVER_DIFFICULTY = nextPlayId();
|
||||
public static final int CHUNK_BIOMES = nextPlayId();
|
||||
public static final int CLEAR_TITLES = nextPlayId();
|
||||
public static final int TAB_COMPLETE = nextPlayId();
|
||||
public static final int DECLARE_COMMANDS = nextPlayId();
|
||||
@ -33,6 +35,7 @@ public final class ServerPacketIdentifier {
|
||||
public static final int SET_COOLDOWN = nextPlayId();
|
||||
public static final int CUSTOM_CHAT_COMPLETIONS = nextPlayId();
|
||||
public static final int PLUGIN_MESSAGE = nextPlayId();
|
||||
public static final int DAMAGE_EVENT = nextPlayId();
|
||||
public static final int DELETE_CHAT_MESSAGE = nextPlayId();
|
||||
public static final int DISCONNECT = nextPlayId();
|
||||
public static final int DISGUISED_CHAT = nextPlayId();
|
||||
@ -41,6 +44,7 @@ public final class ServerPacketIdentifier {
|
||||
public static final int UNLOAD_CHUNK = nextPlayId();
|
||||
public static final int CHANGE_GAME_STATE = nextPlayId();
|
||||
public static final int OPEN_HORSE_WINDOW = nextPlayId();
|
||||
public static final int HIT_ANIMATION = nextPlayId();
|
||||
public static final int INITIALIZE_WORLD_BORDER = nextPlayId();
|
||||
public static final int KEEP_ALIVE = nextPlayId();
|
||||
public static final int CHUNK_DATA = nextPlayId();
|
||||
|
@ -0,0 +1,42 @@
|
||||
package net.minestom.server.network.packet.server.play;
|
||||
|
||||
import net.minestom.server.coordinate.Vec;
|
||||
import net.minestom.server.network.NetworkBuffer;
|
||||
import net.minestom.server.network.packet.server.ServerPacket;
|
||||
import net.minestom.server.network.packet.server.ServerPacketIdentifier;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import static net.minestom.server.network.NetworkBuffer.*;
|
||||
|
||||
// Notes
|
||||
// sourceEntityId - 0 indicates no source entity, otherwise it is entityId + 1
|
||||
// sourceDirectId - 0 indicates no direct source. Direct attacks (e.g. melee) will have this number me the same as sourceEntityId, indirect attacks (e.g. projectiles) will have this be be the projectile entity id + 1
|
||||
public record DamageEventPacket(int targetEntityId, int damageTypeId, int sourceEntityId, int sourceDirectId, @Nullable Vec sourcePos) implements ServerPacket {
|
||||
|
||||
public DamageEventPacket(@NotNull NetworkBuffer reader) {
|
||||
this(reader.read(VAR_INT), reader.read(VAR_INT), reader.read(VAR_INT), reader.read(VAR_INT),
|
||||
reader.read(BOOLEAN) ? new Vec(reader.read(DOUBLE), reader.read(DOUBLE), reader.read(DOUBLE)) : null
|
||||
);
|
||||
}
|
||||
@Override
|
||||
public int getId() {
|
||||
return ServerPacketIdentifier.DAMAGE_EVENT;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void write(@NotNull NetworkBuffer writer) {
|
||||
writer.write(VAR_INT, targetEntityId);
|
||||
writer.write(VAR_INT, targetEntityId);
|
||||
writer.write(VAR_INT, targetEntityId);
|
||||
writer.write(VAR_INT, targetEntityId);
|
||||
if (sourcePos != null) {
|
||||
writer.write(BOOLEAN, true);
|
||||
writer.write(DOUBLE, sourcePos.x());
|
||||
writer.write(DOUBLE, sourcePos.y());
|
||||
writer.write(DOUBLE, sourcePos.z());
|
||||
} else {
|
||||
writer.write(BOOLEAN, false);
|
||||
}
|
||||
}
|
||||
}
|
@ -2,7 +2,6 @@ package net.minestom.server.network.packet.server.play;
|
||||
|
||||
import net.kyori.adventure.sound.Sound;
|
||||
import net.minestom.server.adventure.AdventurePacketConvertor;
|
||||
import net.minestom.server.coordinate.Point;
|
||||
import net.minestom.server.network.NetworkBuffer;
|
||||
import net.minestom.server.network.packet.server.ServerPacket;
|
||||
import net.minestom.server.network.packet.server.ServerPacketIdentifier;
|
||||
|
@ -0,0 +1,27 @@
|
||||
package net.minestom.server.network.packet.server.play;
|
||||
|
||||
import net.minestom.server.network.NetworkBuffer;
|
||||
import net.minestom.server.network.packet.server.ServerPacket;
|
||||
import net.minestom.server.network.packet.server.ServerPacketIdentifier;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import static net.minestom.server.network.NetworkBuffer.FLOAT;
|
||||
import static net.minestom.server.network.NetworkBuffer.VAR_INT;
|
||||
|
||||
public record HitAnimationPacket(int entityId, float yaw) implements ServerPacket {
|
||||
|
||||
public HitAnimationPacket(@NotNull NetworkBuffer reader) {
|
||||
this(reader.read(VAR_INT), reader.read(FLOAT));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void write(@NotNull NetworkBuffer writer) {
|
||||
writer.write(VAR_INT, entityId);
|
||||
writer.write(FLOAT, yaw);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getId() {
|
||||
return ServerPacketIdentifier.HIT_ANIMATION;
|
||||
}
|
||||
}
|
@ -8,11 +8,10 @@ import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import static net.minestom.server.network.NetworkBuffer.*;
|
||||
|
||||
public record PlayerPositionAndLookPacket(Pos position, byte flags, int teleportId,
|
||||
boolean dismountVehicle) implements ServerPacket {
|
||||
public record PlayerPositionAndLookPacket(Pos position, byte flags, int teleportId) implements ServerPacket {
|
||||
public PlayerPositionAndLookPacket(@NotNull NetworkBuffer reader) {
|
||||
this(new Pos(reader.read(DOUBLE), reader.read(DOUBLE), reader.read(DOUBLE), reader.read(FLOAT), reader.read(FLOAT)),
|
||||
reader.read(BYTE), reader.read(VAR_INT), reader.read(BOOLEAN));
|
||||
reader.read(BYTE), reader.read(VAR_INT));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -26,7 +25,6 @@ public record PlayerPositionAndLookPacket(Pos position, byte flags, int teleport
|
||||
|
||||
writer.write(BYTE, flags);
|
||||
writer.write(VAR_INT, teleportId);
|
||||
writer.write(BOOLEAN, dismountVehicle);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -9,17 +9,17 @@ import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import static net.minestom.server.network.NetworkBuffer.*;
|
||||
|
||||
public record ServerDataPacket(@Nullable Component motd, @Nullable String iconBase64,
|
||||
public record ServerDataPacket(@Nullable Component motd, byte @Nullable [] iconBase64,
|
||||
boolean enforcesSecureChat) implements ServerPacket {
|
||||
public ServerDataPacket(@NotNull NetworkBuffer reader) {
|
||||
this(reader.readOptional(COMPONENT), reader.readOptional(STRING),
|
||||
this(reader.read(COMPONENT), reader.readOptional(BYTE_ARRAY),
|
||||
reader.read(BOOLEAN));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void write(@NotNull NetworkBuffer writer) {
|
||||
writer.writeOptional(COMPONENT, this.motd);
|
||||
writer.writeOptional(STRING, this.iconBase64);
|
||||
writer.write(COMPONENT, this.motd);
|
||||
writer.writeOptional(BYTE_ARRAY, this.iconBase64);
|
||||
writer.write(BOOLEAN, enforcesSecureChat);
|
||||
}
|
||||
|
||||
|
@ -142,6 +142,7 @@ public final class Registry {
|
||||
POTION_EFFECTS("potion_effects.json"),
|
||||
POTION_TYPES("potions.json"),
|
||||
PARTICLES("particles.json"),
|
||||
DAMAGE_TYPES("damage_types.json"),
|
||||
|
||||
BLOCK_TAGS("tags/block_tags.json"),
|
||||
ENTITY_TYPE_TAGS("tags/entity_type_tags.json"),
|
||||
|
@ -72,6 +72,7 @@ public final class Biome {
|
||||
element.setFloat("scale", scale);
|
||||
element.setFloat("downfall", downfall);
|
||||
element.setString("category", category.name().toLowerCase(Locale.ROOT));
|
||||
element.setByte("has_precipitation", (byte) 1); //todo bad fix
|
||||
element.setString("precipitation", precipitation.name().toLowerCase(Locale.ROOT));
|
||||
if (temperatureModifier != TemperatureModifier.NONE)
|
||||
element.setString("temperature_modifier", temperatureModifier.name().toLowerCase(Locale.ROOT));
|
||||
|
@ -7,11 +7,15 @@ import java.util.concurrent.atomic.AtomicReference;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
|
||||
import static org.junit.jupiter.api.Assertions.assertThrows;
|
||||
import static org.junit.jupiter.api.Assumptions.assumeTrue;
|
||||
|
||||
public class ServerProcessTest {
|
||||
|
||||
@Test
|
||||
public void init() {
|
||||
// These like to fail on github actions
|
||||
assumeTrue(System.getenv("GITHUB_ACTIONS") == null);
|
||||
|
||||
AtomicReference<ServerProcess> process = new AtomicReference<>();
|
||||
assertDoesNotThrow(() -> process.set(MinecraftServer.updateProcess()));
|
||||
assertDoesNotThrow(() -> process.get().start(new InetSocketAddress("localhost", 25565)));
|
||||
@ -21,6 +25,9 @@ public class ServerProcessTest {
|
||||
|
||||
@Test
|
||||
public void tick() {
|
||||
// These like to fail on github actions
|
||||
assumeTrue(System.getenv("GITHUB_ACTIONS") == null);
|
||||
|
||||
var process = MinecraftServer.updateProcess();
|
||||
process.start(new InetSocketAddress("localhost", 25565));
|
||||
var ticker = process.ticker();
|
||||
|
Loading…
Reference in New Issue
Block a user