paper plugin that introduces the "Soulbound" enchantment

1.21.10

kokirigla.de d52f89e5 c6a038e0

verified
Changed files
+3 -228
gradle
plugin
run
world
datapacks
checkerboard
src
main
java
de
kokirigla
+1 -1
gradle/libs.versions.toml
··· 3 3 stylecheck = "0.2.1" 4 4 shadow = "8.3.0" 5 5 6 - paper = "1.21.4-R0.1-SNAPSHOT" 6 + paper = "1.21.10-R0.1-SNAPSHOT" 7 7 configurate = "4.2.0-SNAPSHOT" 8 8 9 9 [libraries]
+1 -1
license_header.txt
··· 1 1 Soulbinding 2 2 3 - Copyright (C) 2024 kokiriglade 3 + Copyright (C) 2024-2025 kokiriglade 4 4 5 5 This program is free software: you can redistribute it and/or modify 6 6 it under the terms of the GNU General Public License as published by
-25
plugin/run/world/datapacks/checkerboard/data/checkerboard/worldgen/biome/dark.json
··· 1 - { 2 - "carvers": [], 3 - "downfall": 0, 4 - "effects": { 5 - "fog_color": 12638463, 6 - "sky_color": 8103167, 7 - "water_color": 4159204, 8 - "water_fog_color": 329011 9 - }, 10 - "features": [ 11 - [ 12 - "checkerboard:under_floor" 13 - ], 14 - [ 15 - "checkerboard:dark_square" 16 - ], 17 - [ 18 - "checkerboard:over_floor" 19 - ] 20 - ], 21 - "has_precipitation": false, 22 - "spawn_costs": {}, 23 - "spawners": {}, 24 - "temperature": 0 25 - }
-25
plugin/run/world/datapacks/checkerboard/data/checkerboard/worldgen/biome/light.json
··· 1 - { 2 - "carvers": [], 3 - "downfall": 0, 4 - "effects": { 5 - "fog_color": 12638463, 6 - "sky_color": 8103167, 7 - "water_color": 4159204, 8 - "water_fog_color": 329011 9 - }, 10 - "features": [ 11 - [ 12 - "checkerboard:under_floor" 13 - ], 14 - [ 15 - "checkerboard:light_square" 16 - ], 17 - [ 18 - "checkerboard:over_floor" 19 - ] 20 - ], 21 - "has_precipitation": false, 22 - "spawn_costs": {}, 23 - "spawners": {}, 24 - "temperature": 0 25 - }
-9
plugin/run/world/datapacks/checkerboard/data/checkerboard/worldgen/configured_feature/dark_square.json
··· 1 - { 2 - "type": "minecraft:fill_layer", 3 - "config": { 4 - "state": { 5 - "Name": "minecraft:lime_concrete" 6 - }, 7 - "height": 62 8 - } 9 - }
-9
plugin/run/world/datapacks/checkerboard/data/checkerboard/worldgen/configured_feature/light_square.json
··· 1 - { 2 - "type": "minecraft:fill_layer", 3 - "config": { 4 - "state": { 5 - "Name": "minecraft:lime_concrete_powder" 6 - }, 7 - "height": 62 8 - } 9 - }
-9
plugin/run/world/datapacks/checkerboard/data/checkerboard/worldgen/configured_feature/over_floor.json
··· 1 - { 2 - "type": "minecraft:fill_layer", 3 - "config": { 4 - "state": { 5 - "Name": "minecraft:lime_stained_glass" 6 - }, 7 - "height": 63 8 - } 9 - }
-9
plugin/run/world/datapacks/checkerboard/data/checkerboard/worldgen/configured_feature/under_floor.json
··· 1 - { 2 - "type": "minecraft:fill_layer", 3 - "config": { 4 - "state": { 5 - "Name": "minecraft:black_concrete" 6 - }, 7 - "height": 61 8 - } 9 - }
-41
plugin/run/world/datapacks/checkerboard/data/checkerboard/worldgen/noise_settings/superflat.json
··· 1 - { 2 - "default_block": { 3 - "Name": "minecraft:stone" 4 - }, 5 - "default_fluid": { 6 - "Name": "minecraft:water" 7 - }, 8 - "sea_level": 0, 9 - "disable_mob_generation": false, 10 - "aquifers_enabled": false, 11 - "ore_veins_enabled": false, 12 - "legacy_random_source": false, 13 - "noise": { 14 - "min_y": 0, 15 - "height": 256, 16 - "size_horizontal": 1, 17 - "size_vertical": 1 18 - }, 19 - "noise_router": { 20 - "barrier": 0, 21 - "fluid_level_floodedness": 0, 22 - "fluid_level_spread": 0, 23 - "lava": 0, 24 - "vein_toggle": 0, 25 - "vein_ridged": 0, 26 - "vein_gap": 0, 27 - "temperature": 0, 28 - "vegetation": 0, 29 - "continents": 0, 30 - "erosion": 0, 31 - "depth": 0, 32 - "ridges": 0, 33 - "initial_density_without_jaggedness": 0, 34 - "final_density": 0 35 - }, 36 - "spawn_target": [], 37 - "surface_rule": { 38 - "type": "minecraft:sequence", 39 - "sequence": [] 40 - } 41 - }
-18
plugin/run/world/datapacks/checkerboard/data/checkerboard/worldgen/placed_feature/dark_square.json
··· 1 - { 2 - "feature": "checkerboard:dark_square", 3 - "placement": [ 4 - { 5 - "type": "minecraft:random_offset", 6 - "xz_spread": 8, 7 - "y_spread": 0 8 - }, 9 - { 10 - "type": "minecraft:biome" 11 - }, 12 - { 13 - "type": "minecraft:random_offset", 14 - "xz_spread": -8, 15 - "y_spread": 0 16 - } 17 - ] 18 - }
-18
plugin/run/world/datapacks/checkerboard/data/checkerboard/worldgen/placed_feature/light_square.json
··· 1 - { 2 - "feature": "checkerboard:light_square", 3 - "placement": [ 4 - { 5 - "type": "minecraft:random_offset", 6 - "xz_spread": 8, 7 - "y_spread": 0 8 - }, 9 - { 10 - "type": "minecraft:biome" 11 - }, 12 - { 13 - "type": "minecraft:random_offset", 14 - "xz_spread": -8, 15 - "y_spread": 0 16 - } 17 - ] 18 - }
-18
plugin/run/world/datapacks/checkerboard/data/checkerboard/worldgen/placed_feature/over_floor.json
··· 1 - { 2 - "feature": "checkerboard:over_floor", 3 - "placement": [ 4 - { 5 - "type": "minecraft:random_offset", 6 - "xz_spread": 8, 7 - "y_spread": 0 8 - }, 9 - { 10 - "type": "minecraft:biome" 11 - }, 12 - { 13 - "type": "minecraft:random_offset", 14 - "xz_spread": -8, 15 - "y_spread": 0 16 - } 17 - ] 18 - }
-18
plugin/run/world/datapacks/checkerboard/data/checkerboard/worldgen/placed_feature/under_floor.json
··· 1 - { 2 - "feature": "checkerboard:under_floor", 3 - "placement": [ 4 - { 5 - "type": "minecraft:random_offset", 6 - "xz_spread": 8, 7 - "y_spread": 0 8 - }, 9 - { 10 - "type": "minecraft:biome" 11 - }, 12 - { 13 - "type": "minecraft:random_offset", 14 - "xz_spread": -8, 15 - "y_spread": 0 16 - } 17 - ] 18 - }
-15
plugin/run/world/datapacks/checkerboard/data/minecraft/dimension/overworld.json
··· 1 - { 2 - "type": "minecraft:overworld", 3 - "generator": { 4 - "type": "minecraft:noise", 5 - "settings": "checkerboard:superflat", 6 - "biome_source": { 7 - "type": "minecraft:checkerboard", 8 - "scale": 0, 9 - "biomes": [ 10 - "checkerboard:light", 11 - "checkerboard:dark" 12 - ] 13 - } 14 - } 15 - }
-11
plugin/run/world/datapacks/checkerboard/pack.mcmeta
··· 1 - { 2 - "pack": { 3 - "description": [ 4 - { 5 - "text": "checkerboard world gen", 6 - "color": "gray" 7 - } 8 - ], 9 - "pack_format": 61 10 - } 11 - }
+1 -1
plugin/src/main/java/de/kokirigla/soulbinding/SoulbindingBootstrap.java
··· 55 55 this.config = ConfigHelper.loadConfig(MainConfig.class, context.getDataDirectory().resolve("config.conf")); 56 56 ConfigHelper.saveConfig(context.getDataDirectory().resolve("config.conf"), this.config); 57 57 58 - context.getLifecycleManager().registerEventHandler(RegistryEvents.ENCHANTMENT.freeze().newHandler(event -> { 58 + context.getLifecycleManager().registerEventHandler(RegistryEvents.ENCHANTMENT.compose().newHandler(event -> { 59 59 event.registry().register( 60 60 EnchantmentKeys.create(SOULBOUND_ENCHANTMENT), 61 61 b -> b.description(config.soulboundDescription())