diff --git a/README.md b/README.md index 393f319f..c43252ce 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ This is lightweight minecraft limbo server, written on Java with Netty. The main goal of the project is maximum simplicity with a minimum number of sent and processed packets. -This limbo is empty, there are no ability to set schematic building since +This limbo is empty, there are no ability to set schematic building since this is not necessary. You can send useful information in chat or BossBar. No plugins, no logs. The server is fully clear. It only able keep a lot of players while the main server is down. @@ -34,10 +34,7 @@ Symbol `X` means all minor versions. - [x] 1.16.X - [x] 1.17.X - [x] 1.18.X -- [x] 1.19 -- [x] 1.19.1 -- [x] 1.19.2 -- [x] 1.19.3 +- [x] 1.19.X The server **doesn't** support snapshots. @@ -57,7 +54,7 @@ The installation process is simple. 1. Download the latest version of program **[here](https://github.com/Nan1t/NanoLimbo/releases)** 2. Put jar file in the folder you want. 3. Create a start script as you did it for Bukkit or BungeeCord with command like this: -`java -jar NanoLimbo-.jar` + `java -jar NanoLimbo-.jar` 4. The server will create `settings.yml` file. It's a server configuration. 5. Configure it as you want and restart server. @@ -70,22 +67,24 @@ The server supports player info forwarding from the proxy. There are several typ * `BUNGEE_GUARD` - **BungeeGuard** forwarding type. If you use BungeeCord, or Velocity with `LEGACY` forwarding, just set this type in the config. -If you use Velocity with `MODERN` info forwarding, set this type and paste secret key from Velocity +If you use Velocity with `MODERN` info forwarding, set this type and paste secret key from Velocity config into `secret` field. -If you installed BungeeGuard on your proxy, then use `BUNGEE_GUARD` forwarding type. +If you installed BungeeGuard on your proxy, then use `BUNGEE_GUARD` forwarding type. Then add your tokens to `tokens` list. ### Contributing -You can create pull request, if you found some bug, optimization ability, or you want to add some functional, +You can create pull request, if you found some bug, optimization ability, or you want to add some functional, which is suitable for limbo server and won't significantly load the server. +All PR's should be targeted to the `dev` branch to keep the `main` stable and clear. + ### Building Required software: * JDK 1.8+ -* Gradle 7+ +* Gradle 7+ (optional) To build minimized .jar, go to project root and write in terminal: diff --git a/api/src/main/java/ua/nanit/limbo/protocol/packets/play/PacketJoinGame.java b/api/src/main/java/ua/nanit/limbo/protocol/packets/play/PacketJoinGame.java index b8465d29..27fa8dd6 100644 --- a/api/src/main/java/ua/nanit/limbo/protocol/packets/play/PacketJoinGame.java +++ b/api/src/main/java/ua/nanit/limbo/protocol/packets/play/PacketJoinGame.java @@ -207,7 +207,12 @@ public void encode(ByteMessage msg, Version version) { msg.writeByte(previousGameMode); msg.writeStringsArray(worldNames); if (version.moreOrEqual(Version.V1_19_1)) { - msg.writeCompoundTag(dimensionRegistry.getCodec_1_19_1()); + if (version.moreOrEqual(Version.V1_19_4)) { + msg.writeCompoundTag(dimensionRegistry.getCodec_1_19_4()); + } + else { + msg.writeCompoundTag(dimensionRegistry.getCodec_1_19_1()); + } } else { msg.writeCompoundTag(dimensionRegistry.getCodec_1_19()); diff --git a/api/src/main/java/ua/nanit/limbo/protocol/packets/play/PacketPlayerPositionAndLook.java b/api/src/main/java/ua/nanit/limbo/protocol/packets/play/PacketPlayerPositionAndLook.java index f907bc3d..15e48272 100644 --- a/api/src/main/java/ua/nanit/limbo/protocol/packets/play/PacketPlayerPositionAndLook.java +++ b/api/src/main/java/ua/nanit/limbo/protocol/packets/play/PacketPlayerPositionAndLook.java @@ -59,7 +59,7 @@ public void encode(ByteMessage msg, Version version) { msg.writeVarInt(teleportId); } - if (version.moreOrEqual(Version.V1_17)) { + if (version.fromTo(Version.V1_17, Version.V1_19_3)) { msg.writeBoolean(false); // Dismount vehicle } } diff --git a/api/src/main/java/ua/nanit/limbo/protocol/registry/State.java b/api/src/main/java/ua/nanit/limbo/protocol/registry/State.java index 49477d3e..86ecd07c 100644 --- a/api/src/main/java/ua/nanit/limbo/protocol/registry/State.java +++ b/api/src/main/java/ua/nanit/limbo/protocol/registry/State.java @@ -87,7 +87,8 @@ public enum State { map(0x0F, V1_17, V1_18_2), map(0x11, V1_19, V1_19), map(0x12, V1_19_1, V1_19_1), - map(0x11, V1_19_3, V1_19_3) + map(0x11, V1_19_3, V1_19_3), + map(0x12, V1_19_4, V1_19_4) ); clientBound.register(PacketDeclareCommands::new, @@ -97,7 +98,8 @@ public enum State { map(0x10, V1_16_2, V1_16_4), map(0x12, V1_17, V1_18_2), map(0x0F, V1_19, V1_19_1), - map(0x0E, V1_19_3, V1_19_3) + map(0x0E, V1_19_3, V1_19_3), + map(0x10, V1_19_4, V1_19_4) ); clientBound.register(PacketJoinGame::new, map(0x01, V1_7_2, V1_8), @@ -109,7 +111,8 @@ public enum State { map(0x26, V1_17, V1_18_2), map(0x23, V1_19, V1_19), map(0x25, V1_19_1, V1_19_1), - map(0x24, V1_19_3, V1_19_3) + map(0x24, V1_19_3, V1_19_3), + map(0x28, V1_19_4, V1_19_4) ); clientBound.register(PacketPluginMessage::new, map(0x19, V1_13, V1_13_2), @@ -120,7 +123,8 @@ public enum State { map(0x18, V1_17, V1_18_2), map(0x15, V1_19, V1_19), map(0x16, V1_19_1, V1_19_1), - map(0x15, V1_19_3, V1_19_3) + map(0x15, V1_19_3, V1_19_3), + map(0x17, V1_19_4, V1_19_4) ); clientBound.register(PacketPlayerAbilities::new, map(0x39, V1_7_2, V1_8), @@ -134,7 +138,8 @@ public enum State { map(0x32, V1_17, V1_18_2), map(0x2F, V1_19, V1_19), map(0x31, V1_19_1, V1_19_1), - map(0x30, V1_19_3, V1_19_3) + map(0x30, V1_19_3, V1_19_3), + map(0x34, V1_19_4, V1_19_4) ); clientBound.register(PacketPlayerPositionAndLook::new, map(0x08, V1_7_2, V1_8), @@ -148,7 +153,8 @@ public enum State { map(0x38, V1_17, V1_18_2), map(0x36, V1_19, V1_19), map(0x39, V1_19_1, V1_19_1), - map(0x38, V1_19_3, V1_19_3) + map(0x38, V1_19_3, V1_19_3), + map(0x3C, V1_19_4, V1_19_4) ); clientBound.register(PacketKeepAlive::new, map(0x00, V1_7_2, V1_8), @@ -161,7 +167,8 @@ public enum State { map(0x21, V1_17, V1_18_2), map(0x1E, V1_19, V1_19), map(0x20, V1_19_1, V1_19_1), - map(0x1F, V1_19_3, V1_19_3) + map(0x1F, V1_19_3, V1_19_3), + map(0x23, V1_19_4, V1_19_4) ); clientBound.register(PacketChatMessage::new, map(0x02, V1_7_2, V1_8), @@ -172,14 +179,16 @@ public enum State { map(0x0F, V1_17, V1_18_2), map(0x5F, V1_19, V1_19), map(0x62, V1_19_1, V1_19_1), - map(0x60, V1_19_3, V1_19_3) + map(0x60, V1_19_3, V1_19_3), + map(0x64, V1_19_4, V1_19_4) ); clientBound.register(PacketBossBar::new, map(0x0C, V1_9, V1_14_4), map(0x0D, V1_15, V1_15_2), map(0x0C, V1_16, V1_16_4), map(0x0D, V1_17, V1_18_2), - map(0x0A, V1_19, V1_19_3) + map(0x0A, V1_19, V1_19_3), + map(0x0B, V1_19_4, V1_19_4) ); clientBound.register(PacketPlayerInfo::new, map(0x38, V1_7_2, V1_8), @@ -193,7 +202,8 @@ public enum State { map(0x36, V1_17, V1_18_2), map(0x34, V1_19, V1_19), map(0x37, V1_19_1, V1_19_1), - map(0x36, V1_19_3, V1_19_3) + map(0x36, V1_19_3, V1_19_3), + map(0x3A, V1_19_4, V1_19_4) ); clientBound.register(PacketTitleLegacy::new, map(0x45, V1_8, V1_11_1), @@ -208,19 +218,22 @@ public enum State { map(0x59, V1_17, V1_17_1), map(0x5A, V1_18, V1_19), map(0x5D, V1_19_1, V1_19_1), - map(0x5B, V1_19_3, V1_19_3) + map(0x5B, V1_19_3, V1_19_3), + map(0x5F, V1_19_4, V1_19_4) ); clientBound.register(PacketTitleSetSubTitle::new, map(0x57, V1_17, V1_17_1), map(0x58, V1_18, V1_19), map(0x5B, V1_19_1, V1_19_1), - map(0x59, V1_19_3, V1_19_3) + map(0x59, V1_19_3, V1_19_3), + map(0x5D, V1_19_4, V1_19_4) ); clientBound.register(PacketTitleTimes::new, map(0x5A, V1_17, V1_17_1), map(0x5B, V1_18, V1_19), map(0x5E, V1_19_1, V1_19_1), - map(0x5C, V1_19_3, V1_19_3) + map(0x5C, V1_19_3, V1_19_3), + map(0x60, V1_19_4, V1_19_4) ); clientBound.register(PacketPlayerListHeader::new, map(0x47, V1_8, V1_8), @@ -236,10 +249,12 @@ public enum State { map(0x5F, V1_18, V1_18_2), map(0x60, V1_19, V1_19), map(0x63, V1_19_1, V1_19_1), - map(0x61, V1_19_3, V1_19_3) + map(0x61, V1_19_3, V1_19_3), + map(0x65, V1_19_4, V1_19_4) ); clientBound.register(PacketSpawnPosition::new, - map(0x4C, V1_19_3, V1_19_3) + map(0x4C, V1_19_3, V1_19_3), + map(0x50, V1_19_4, V1_19_4) ); } }; diff --git a/api/src/main/java/ua/nanit/limbo/protocol/registry/Version.java b/api/src/main/java/ua/nanit/limbo/protocol/registry/Version.java index 674b87f0..52b044ba 100644 --- a/api/src/main/java/ua/nanit/limbo/protocol/registry/Version.java +++ b/api/src/main/java/ua/nanit/limbo/protocol/registry/Version.java @@ -65,7 +65,9 @@ public enum Version { V1_18_2(758), V1_19(759), V1_19_1(760), - V1_19_3(761); + // 1.19.2 has same protocol number + V1_19_3(761), + V1_19_4(762); private static final Map VERSION_MAP; private static final Version MAX; diff --git a/api/src/main/java/ua/nanit/limbo/world/DimensionRegistry.java b/api/src/main/java/ua/nanit/limbo/world/DimensionRegistry.java index befc16d0..60abc1ec 100644 --- a/api/src/main/java/ua/nanit/limbo/world/DimensionRegistry.java +++ b/api/src/main/java/ua/nanit/limbo/world/DimensionRegistry.java @@ -41,6 +41,7 @@ public final class DimensionRegistry { private CompoundBinaryTag codec_1_18_2; private CompoundBinaryTag codec_1_19; private CompoundBinaryTag codec_1_19_1; + private CompoundBinaryTag codec_1_19_4; private CompoundBinaryTag oldCodec; public DimensionRegistry(ClassLoader classLoader) { @@ -63,6 +64,10 @@ public CompoundBinaryTag getCodec_1_19_1() { return codec_1_19_1; } + public CompoundBinaryTag getCodec_1_19_4() { + return codec_1_19_4; + } + public CompoundBinaryTag getOldCodec() { return oldCodec; } @@ -80,6 +85,7 @@ public void load(String def) throws IOException { codec_1_18_2 = readCodecFile("/dimension/codec_1_18_2.snbt"); codec_1_19 = readCodecFile("/dimension/codec_1_19.snbt"); codec_1_19_1 = readCodecFile("/dimension/codec_1_19_1.snbt"); + codec_1_19_4 = readCodecFile("/dimension/codec_1_19_4.snbt"); // On 1.16-1.16.1 different codec format oldCodec = readCodecFile("/dimension/codec_old.snbt"); diff --git a/api/src/main/resources/dimension/codec_1_19_4.snbt b/api/src/main/resources/dimension/codec_1_19_4.snbt new file mode 100644 index 00000000..a58bf3be --- /dev/null +++ b/api/src/main/resources/dimension/codec_1_19_4.snbt @@ -0,0 +1,2760 @@ +{ + "minecraft:chat_type": { + type: "minecraft:chat_type", + value: [ + { + name: "minecraft:chat", + id: 0, + element: { + chat: { + style: {}, + translation_key: "chat.type.text", + parameters: [ + "sender", + "content", + ] + }, + narration: { + style: {}, + translation_key: "chat.type.text.narrate", + parameters: [ + "sender", + "content", + ] + }, + }, + }, + { + name: "minecraft:system", + id: 1, + element: { + chat: { + style: {}, + translation_key: "chat.type.system", + parameters: [ + "sender", + "content", + ] + }, + narration: { + style: {}, + translation_key: "chat.type.system.narrate", + parameters: [ + "sender", + "content", + ] + }, + }, + }, + { + name: "minecraft:game_info", + id: 2, + element: { + overlay: {}, + chat: { + style: {}, + translation_key: "chat.type.game_info", + parameters: [ + "sender", + "content", + ] + }, + narration: { + style: {}, + translation_key: "chat.type.game_info.narrate", + parameters: [ + "sender", + "content", + ] + } + }, + }, + { + name: "minecraft:say_command", + id: 3, + element: { + chat: { + style: {}, + translation_key: "chat.type.announcement", + parameters: [ + "sender", + "content", + ] + }, + narration: { + style: {}, + translation_key: "chat.type.announcement.narrate", + parameters: [ + "sender", + "content", + ] + }, + }, + }, + { + name: "minecraft:msg_command", + id: 4, + element: { + chat: { + style: { + color: "gray", + italic: 1, + }, + translation_key: "commands.message.display.incoming", + parameters: [ + "sender", + "content", + ] + }, + narration: { + style: {}, + translation_key: "chat.type.text.narrate", + parameters: [ + "sender", + "content", + ] + }, + }, + }, + { + name: "minecraft:team_msg_command", + id: 5, + element: { + chat: { + style: {}, + translation_key: "chat.type.team.text", + parameters: [ + "sender", + "content", + ] + }, + narration: { + style: {}, + translation_key: "chat.type.text.narrate", + parameters: [ + "sender", + "content", + ] + }, + }, + }, + { + name: "minecraft:emote_command", + id: 6, + element: { + chat: { + style: {}, + translation_key: "chat.type.emote", + parameters: [ + "sender", + "content", + ] + }, + narration: { + style: {}, + translation_key: "chat.type.emote", + parameters: [ + "sender", + "content", + ] + }, + }, + }, + { + name: "minecraft:tellraw_command", + id: 7, + element: { + chat: { + style: {}, + translation_key: "chat.type.text", + parameters: [ + "sender", + "content", + ] + }, + narration: { + style: {}, + translation_key: "chat.type.text.narrate", + parameters: [ + "sender", + "content", + ] + }, + }, + }, + ] + }, + "minecraft:dimension_type": { + type: "minecraft:dimension_type", + value: [ + { + name: "minecraft:overworld", + id: 0, + element: { + piglin_safe: 0b, + natural: 1b, + ambient_light: 0.0f, + infiniburn: "#minecraft:infiniburn_overworld", + respawn_anchor_works: 0b, + has_skylight: 1b, + bed_works: 1b, + effects: "minecraft:overworld", + has_raids: 1b, + monster_spawn_light_level: 0, + monster_spawn_block_light_limit: 0, + min_y: 0, + height: 256, + logical_height: 256, + coordinate_scale: 1.0d, + ultrawarm: 0b, + has_ceiling: 0b + } + }, + { + name: "minecraft:overworld_caves", + id: 1, + element: { + piglin_safe: 0b, + natural: 1b, + ambient_light: 0.0f, + infiniburn: "#minecraft:infiniburn_overworld", + respawn_anchor_works: 0b, + has_skylight: 1b, + bed_works: 1b, + effects: "minecraft:overworld", + has_raids: 1b, + monster_spawn_light_level: 0, + monster_spawn_block_light_limit: 0, + min_y: 0, + height: 256, + logical_height: 256, + coordinate_scale: 1.0d, + ultrawarm: 0b, + has_ceiling: 1b + } + }, + { + name: "minecraft:the_nether", + id: 2, + element: { + piglin_safe: 1b, + natural: 0b, + ambient_light: 0.1f, + infiniburn: "#minecraft:infiniburn_nether", + respawn_anchor_works: 1b, + has_skylight: 0b, + bed_works: 0b, + effects: "minecraft:the_nether", + fixed_time: 18000L, + has_raids: 0b, + monster_spawn_light_level: 0, + monster_spawn_block_light_limit: 0, + min_y: 0, + height: 256, + logical_height: 128, + coordinate_scale: 8.0d, + ultrawarm: 1b, + has_ceiling: 1b + } + }, + { + name: "minecraft:the_end", + id: 3, + element: { + piglin_safe: 0b, + natural: 0b, + ambient_light: 0.0f, + infiniburn: "#minecraft:infiniburn_end", + respawn_anchor_works: 0b, + has_skylight: 0b, + bed_works: 0b, + effects: "minecraft:the_end", + fixed_time: 6000L, + has_raids: 1b, + monster_spawn_light_level: 0, + monster_spawn_block_light_limit: 0, + min_y: 0, + height: 256, + logical_height: 256, + coordinate_scale: 1.0d, + ultrawarm: 0b, + has_ceiling: 0b + } + } + ] + }, + "minecraft:damage_type": { + type: "minecraft:damage_type", + value: [ + { + name: "minecraft:arrow", + id: 0, + element: { + scaling: "when_caused_by_living_non_player", + exhaustion: 0.1f, + message_id: "arrow" + } + }, + { + name: "minecraft:bad_respawn_point", + id: 1, + element: { + scaling: "always", + exhaustion: 0.1f, + message_id: "badRespawnPoint", + death_message_type: "intentional_game_design" + } + }, + { + name: "minecraft:cactus", + id: 2, + element: { + scaling: "when_caused_by_living_non_player", + exhaustion: 0.1f, + message_id: "cactus" + } + }, + { + name: "minecraft:cramming", + id: 3, + element: { + scaling: "when_caused_by_living_non_player", + exhaustion: 0.0f, + message_id: "cramming" + } + }, + { + name: "minecraft:dragon_breath", + id: 4, + element: { + scaling: "when_caused_by_living_non_player", + exhaustion: 0.0f, + message_id: "dragonBreath" + } + }, + { + name: "minecraft:drown", + id: 5, + element: { + effects: "drowning", + scaling: "when_caused_by_living_non_player", + exhaustion: 0.0f, + message_id: "drown" + } + }, + { + name: "minecraft:dry_out", + id: 6, + element: { + scaling: "when_caused_by_living_non_player", + exhaustion: 0.1f, + message_id: "dryout" + } + }, + { + name: "minecraft:explosion", + id: 7, + element: { + scaling: "always", + exhaustion: 0.1f, + message_id: "explosion" + } + }, + { + name: "minecraft:fall", + id: 8, + element: { + scaling: "when_caused_by_living_non_player", + exhaustion: 0.0f, + message_id: "fall", + death_message_type: "fall_variants" + } + }, + { + name: "minecraft:falling_anvil", + id: 9, + element: { + scaling: "when_caused_by_living_non_player", + exhaustion: 0.1f, + message_id: "anvil" + } + }, + { + name: "minecraft:falling_block", + id: 10, + element: { + scaling: "when_caused_by_living_non_player", + exhaustion: 0.1f, + message_id: "fallingBlock" + } + }, + { + name: "minecraft:falling_stalactite", + id: 11, + element: { + scaling: "when_caused_by_living_non_player", + exhaustion: 0.1f, + message_id: "fallingStalactite" + } + }, + { + name: "minecraft:fireball", + id: 12, + element: { + effects: "burning", + scaling: "when_caused_by_living_non_player", + exhaustion: 0.1f, + message_id: "fireball" + } + }, + { + name: "minecraft:fireworks", + id: 13, + element: { + scaling: "when_caused_by_living_non_player", + exhaustion: 0.1f, + message_id: "fireworks" + } + }, + { + name: "minecraft:fly_into_wall", + id: 14, + element: { + scaling: "when_caused_by_living_non_player", + exhaustion: 0.0f, + message_id: "flyIntoWall" + } + }, + { + name: "minecraft:freeze", + id: 15, + element: { + effects: "freezing", + scaling: "when_caused_by_living_non_player", + exhaustion: 0.0f, + message_id: "freeze" + } + }, + { + name: "minecraft:generic", + id: 16, + element: { + scaling: "when_caused_by_living_non_player", + exhaustion: 0.0f, + message_id: "generic" + } + }, + { + name: "minecraft:hot_floor", + id: 17, + element: { + effects: "burning", + scaling: "when_caused_by_living_non_player", + exhaustion: 0.1f, + message_id: "hotFloor" + } + }, + { + name: "minecraft:in_fire", + id: 18, + element: { + effects: "burning", + scaling: "when_caused_by_living_non_player", + exhaustion: 0.1f, + message_id: "inFire" + } + }, + { + name: "minecraft:in_wall", + id: 19, + element: { + scaling: "when_caused_by_living_non_player", + exhaustion: 0.0f, + message_id: "inWall" + } + }, + { + name: "minecraft:indirect_magic", + id: 20, + element: { + scaling: "when_caused_by_living_non_player", + exhaustion: 0.0f, + message_id: "indirectMagic" + } + }, + { + name: "minecraft:lava", + id: 21, + element: { + effects: "burning", + scaling: "when_caused_by_living_non_player", + exhaustion: 0.1f, + message_id: "lava" + } + }, + { + name: "minecraft:lightning_bolt", + id: 22, + element: { + scaling: "when_caused_by_living_non_player", + exhaustion: 0.1f, + message_id: "lightningBolt" + } + }, + { + name: "minecraft:magic", + id: 23, + element: { + scaling: "when_caused_by_living_non_player", + exhaustion: 0.0f, + message_id: "magic" + } + }, + { + name: "minecraft:mob_attack", + id: 24, + element: { + scaling: "when_caused_by_living_non_player", + exhaustion: 0.1f, + message_id: "mob" + } + }, + { + name: "minecraft:mob_attack_no_aggro", + id: 25, + element: { + scaling: "when_caused_by_living_non_player", + exhaustion: 0.1f, + message_id: "mob" + } + }, + { + name: "minecraft:mob_projectile", + id: 26, + element: { + scaling: "when_caused_by_living_non_player", + exhaustion: 0.1f, + message_id: "mob" + } + }, + { + name: "minecraft:on_fire", + id: 27, + element: { + effects: "burning", + scaling: "when_caused_by_living_non_player", + exhaustion: 0.0f, + message_id: "onFire" + } + }, + { + name: "minecraft:out_of_world", + id: 28, + element: { + scaling: "when_caused_by_living_non_player", + exhaustion: 0.0f, + message_id: "outOfWorld" + } + }, + { + name: "minecraft:player_attack", + id: 29, + element: { + scaling: "when_caused_by_living_non_player", + exhaustion: 0.1f, + message_id: "player" + } + }, + { + name: "minecraft:player_explosion", + id: 30, + element: { + scaling: "always", + exhaustion: 0.1f, + message_id: "explosion.player" + } + }, + { + name: "minecraft:sonic_boom", + id: 31, + element: { + scaling: "always", + exhaustion: 0.0f, + message_id: "sonic_boom" + } + }, + { + name: "minecraft:stalagmite", + id: 32, + element: { + scaling: "when_caused_by_living_non_player", + exhaustion: 0.0f, + message_id: "stalagmite" + } + }, + { + name: "minecraft:starve", + id: 33, + element: { + scaling: "when_caused_by_living_non_player", + exhaustion: 0.0f, + message_id: "starve" + } + }, + { + name: "minecraft:sting", + id: 34, + element: { + scaling: "when_caused_by_living_non_player", + exhaustion: 0.1f, + message_id: "sting" + } + }, + { + name: "minecraft:sweet_berry_bush", + id: 35, + element: { + effects: "poking", + scaling: "when_caused_by_living_non_player", + exhaustion: 0.1f, + message_id: "sweetBerryBush" + } + }, + { + name: "minecraft:thorns", + id: 36, + element: { + effects: "thorns", + scaling: "when_caused_by_living_non_player", + exhaustion: 0.1f, + message_id: "thorns" + } + }, + { + name: "minecraft:thrown", + id: 37, + element: { + scaling: "when_caused_by_living_non_player", + exhaustion: 0.1f, + message_id: "thrown" + } + }, + { + name: "minecraft:trident", + id: 38, + element: { + scaling: "when_caused_by_living_non_player", + exhaustion: 0.1f, + message_id: "trident" + } + }, + { + name: "minecraft:unattributed_fireball", + id: 39, + element: { + effects: "burning", + scaling: "when_caused_by_living_non_player", + exhaustion: 0.1f, + message_id: "onFire" + } + }, + { + name: "minecraft:wither", + id: 40, + element: { + scaling: "when_caused_by_living_non_player", + exhaustion: 0.0f, + message_id: "wither" + } + }, + { + name: "minecraft:wither_skull", + id: 41, + element: { + scaling: "when_caused_by_living_non_player", + exhaustion: 0.1f, + message_id: "witherSkull" + } + } + ] + }, + "minecraft:worldgen/biome": { + type: "minecraft:worldgen/biome", + value: [ + { + name: "minecraft:ocean", + id: 0, + element: { + precipitation: "rain", + effects: { + sky_color: 8103167, + water_fog_color: 329011, + fog_color: 12638463, + water_color: 4159204, + mood_sound: { + tick_delay: 6000, + offset: 2.0d, + sound: "minecraft:ambient.cave", + block_search_extent: 8 + } + }, + depth: -1.0f, + temperature: 0.5f, + scale: 0.1f, + downfall: 0.5f, + category: "ocean", + has_precipitation: 0 + } + }, + { + name: "minecraft:plains", + id: 1, + element: { + precipitation: "rain", + effects: { + sky_color: 7907327, + water_fog_color: 329011, + fog_color: 12638463, + water_color: 4159204, + mood_sound: { + tick_delay: 6000, + offset: 2.0d, + sound: "minecraft:ambient.cave", + block_search_extent: 8 + } + }, + depth: 0.125f, + temperature: 0.8f, + scale: 0.05f, + downfall: 0.4f, + category: "plains", + has_precipitation: 0 + } + }, + { + name: "minecraft:desert", + id: 2, + element: { + precipitation: "none", + effects: { + sky_color: 7254527, + water_fog_color: 329011, + fog_color: 12638463, + water_color: 4159204, + mood_sound: { + tick_delay: 6000, + offset: 2.0d, + sound: "minecraft:ambient.cave", + block_search_extent: 8 + } + }, + depth: 0.125f, + temperature: 2.0f, + scale: 0.05f, + downfall: 0.0f, + category: "desert", + has_precipitation: 0 + } + }, + { + name: "minecraft:mountains", + id: 3, + element: { + precipitation: "rain", + effects: { + sky_color: 8233727, + water_fog_color: 329011, + fog_color: 12638463, + water_color: 4159204, + mood_sound: { + tick_delay: 6000, + offset: 2.0d, + sound: "minecraft:ambient.cave", + block_search_extent: 8 + } + }, + depth: 1.0f, + temperature: 0.2f, + scale: 0.5f, + downfall: 0.3f, + category: "extreme_hills", + has_precipitation: 0 + } + }, + { + name: "minecraft:forest", + id: 4, + element: { + precipitation: "rain", + effects: { + sky_color: 7972607, + water_fog_color: 329011, + fog_color: 12638463, + water_color: 4159204, + mood_sound: { + tick_delay: 6000, + offset: 2.0d, + sound: "minecraft:ambient.cave", + block_search_extent: 8 + } + }, + depth: 0.1f, + temperature: 0.7f, + scale: 0.2f, + downfall: 0.8f, + category: "forest", + has_precipitation: 0 + } + }, + { + name: "minecraft:taiga", + id: 5, + element: { + precipitation: "rain", + effects: { + sky_color: 8233983, + water_fog_color: 329011, + fog_color: 12638463, + water_color: 4159204, + mood_sound: { + tick_delay: 6000, + offset: 2.0d, + sound: "minecraft:ambient.cave", + block_search_extent: 8 + } + }, + depth: 0.2f, + temperature: 0.25f, + scale: 0.2f, + downfall: 0.8f, + category: "taiga", + has_precipitation: 0 + } + }, + { + name: "minecraft:swamp", + id: 6, + element: { + precipitation: "rain", + effects: { + grass_color_modifier: "swamp", + sky_color: 7907327, + foliage_color: 6975545, + water_fog_color: 2302743, + fog_color: 12638463, + water_color: 6388580, + mood_sound: { + tick_delay: 6000, + offset: 2.0d, + sound: "minecraft:ambient.cave", + block_search_extent: 8 + } + }, + depth: -0.2f, + temperature: 0.8f, + scale: 0.1f, + downfall: 0.9f, + category: "swamp", + has_precipitation: 0 + } + }, + { + name: "minecraft:river", + id: 7, + element: { + precipitation: "rain", + effects: { + sky_color: 8103167, + water_fog_color: 329011, + fog_color: 12638463, + water_color: 4159204, + mood_sound: { + tick_delay: 6000, + offset: 2.0d, + sound: "minecraft:ambient.cave", + block_search_extent: 8 + } + }, + depth: -0.5f, + temperature: 0.5f, + scale: 0.0f, + downfall: 0.5f, + category: "river", + has_precipitation: 0 + } + }, + { + name: "minecraft:nether_wastes", + id: 8, + element: { + precipitation: "none", + effects: { + music: { + replace_current_music: 0b, + max_delay: 24000, + sound: "minecraft:music.nether.nether_wastes", + min_delay: 12000 + }, + sky_color: 7254527, + ambient_sound: "minecraft:ambient.nether_wastes.loop", + additions_sound: { + sound: "minecraft:ambient.nether_wastes.additions", + tick_chance: 0.0111d + }, + water_fog_color: 329011, + fog_color: 3344392, + water_color: 4159204, + mood_sound: { + tick_delay: 6000, + offset: 2.0d, + sound: "minecraft:ambient.nether_wastes.mood", + block_search_extent: 8 + } + }, + depth: 0.1f, + temperature: 2.0f, + scale: 0.2f, + downfall: 0.0f, + category: "nether", + has_precipitation: 0 + } + }, + { + name: "minecraft:the_end", + id: 9, + element: { + precipitation: "none", + effects: { + sky_color: 0, + water_fog_color: 329011, + fog_color: 10518688, + water_color: 4159204, + mood_sound: { + tick_delay: 6000, + offset: 2.0d, + sound: "minecraft:ambient.cave", + block_search_extent: 8 + } + }, + depth: 0.1f, + temperature: 0.5f, + scale: 0.2f, + downfall: 0.5f, + category: "the_end", + has_precipitation: 0 + } + }, + { + name: "minecraft:frozen_ocean", + id: 10, + element: { + precipitation: "snow", + effects: { + sky_color: 8364543, + water_fog_color: 329011, + fog_color: 12638463, + water_color: 3750089, + mood_sound: { + tick_delay: 6000, + offset: 2.0d, + sound: "minecraft:ambient.cave", + block_search_extent: 8 + } + }, + depth: -1.0f, + temperature: 0.0f, + scale: 0.1f, + downfall: 0.5f, + category: "ocean", + temperature_modifier: "frozen", + has_precipitation: 0 + } + }, + { + name: "minecraft:frozen_river", + id: 11, + element: { + precipitation: "snow", + effects: { + sky_color: 8364543, + water_fog_color: 329011, + fog_color: 12638463, + water_color: 3750089, + mood_sound: { + tick_delay: 6000, + offset: 2.0d, + sound: "minecraft:ambient.cave", + block_search_extent: 8 + } + }, + depth: -0.5f, + temperature: 0.0f, + scale: 0.0f, + downfall: 0.5f, + category: "river", + has_precipitation: 0 + } + }, + { + name: "minecraft:snowy_tundra", + id: 12, + element: { + precipitation: "snow", + effects: { + sky_color: 8364543, + water_fog_color: 329011, + fog_color: 12638463, + water_color: 4159204, + mood_sound: { + tick_delay: 6000, + offset: 2.0d, + sound: "minecraft:ambient.cave", + block_search_extent: 8 + } + }, + depth: 0.125f, + temperature: 0.0f, + scale: 0.05f, + downfall: 0.5f, + category: "icy", + has_precipitation: 0 + } + }, + { + name: "minecraft:snowy_mountains", + id: 13, + element: { + precipitation: "snow", + effects: { + sky_color: 8364543, + water_fog_color: 329011, + fog_color: 12638463, + water_color: 4159204, + mood_sound: { + tick_delay: 6000, + offset: 2.0d, + sound: "minecraft:ambient.cave", + block_search_extent: 8 + } + }, + depth: 0.45f, + temperature: 0.0f, + scale: 0.3f, + downfall: 0.5f, + category: "icy", + has_precipitation: 0 + } + }, + { + name: "minecraft:mushroom_fields", + id: 14, + element: { + precipitation: "rain", + effects: { + sky_color: 7842047, + water_fog_color: 329011, + fog_color: 12638463, + water_color: 4159204, + mood_sound: { + tick_delay: 6000, + offset: 2.0d, + sound: "minecraft:ambient.cave", + block_search_extent: 8 + } + }, + depth: 0.2f, + temperature: 0.9f, + scale: 0.3f, + downfall: 1.0f, + category: "mushroom", + has_precipitation: 0 + } + }, + { + name: "minecraft:mushroom_field_shore", + id: 15, + element: { + precipitation: "rain", + effects: { + sky_color: 7842047, + water_fog_color: 329011, + fog_color: 12638463, + water_color: 4159204, + mood_sound: { + tick_delay: 6000, + offset: 2.0d, + sound: "minecraft:ambient.cave", + block_search_extent: 8 + } + }, + depth: 0.0f, + temperature: 0.9f, + scale: 0.025f, + downfall: 1.0f, + category: "mushroom", + has_precipitation: 0 + } + }, + { + name: "minecraft:beach", + id: 16, + element: { + precipitation: "rain", + effects: { + sky_color: 7907327, + water_fog_color: 329011, + fog_color: 12638463, + water_color: 4159204, + mood_sound: { + tick_delay: 6000, + offset: 2.0d, + sound: "minecraft:ambient.cave", + block_search_extent: 8 + } + }, + depth: 0.0f, + temperature: 0.8f, + scale: 0.025f, + downfall: 0.4f, + category: "beach", + has_precipitation: 0 + } + }, + { + name: "minecraft:desert_hills", + id: 17, + element: { + precipitation: "none", + effects: { + sky_color: 7254527, + water_fog_color: 329011, + fog_color: 12638463, + water_color: 4159204, + mood_sound: { + tick_delay: 6000, + offset: 2.0d, + sound: "minecraft:ambient.cave", + block_search_extent: 8 + } + }, + depth: 0.45f, + temperature: 2.0f, + scale: 0.3f, + downfall: 0.0f, + category: "desert", + has_precipitation: 0 + } + }, + { + name: "minecraft:wooded_hills", + id: 18, + element: { + precipitation: "rain", + effects: { + sky_color: 7972607, + water_fog_color: 329011, + fog_color: 12638463, + water_color: 4159204, + mood_sound: { + tick_delay: 6000, + offset: 2.0d, + sound: "minecraft:ambient.cave", + block_search_extent: 8 + } + }, + depth: 0.45f, + temperature: 0.7f, + scale: 0.3f, + downfall: 0.8f, + category: "forest", + has_precipitation: 0 + } + }, + { + name: "minecraft:taiga_hills", + id: 19, + element: { + precipitation: "rain", + effects: { + sky_color: 8233983, + water_fog_color: 329011, + fog_color: 12638463, + water_color: 4159204, + mood_sound: { + tick_delay: 6000, + offset: 2.0d, + sound: "minecraft:ambient.cave", + block_search_extent: 8 + } + }, + depth: 0.45f, + temperature: 0.25f, + scale: 0.3f, + downfall: 0.8f, + category: "taiga", + has_precipitation: 0 + } + }, + { + name: "minecraft:mountain_edge", + id: 20, + element: { + precipitation: "rain", + effects: { + sky_color: 8233727, + water_fog_color: 329011, + fog_color: 12638463, + water_color: 4159204, + mood_sound: { + tick_delay: 6000, + offset: 2.0d, + sound: "minecraft:ambient.cave", + block_search_extent: 8 + } + }, + depth: 0.8f, + temperature: 0.2f, + scale: 0.3f, + downfall: 0.3f, + category: "extreme_hills", + has_precipitation: 0 + } + }, + { + name: "minecraft:jungle", + id: 21, + element: { + precipitation: "rain", + effects: { + sky_color: 7842047, + water_fog_color: 329011, + fog_color: 12638463, + water_color: 4159204, + mood_sound: { + tick_delay: 6000, + offset: 2.0d, + sound: "minecraft:ambient.cave", + block_search_extent: 8 + } + }, + depth: 0.1f, + temperature: 0.95f, + scale: 0.2f, + downfall: 0.9f, + category: "jungle", + has_precipitation: 0 + } + }, + { + name: "minecraft:jungle_hills", + id: 22, + element: { + precipitation: "rain", + effects: { + sky_color: 7842047, + water_fog_color: 329011, + fog_color: 12638463, + water_color: 4159204, + mood_sound: { + tick_delay: 6000, + offset: 2.0d, + sound: "minecraft:ambient.cave", + block_search_extent: 8 + } + }, + depth: 0.45f, + temperature: 0.95f, + scale: 0.3f, + downfall: 0.9f, + category: "jungle", + has_precipitation: 0 + } + }, + { + name: "minecraft:jungle_edge", + id: 23, + element: { + precipitation: "rain", + effects: { + sky_color: 7842047, + water_fog_color: 329011, + fog_color: 12638463, + water_color: 4159204, + mood_sound: { + tick_delay: 6000, + offset: 2.0d, + sound: "minecraft:ambient.cave", + block_search_extent: 8 + } + }, + depth: 0.1f, + temperature: 0.95f, + scale: 0.2f, + downfall: 0.8f, + category: "jungle", + has_precipitation: 0 + } + }, + { + name: "minecraft:deep_ocean", + id: 24, + element: { + precipitation: "rain", + effects: { + sky_color: 8103167, + water_fog_color: 329011, + fog_color: 12638463, + water_color: 4159204, + mood_sound: { + tick_delay: 6000, + offset: 2.0d, + sound: "minecraft:ambient.cave", + block_search_extent: 8 + } + }, + depth: -1.8f, + temperature: 0.5f, + scale: 0.1f, + downfall: 0.5f, + category: "ocean", + has_precipitation: 0 + } + }, + { + name: "minecraft:stone_shore", + id: 25, + element: { + precipitation: "rain", + effects: { + sky_color: 8233727, + water_fog_color: 329011, + fog_color: 12638463, + water_color: 4159204, + mood_sound: { + tick_delay: 6000, + offset: 2.0d, + sound: "minecraft:ambient.cave", + block_search_extent: 8 + } + }, + depth: 0.1f, + temperature: 0.2f, + scale: 0.8f, + downfall: 0.3f, + category: "none", + has_precipitation: 0 + } + }, + { + name: "minecraft:snowy_beach", + id: 26, + element: { + precipitation: "snow", + effects: { + sky_color: 8364543, + water_fog_color: 329011, + fog_color: 12638463, + water_color: 4020182, + mood_sound: { + tick_delay: 6000, + offset: 2.0d, + sound: "minecraft:ambient.cave", + block_search_extent: 8 + } + }, + depth: 0.0f, + temperature: 0.05f, + scale: 0.025f, + downfall: 0.3f, + category: "beach", + has_precipitation: 0 + } + }, + { + name: "minecraft:birch_forest", + id: 27, + element: { + precipitation: "rain", + effects: { + sky_color: 8037887, + water_fog_color: 329011, + fog_color: 12638463, + water_color: 4159204, + mood_sound: { + tick_delay: 6000, + offset: 2.0d, + sound: "minecraft:ambient.cave", + block_search_extent: 8 + } + }, + depth: 0.1f, + temperature: 0.6f, + scale: 0.2f, + downfall: 0.6f, + category: "forest", + has_precipitation: 0 + } + }, + { + name: "minecraft:birch_forest_hills", + id: 28, + element: { + precipitation: "rain", + effects: { + sky_color: 8037887, + water_fog_color: 329011, + fog_color: 12638463, + water_color: 4159204, + mood_sound: { + tick_delay: 6000, + offset: 2.0d, + sound: "minecraft:ambient.cave", + block_search_extent: 8 + } + }, + depth: 0.45f, + temperature: 0.6f, + scale: 0.3f, + downfall: 0.6f, + category: "forest", + has_precipitation: 0 + } + }, + { + name: "minecraft:dark_forest", + id: 29, + element: { + precipitation: "rain", + effects: { + grass_color_modifier: "dark_forest", + sky_color: 7972607, + water_fog_color: 329011, + fog_color: 12638463, + water_color: 4159204, + mood_sound: { + tick_delay: 6000, + offset: 2.0d, + sound: "minecraft:ambient.cave", + block_search_extent: 8 + } + }, + depth: 0.1f, + temperature: 0.7f, + scale: 0.2f, + downfall: 0.8f, + category: "forest", + has_precipitation: 0 + } + }, + { + name: "minecraft:snowy_taiga", + id: 30, + element: { + precipitation: "snow", + effects: { + sky_color: 8625919, + water_fog_color: 329011, + fog_color: 12638463, + water_color: 4020182, + mood_sound: { + tick_delay: 6000, + offset: 2.0d, + sound: "minecraft:ambient.cave", + block_search_extent: 8 + } + }, + depth: 0.2f, + temperature: -0.5f, + scale: 0.2f, + downfall: 0.4f, + category: "taiga", + has_precipitation: 0 + } + }, + { + name: "minecraft:snowy_taiga_hills", + id: 31, + element: { + precipitation: "snow", + effects: { + sky_color: 8625919, + water_fog_color: 329011, + fog_color: 12638463, + water_color: 4020182, + mood_sound: { + tick_delay: 6000, + offset: 2.0d, + sound: "minecraft:ambient.cave", + block_search_extent: 8 + } + }, + depth: 0.45f, + temperature: -0.5f, + scale: 0.3f, + downfall: 0.4f, + category: "taiga", + has_precipitation: 0 + } + }, + { + name: "minecraft:giant_tree_taiga", + id: 32, + element: { + precipitation: "rain", + effects: { + sky_color: 8168447, + water_fog_color: 329011, + fog_color: 12638463, + water_color: 4159204, + mood_sound: { + tick_delay: 6000, + offset: 2.0d, + sound: "minecraft:ambient.cave", + block_search_extent: 8 + } + }, + depth: 0.2f, + temperature: 0.3f, + scale: 0.2f, + downfall: 0.8f, + category: "taiga", + has_precipitation: 0 + } + }, + { + name: "minecraft:giant_tree_taiga_hills", + id: 33, + element: { + precipitation: "rain", + effects: { + sky_color: 8168447, + water_fog_color: 329011, + fog_color: 12638463, + water_color: 4159204, + mood_sound: { + tick_delay: 6000, + offset: 2.0d, + sound: "minecraft:ambient.cave", + block_search_extent: 8 + } + }, + depth: 0.45f, + temperature: 0.3f, + scale: 0.3f, + downfall: 0.8f, + category: "taiga", + has_precipitation: 0 + } + }, + { + name: "minecraft:wooded_mountains", + id: 34, + element: { + precipitation: "rain", + effects: { + sky_color: 8233727, + water_fog_color: 329011, + fog_color: 12638463, + water_color: 4159204, + mood_sound: { + tick_delay: 6000, + offset: 2.0d, + sound: "minecraft:ambient.cave", + block_search_extent: 8 + } + }, + depth: 1.0f, + temperature: 0.2f, + scale: 0.5f, + downfall: 0.3f, + category: "extreme_hills", + has_precipitation: 0 + } + }, + { + name: "minecraft:savanna", + id: 35, + element: { + precipitation: "none", + effects: { + sky_color: 7711487, + water_fog_color: 329011, + fog_color: 12638463, + water_color: 4159204, + mood_sound: { + tick_delay: 6000, + offset: 2.0d, + sound: "minecraft:ambient.cave", + block_search_extent: 8 + } + }, + depth: 0.125f, + temperature: 1.2f, + scale: 0.05f, + downfall: 0.0f, + category: "savanna", + has_precipitation: 0 + } + }, + { + name: "minecraft:savanna_plateau", + id: 36, + element: { + precipitation: "none", + effects: { + sky_color: 7776511, + water_fog_color: 329011, + fog_color: 12638463, + water_color: 4159204, + mood_sound: { + tick_delay: 6000, + offset: 2.0d, + sound: "minecraft:ambient.cave", + block_search_extent: 8 + } + }, + depth: 1.5f, + temperature: 1.0f, + scale: 0.025f, + downfall: 0.0f, + category: "savanna", + has_precipitation: 0 + } + }, + { + name: "minecraft:badlands", + id: 37, + element: { + precipitation: "none", + effects: { + sky_color: 7254527, + grass_color: 9470285, + foliage_color: 10387789, + water_fog_color: 329011, + fog_color: 12638463, + water_color: 4159204, + mood_sound: { + tick_delay: 6000, + offset: 2.0d, + sound: "minecraft:ambient.cave", + block_search_extent: 8 + } + }, + depth: 0.1f, + temperature: 2.0f, + scale: 0.2f, + downfall: 0.0f, + category: "mesa", + has_precipitation: 0 + } + }, + { + name: "minecraft:wooded_badlands_plateau", + id: 38, + element: { + precipitation: "none", + effects: { + sky_color: 7254527, + grass_color: 9470285, + foliage_color: 10387789, + water_fog_color: 329011, + fog_color: 12638463, + water_color: 4159204, + mood_sound: { + tick_delay: 6000, + offset: 2.0d, + sound: "minecraft:ambient.cave", + block_search_extent: 8 + } + }, + depth: 1.5f, + temperature: 2.0f, + scale: 0.025f, + downfall: 0.0f, + category: "mesa", + has_precipitation: 0 + } + }, + { + name: "minecraft:badlands_plateau", + id: 39, + element: { + precipitation: "none", + effects: { + sky_color: 7254527, + grass_color: 9470285, + foliage_color: 10387789, + water_fog_color: 329011, + fog_color: 12638463, + water_color: 4159204, + mood_sound: { + tick_delay: 6000, + offset: 2.0d, + sound: "minecraft:ambient.cave", + block_search_extent: 8 + } + }, + depth: 1.5f, + temperature: 2.0f, + scale: 0.025f, + downfall: 0.0f, + category: "mesa", + has_precipitation: 0 + } + }, + { + name: "minecraft:small_end_islands", + id: 40, + element: { + precipitation: "none", + effects: { + sky_color: 0, + water_fog_color: 329011, + fog_color: 10518688, + water_color: 4159204, + mood_sound: { + tick_delay: 6000, + offset: 2.0d, + sound: "minecraft:ambient.cave", + block_search_extent: 8 + } + }, + depth: 0.1f, + temperature: 0.5f, + scale: 0.2f, + downfall: 0.5f, + category: "the_end", + has_precipitation: 0 + } + }, + { + name: "minecraft:end_midlands", + id: 41, + element: { + precipitation: "none", + effects: { + sky_color: 0, + water_fog_color: 329011, + fog_color: 10518688, + water_color: 4159204, + mood_sound: { + tick_delay: 6000, + offset: 2.0d, + sound: "minecraft:ambient.cave", + block_search_extent: 8 + } + }, + depth: 0.1f, + temperature: 0.5f, + scale: 0.2f, + downfall: 0.5f, + category: "the_end", + has_precipitation: 0 + } + }, + { + name: "minecraft:end_highlands", + id: 42, + element: { + precipitation: "none", + effects: { + sky_color: 0, + water_fog_color: 329011, + fog_color: 10518688, + water_color: 4159204, + mood_sound: { + tick_delay: 6000, + offset: 2.0d, + sound: "minecraft:ambient.cave", + block_search_extent: 8 + } + }, + depth: 0.1f, + temperature: 0.5f, + scale: 0.2f, + downfall: 0.5f, + category: "the_end", + has_precipitation: 0 + } + }, + { + name: "minecraft:end_barrens", + id: 43, + element: { + precipitation: "none", + effects: { + sky_color: 0, + water_fog_color: 329011, + fog_color: 10518688, + water_color: 4159204, + mood_sound: { + tick_delay: 6000, + offset: 2.0d, + sound: "minecraft:ambient.cave", + block_search_extent: 8 + } + }, + depth: 0.1f, + temperature: 0.5f, + scale: 0.2f, + downfall: 0.5f, + category: "the_end", + has_precipitation: 0 + } + }, + { + name: "minecraft:warm_ocean", + id: 44, + element: { + precipitation: "rain", + effects: { + sky_color: 8103167, + water_fog_color: 270131, + fog_color: 12638463, + water_color: 4445678, + mood_sound: { + tick_delay: 6000, + offset: 2.0d, + sound: "minecraft:ambient.cave", + block_search_extent: 8 + } + }, + depth: -1.0f, + temperature: 0.5f, + scale: 0.1f, + downfall: 0.5f, + category: "ocean", + has_precipitation: 0 + } + }, + { + name: "minecraft:lukewarm_ocean", + id: 45, + element: { + precipitation: "rain", + effects: { + sky_color: 8103167, + water_fog_color: 267827, + fog_color: 12638463, + water_color: 4566514, + mood_sound: { + tick_delay: 6000, + offset: 2.0d, + sound: "minecraft:ambient.cave", + block_search_extent: 8 + } + }, + depth: -1.0f, + temperature: 0.5f, + scale: 0.1f, + downfall: 0.5f, + category: "ocean", + has_precipitation: 0 + } + }, + { + name: "minecraft:cold_ocean", + id: 46, + element: { + precipitation: "rain", + effects: { + sky_color: 8103167, + water_fog_color: 329011, + fog_color: 12638463, + water_color: 4020182, + mood_sound: { + tick_delay: 6000, + offset: 2.0d, + sound: "minecraft:ambient.cave", + block_search_extent: 8 + } + }, + depth: -1.0f, + temperature: 0.5f, + scale: 0.1f, + downfall: 0.5f, + category: "ocean", + has_precipitation: 0 + } + }, + { + name: "minecraft:deep_warm_ocean", + id: 47, + element: { + precipitation: "rain", + effects: { + sky_color: 8103167, + water_fog_color: 270131, + fog_color: 12638463, + water_color: 4445678, + mood_sound: { + tick_delay: 6000, + offset: 2.0d, + sound: "minecraft:ambient.cave", + block_search_extent: 8 + } + }, + depth: -1.8f, + temperature: 0.5f, + scale: 0.1f, + downfall: 0.5f, + category: "ocean", + has_precipitation: 0 + } + }, + { + name: "minecraft:deep_lukewarm_ocean", + id: 48, + element: { + precipitation: "rain", + effects: { + sky_color: 8103167, + water_fog_color: 267827, + fog_color: 12638463, + water_color: 4566514, + mood_sound: { + tick_delay: 6000, + offset: 2.0d, + sound: "minecraft:ambient.cave", + block_search_extent: 8 + } + }, + depth: -1.8f, + temperature: 0.5f, + scale: 0.1f, + downfall: 0.5f, + category: "ocean", + has_precipitation: 0 + } + }, + { + name: "minecraft:deep_cold_ocean", + id: 49, + element: { + precipitation: "rain", + effects: { + sky_color: 8103167, + water_fog_color: 329011, + fog_color: 12638463, + water_color: 4020182, + mood_sound: { + tick_delay: 6000, + offset: 2.0d, + sound: "minecraft:ambient.cave", + block_search_extent: 8 + } + }, + depth: -1.8f, + temperature: 0.5f, + scale: 0.1f, + downfall: 0.5f, + category: "ocean", + has_precipitation: 0 + } + }, + { + name: "minecraft:deep_frozen_ocean", + id: 50, + element: { + precipitation: "rain", + effects: { + sky_color: 8103167, + water_fog_color: 329011, + fog_color: 12638463, + water_color: 3750089, + mood_sound: { + tick_delay: 6000, + offset: 2.0d, + sound: "minecraft:ambient.cave", + block_search_extent: 8 + } + }, + depth: -1.8f, + temperature: 0.5f, + scale: 0.1f, + downfall: 0.5f, + category: "ocean", + temperature_modifier: "frozen", + has_precipitation: 0 + } + }, + { + name: "minecraft:the_void", + id: 127, + element: { + precipitation: "none", + effects: { + sky_color: 8103167, + water_fog_color: 329011, + fog_color: 12638463, + water_color: 4159204, + mood_sound: { + tick_delay: 6000, + offset: 2.0d, + sound: "minecraft:ambient.cave", + block_search_extent: 8 + } + }, + depth: 0.1f, + temperature: 0.5f, + scale: 0.2f, + downfall: 0.5f, + category: "none", + has_precipitation: 0 + } + }, + { + name: "minecraft:sunflower_plains", + id: 129, + element: { + precipitation: "rain", + effects: { + sky_color: 7907327, + water_fog_color: 329011, + fog_color: 12638463, + water_color: 4159204, + mood_sound: { + tick_delay: 6000, + offset: 2.0d, + sound: "minecraft:ambient.cave", + block_search_extent: 8 + } + }, + depth: 0.125f, + temperature: 0.8f, + scale: 0.05f, + downfall: 0.4f, + category: "plains", + has_precipitation: 0 + } + }, + { + name: "minecraft:desert_lakes", + id: 130, + element: { + precipitation: "none", + effects: { + sky_color: 7254527, + water_fog_color: 329011, + fog_color: 12638463, + water_color: 4159204, + mood_sound: { + tick_delay: 6000, + offset: 2.0d, + sound: "minecraft:ambient.cave", + block_search_extent: 8 + } + }, + depth: 0.225f, + temperature: 2.0f, + scale: 0.25f, + downfall: 0.0f, + category: "desert", + has_precipitation: 0 + } + }, + { + name: "minecraft:gravelly_mountains", + id: 131, + element: { + precipitation: "rain", + effects: { + sky_color: 8233727, + water_fog_color: 329011, + fog_color: 12638463, + water_color: 4159204, + mood_sound: { + tick_delay: 6000, + offset: 2.0d, + sound: "minecraft:ambient.cave", + block_search_extent: 8 + } + }, + depth: 1.0f, + temperature: 0.2f, + scale: 0.5f, + downfall: 0.3f, + category: "extreme_hills", + has_precipitation: 0 + } + }, + { + name: "minecraft:flower_forest", + id: 132, + element: { + precipitation: "rain", + effects: { + sky_color: 7972607, + water_fog_color: 329011, + fog_color: 12638463, + water_color: 4159204, + mood_sound: { + tick_delay: 6000, + offset: 2.0d, + sound: "minecraft:ambient.cave", + block_search_extent: 8 + } + }, + depth: 0.1f, + temperature: 0.7f, + scale: 0.4f, + downfall: 0.8f, + category: "forest", + has_precipitation: 0 + } + }, + { + name: "minecraft:taiga_mountains", + id: 133, + element: { + precipitation: "rain", + effects: { + sky_color: 8233983, + water_fog_color: 329011, + fog_color: 12638463, + water_color: 4159204, + mood_sound: { + tick_delay: 6000, + offset: 2.0d, + sound: "minecraft:ambient.cave", + block_search_extent: 8 + } + }, + depth: 0.3f, + temperature: 0.25f, + scale: 0.4f, + downfall: 0.8f, + category: "taiga", + has_precipitation: 0 + } + }, + { + name: "minecraft:swamp_hills", + id: 134, + element: { + precipitation: "rain", + effects: { + grass_color_modifier: "swamp", + sky_color: 7907327, + foliage_color: 6975545, + water_fog_color: 2302743, + fog_color: 12638463, + water_color: 6388580, + mood_sound: { + tick_delay: 6000, + offset: 2.0d, + sound: "minecraft:ambient.cave", + block_search_extent: 8 + } + }, + depth: -0.1f, + temperature: 0.8f, + scale: 0.3f, + downfall: 0.9f, + category: "swamp", + has_precipitation: 0 + } + }, + { + name: "minecraft:ice_spikes", + id: 140, + element: { + precipitation: "snow", + effects: { + sky_color: 8364543, + water_fog_color: 329011, + fog_color: 12638463, + water_color: 4159204, + mood_sound: { + tick_delay: 6000, + offset: 2.0d, + sound: "minecraft:ambient.cave", + block_search_extent: 8 + } + }, + depth: 0.425f, + temperature: 0.0f, + scale: 0.45000002f, + downfall: 0.5f, + category: "icy", + has_precipitation: 0 + } + }, + { + name: "minecraft:modified_jungle", + id: 149, + element: { + precipitation: "rain", + effects: { + sky_color: 7842047, + water_fog_color: 329011, + fog_color: 12638463, + water_color: 4159204, + mood_sound: { + tick_delay: 6000, + offset: 2.0d, + sound: "minecraft:ambient.cave", + block_search_extent: 8 + } + }, + depth: 0.2f, + temperature: 0.95f, + scale: 0.4f, + downfall: 0.9f, + category: "jungle", + has_precipitation: 0 + } + }, + { + name: "minecraft:modified_jungle_edge", + id: 151, + element: { + precipitation: "rain", + effects: { + sky_color: 7842047, + water_fog_color: 329011, + fog_color: 12638463, + water_color: 4159204, + mood_sound: { + tick_delay: 6000, + offset: 2.0d, + sound: "minecraft:ambient.cave", + block_search_extent: 8 + } + }, + depth: 0.2f, + temperature: 0.95f, + scale: 0.4f, + downfall: 0.8f, + category: "jungle", + has_precipitation: 0 + } + }, + { + name: "minecraft:tall_birch_forest", + id: 155, + element: { + precipitation: "rain", + effects: { + sky_color: 8037887, + water_fog_color: 329011, + fog_color: 12638463, + water_color: 4159204, + mood_sound: { + tick_delay: 6000, + offset: 2.0d, + sound: "minecraft:ambient.cave", + block_search_extent: 8 + } + }, + depth: 0.2f, + temperature: 0.6f, + scale: 0.4f, + downfall: 0.6f, + category: "forest", + has_precipitation: 0 + } + }, + { + name: "minecraft:tall_birch_hills", + id: 156, + element: { + precipitation: "rain", + effects: { + sky_color: 8037887, + water_fog_color: 329011, + fog_color: 12638463, + water_color: 4159204, + mood_sound: { + tick_delay: 6000, + offset: 2.0d, + sound: "minecraft:ambient.cave", + block_search_extent: 8 + } + }, + depth: 0.55f, + temperature: 0.6f, + scale: 0.5f, + downfall: 0.6f, + category: "forest", + has_precipitation: 0 + } + }, + { + name: "minecraft:dark_forest_hills", + id: 157, + element: { + precipitation: "rain", + effects: { + grass_color_modifier: "dark_forest", + sky_color: 7972607, + water_fog_color: 329011, + fog_color: 12638463, + water_color: 4159204, + mood_sound: { + tick_delay: 6000, + offset: 2.0d, + sound: "minecraft:ambient.cave", + block_search_extent: 8 + } + }, + depth: 0.2f, + temperature: 0.7f, + scale: 0.4f, + downfall: 0.8f, + category: "forest", + has_precipitation: 0 + } + }, + { + name: "minecraft:snowy_taiga_mountains", + id: 158, + element: { + precipitation: "snow", + effects: { + sky_color: 8625919, + water_fog_color: 329011, + fog_color: 12638463, + water_color: 4020182, + mood_sound: { + tick_delay: 6000, + offset: 2.0d, + sound: "minecraft:ambient.cave", + block_search_extent: 8 + } + }, + depth: 0.3f, + temperature: -0.5f, + scale: 0.4f, + downfall: 0.4f, + category: "taiga", + has_precipitation: 0 + } + }, + { + name: "minecraft:giant_spruce_taiga", + id: 160, + element: { + precipitation: "rain", + effects: { + sky_color: 8233983, + water_fog_color: 329011, + fog_color: 12638463, + water_color: 4159204, + mood_sound: { + tick_delay: 6000, + offset: 2.0d, + sound: "minecraft:ambient.cave", + block_search_extent: 8 + } + }, + depth: 0.2f, + temperature: 0.25f, + scale: 0.2f, + downfall: 0.8f, + category: "taiga", + has_precipitation: 0 + } + }, + { + name: "minecraft:giant_spruce_taiga_hills", + id: 161, + element: { + precipitation: "rain", + effects: { + sky_color: 8233983, + water_fog_color: 329011, + fog_color: 12638463, + water_color: 4159204, + mood_sound: { + tick_delay: 6000, + offset: 2.0d, + sound: "minecraft:ambient.cave", + block_search_extent: 8 + } + }, + depth: 0.2f, + temperature: 0.25f, + scale: 0.2f, + downfall: 0.8f, + category: "taiga", + has_precipitation: 0 + } + }, + { + name: "minecraft:modified_gravelly_mountains", + id: 162, + element: { + precipitation: "rain", + effects: { + sky_color: 8233727, + water_fog_color: 329011, + fog_color: 12638463, + water_color: 4159204, + mood_sound: { + tick_delay: 6000, + offset: 2.0d, + sound: "minecraft:ambient.cave", + block_search_extent: 8 + } + }, + depth: 1.0f, + temperature: 0.2f, + scale: 0.5f, + downfall: 0.3f, + category: "extreme_hills", + has_precipitation: 0 + } + }, + { + name: "minecraft:shattered_savanna", + id: 163, + element: { + precipitation: "none", + effects: { + sky_color: 7776767, + water_fog_color: 329011, + fog_color: 12638463, + water_color: 4159204, + mood_sound: { + tick_delay: 6000, + offset: 2.0d, + sound: "minecraft:ambient.cave", + block_search_extent: 8 + } + }, + depth: 0.3625f, + temperature: 1.1f, + scale: 1.225f, + downfall: 0.0f, + category: "savanna", + has_precipitation: 0 + } + }, + { + name: "minecraft:shattered_savanna_plateau", + id: 164, + element: { + precipitation: "none", + effects: { + sky_color: 7776511, + water_fog_color: 329011, + fog_color: 12638463, + water_color: 4159204, + mood_sound: { + tick_delay: 6000, + offset: 2.0d, + sound: "minecraft:ambient.cave", + block_search_extent: 8 + } + }, + depth: 1.05f, + temperature: 1.0f, + scale: 1.2125001f, + downfall: 0.0f, + category: "savanna", + has_precipitation: 0 + } + }, + { + name: "minecraft:eroded_badlands", + id: 165, + element: { + precipitation: "none", + effects: { + sky_color: 7254527, + grass_color: 9470285, + foliage_color: 10387789, + water_fog_color: 329011, + fog_color: 12638463, + water_color: 4159204, + mood_sound: { + tick_delay: 6000, + offset: 2.0d, + sound: "minecraft:ambient.cave", + block_search_extent: 8 + } + }, + depth: 0.1f, + temperature: 2.0f, + scale: 0.2f, + downfall: 0.0f, + category: "mesa", + has_precipitation: 0 + } + }, + { + name: "minecraft:modified_wooded_badlands_plateau", + id: 166, + element: { + precipitation: "none", + effects: { + sky_color: 7254527, + grass_color: 9470285, + foliage_color: 10387789, + water_fog_color: 329011, + fog_color: 12638463, + water_color: 4159204, + mood_sound: { + tick_delay: 6000, + offset: 2.0d, + sound: "minecraft:ambient.cave", + block_search_extent: 8 + } + }, + depth: 0.45f, + temperature: 2.0f, + scale: 0.3f, + downfall: 0.0f, + category: "mesa", + has_precipitation: 0 + } + }, + { + name: "minecraft:modified_badlands_plateau", + id: 167, + element: { + precipitation: "none", + effects: { + sky_color: 7254527, + grass_color: 9470285, + foliage_color: 10387789, + water_fog_color: 329011, + fog_color: 12638463, + water_color: 4159204, + mood_sound: { + tick_delay: 6000, + offset: 2.0d, + sound: "minecraft:ambient.cave", + block_search_extent: 8 + } + }, + depth: 0.45f, + temperature: 2.0f, + scale: 0.3f, + downfall: 0.0f, + category: "mesa", + has_precipitation: 0 + } + }, + { + name: "minecraft:bamboo_jungle", + id: 168, + element: { + precipitation: "rain", + effects: { + sky_color: 7842047, + water_fog_color: 329011, + fog_color: 12638463, + water_color: 4159204, + mood_sound: { + tick_delay: 6000, + offset: 2.0d, + sound: "minecraft:ambient.cave", + block_search_extent: 8 + } + }, + depth: 0.1f, + temperature: 0.95f, + scale: 0.2f, + downfall: 0.9f, + category: "jungle", + has_precipitation: 0 + } + }, + { + name: "minecraft:bamboo_jungle_hills", + id: 169, + element: { + precipitation: "rain", + effects: { + sky_color: 7842047, + water_fog_color: 329011, + fog_color: 12638463, + water_color: 4159204, + mood_sound: { + tick_delay: 6000, + offset: 2.0d, + sound: "minecraft:ambient.cave", + block_search_extent: 8 + } + }, + depth: 0.45f, + temperature: 0.95f, + scale: 0.3f, + downfall: 0.9f, + category: "jungle", + has_precipitation: 0 + } + }, + { + name: "minecraft:soul_sand_valley", + id: 170, + element: { + precipitation: "none", + effects: { + music: { + replace_current_music: 0b, + max_delay: 24000, + sound: "minecraft:music.nether.soul_sand_valley", + min_delay: 12000 + }, + sky_color: 7254527, + ambient_sound: "minecraft:ambient.soul_sand_valley.loop", + additions_sound: { + sound: "minecraft:ambient.soul_sand_valley.additions", + tick_chance: 0.0111d + }, + particle: { + probability: 0.00625f, + options: { + type: "minecraft:ash" + } + }, + water_fog_color: 329011, + fog_color: 1787717, + water_color: 4159204, + mood_sound: { + tick_delay: 6000, + offset: 2.0d, + sound: "minecraft:ambient.soul_sand_valley.mood", + block_search_extent: 8 + } + }, + depth: 0.1f, + temperature: 2.0f, + scale: 0.2f, + downfall: 0.0f, + category: "nether", + has_precipitation: 0 + } + }, + { + name: "minecraft:crimson_forest", + id: 171, + element: { + precipitation: "none", + effects: { + music: { + replace_current_music: 0b, + max_delay: 24000, + sound: "minecraft:music.nether.crimson_forest", + min_delay: 12000 + }, + sky_color: 7254527, + ambient_sound: "minecraft:ambient.crimson_forest.loop", + additions_sound: { + sound: "minecraft:ambient.crimson_forest.additions", + tick_chance: 0.0111d + }, + particle: { + probability: 0.025f, + options: { + type: "minecraft:crimson_spore" + } + }, + water_fog_color: 329011, + fog_color: 3343107, + water_color: 4159204, + mood_sound: { + tick_delay: 6000, + offset: 2.0d, + sound: "minecraft:ambient.crimson_forest.mood", + block_search_extent: 8 + } + }, + depth: 0.1f, + temperature: 2.0f, + scale: 0.2f, + downfall: 0.0f, + category: "nether", + has_precipitation: 0 + } + }, + { + name: "minecraft:warped_forest", + id: 172, + element: { + precipitation: "none", + effects: { + music: { + replace_current_music: 0b, + max_delay: 24000, + sound: "minecraft:music.nether.warped_forest", + min_delay: 12000 + }, + sky_color: 7254527, + ambient_sound: "minecraft:ambient.warped_forest.loop", + additions_sound: { + sound: "minecraft:ambient.warped_forest.additions", + tick_chance: 0.0111d + }, + particle: { + probability: 0.01428f, + options: { + type: "minecraft:warped_spore" + } + }, + water_fog_color: 329011, + fog_color: 1705242, + water_color: 4159204, + mood_sound: { + tick_delay: 6000, + offset: 2.0d, + sound: "minecraft:ambient.warped_forest.mood", + block_search_extent: 8 + } + }, + depth: 0.1f, + temperature: 2.0f, + scale: 0.2f, + downfall: 0.0f, + category: "nether", + has_precipitation: 0 + } + }, + { + name: "minecraft:basalt_deltas", + id: 173, + element: { + precipitation: "none", + effects: { + music: { + replace_current_music: 0b, + max_delay: 24000, + sound: "minecraft:music.nether.basalt_deltas", + min_delay: 12000 + }, + sky_color: 7254527, + ambient_sound: "minecraft:ambient.basalt_deltas.loop", + additions_sound: { + sound: "minecraft:ambient.basalt_deltas.additions", + tick_chance: 0.0111d + }, + particle: { + probability: 0.118093334f, + options: { + type: "minecraft:white_ash" + } + }, + water_fog_color: 4341314, + fog_color: 6840176, + water_color: 4159204, + mood_sound: { + tick_delay: 6000, + offset: 2.0d, + sound: "minecraft:ambient.basalt_deltas.mood", + block_search_extent: 8 + } + }, + depth: 0.1f, + temperature: 2.0f, + scale: 0.2f, + downfall: 0.0f, + category: "nether", + has_precipitation: 0 + } + } + ] + } +} diff --git a/build.gradle b/build.gradle index cc34d154..50e0ef3b 100644 --- a/build.gradle +++ b/build.gradle @@ -1,40 +1,44 @@ plugins { - id 'com.github.johnrengelman.shadow' version '7.0.0' + id 'java' + id 'com.github.johnrengelman.shadow' version '7.1.2' } -allprojects { - group 'ru.nanit' - version '1.4.1' +group 'ru.nanit' +version '1.5.1' + +compileJava { + options.encoding = "UTF-8" } -subprojects { - apply plugin: 'java' - apply plugin: 'com.github.johnrengelman.shadow' +tasks.withType(JavaCompile) { + sourceCompatibility = JavaVersion.VERSION_1_8 + targetCompatibility = JavaVersion.VERSION_1_8 +} - compileJava { - options.encoding = "UTF-8" - } +repositories { + mavenCentral() +} - tasks.withType(JavaCompile) { - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 - } +dependencies { + testImplementation 'org.junit.jupiter:junit-jupiter-api:5.9.1' + testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.9.1' - repositories { - mavenCentral() - } + implementation 'org.spongepowered:configurate-yaml:4.1.2' + implementation 'io.netty:netty-all:4.1.85.Final' + implementation 'net.kyori:adventure-nbt:4.12.0' + implementation 'com.grack:nanojson:1.7' +} - dependencies { - testImplementation 'org.junit.jupiter:junit-jupiter-api:5.7.0' - testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.7.0' - } +shadowJar { + from 'LICENSE' - shadowJar { - from 'LICENSE' - minimize() + manifest { + attributes('Main-Class': 'ua.nanit.limbo.NanoLimbo') } - test { - useJUnitPlatform() - } -} \ No newline at end of file + minimize() +} + +test { + useJUnitPlatform() +}