├── .github
└── FUNDING.yml
├── .gitignore
├── LICENSE
├── README.md
├── abstract
├── pom.xml
└── src
│ └── main
│ └── java
│ └── de
│ └── derfrzocker
│ └── custom
│ └── ore
│ └── generator
│ └── impl
│ ├── blockselector
│ └── AbstractBlockSelector.java
│ ├── customdata
│ ├── AbstractAutoCustomData.java
│ ├── AbstractBlockStateCustomData.java
│ ├── AbstractCustomData.java
│ ├── AbstractNBTTagCustomData.java
│ ├── AbstractSkullTextureCustomData.java
│ ├── AbstractVariantCustomData.java
│ └── FileReadAbleCustomData.java
│ └── oregenerator
│ ├── AbstractMinableGenerator.java
│ ├── AbstractOreGenerator.java
│ └── AbstractSingleOreGenerator.java
├── api
├── pom.xml
└── src
│ └── main
│ └── java
│ └── de
│ └── derfrzocker
│ └── custom
│ └── ore
│ └── generator
│ └── api
│ ├── BiomeConfig.java
│ ├── BlockSelector.java
│ ├── ChunkAccess.java
│ ├── ChunkInfo.java
│ ├── CustomOreGeneratorService.java
│ ├── Info.java
│ ├── InfoAble.java
│ ├── OreConfig.java
│ ├── OreGenerator.java
│ ├── OreSetting.java
│ ├── OreSettingContainer.java
│ ├── OreSettingsAble.java
│ ├── WorldConfig.java
│ ├── WorldHandler.java
│ ├── customdata
│ ├── CustomData.java
│ ├── CustomDataApplier.java
│ ├── CustomDataType.java
│ └── LimitedValuesCustomData.java
│ └── dao
│ ├── OreConfigDao.java
│ └── WorldConfigDao.java
├── custom-ore-generator
├── pom.xml
└── src
│ └── main
│ ├── java
│ └── de
│ │ └── derfrzocker
│ │ └── custom
│ │ └── ore
│ │ └── generator
│ │ ├── CustomOreGenerator.java
│ │ ├── CustomOreGeneratorMessages.java
│ │ ├── CustomOreGeneratorMetrics.java
│ │ ├── Permissions.java
│ │ ├── command
│ │ ├── CreateCommand.java
│ │ ├── HelpConfigImpl.java
│ │ ├── InfoCommand.java
│ │ ├── OreGenCommand.java
│ │ ├── ReloadCommand.java
│ │ ├── add
│ │ │ ├── AddCommand.java
│ │ │ └── AddOreConfigCommand.java
│ │ └── set
│ │ │ ├── SetBiomeCommand.java
│ │ │ ├── SetCommand.java
│ │ │ ├── SetCustomDataCommand.java
│ │ │ ├── SetPositionCommand.java
│ │ │ ├── SetReplaceMaterialCommand.java
│ │ │ ├── SetSelectMaterialCommand.java
│ │ │ └── value
│ │ │ ├── SetValueBlockSelectorCommand.java
│ │ │ ├── SetValueCommand.java
│ │ │ └── SetValueOreGeneratorCommand.java
│ │ ├── factory
│ │ ├── OreConfigBuilder.java
│ │ ├── OreConfigFactory.java
│ │ ├── gui
│ │ │ ├── BiomeGui.java
│ │ │ ├── BlockSelectorGui.java
│ │ │ ├── CustomDataGui.java
│ │ │ ├── CustomDatasGui.java
│ │ │ ├── MenuGui.java
│ │ │ ├── OreGeneratorGui.java
│ │ │ ├── OreSettingGui.java
│ │ │ ├── OreSettingsGui.java
│ │ │ ├── WorldGui.java
│ │ │ └── settings
│ │ │ │ ├── BiomeGuiSettings.java
│ │ │ │ ├── BlockSelectorGuiSettings.java
│ │ │ │ ├── BooleanGuiSettings.java
│ │ │ │ ├── CustomDataGuiSettings.java
│ │ │ │ ├── CustomDatasGuiSettings.java
│ │ │ │ ├── MenuGuiSettings.java
│ │ │ │ ├── OreGeneratorGuiSettings.java
│ │ │ │ ├── OreSettingGuiSettings.java
│ │ │ │ ├── OreSettingsGuiSettings.java
│ │ │ │ └── WorldGuiSettings.java
│ │ └── listeners
│ │ │ ├── CommandListener.java
│ │ │ ├── MainMaterialListener.java
│ │ │ ├── MaterialListener.java
│ │ │ ├── ReplaceMaterialListener.java
│ │ │ └── SelectMaterialListener.java
│ │ ├── impl
│ │ ├── CustomOreGeneratorServiceImpl.java
│ │ ├── InfoImpl.java
│ │ ├── blockselector
│ │ │ ├── CountRangeBlockSelector.java
│ │ │ └── HighestBlockBlockSelector.java
│ │ ├── customdata
│ │ │ ├── AutoCustomData.java
│ │ │ ├── BlockStateCustomData.java
│ │ │ ├── CommandCustomData.java
│ │ │ ├── DirectionCustomData.java
│ │ │ ├── FacingCustomData.java
│ │ │ ├── ItemModsCustomData.java
│ │ │ ├── NBTTagCustomData.java
│ │ │ ├── SkullTextureCustomData.java
│ │ │ ├── TickBlockCustomData.java
│ │ │ └── VariantCustomData.java
│ │ └── oregenerator
│ │ │ ├── GlowStoneGenerator.java
│ │ │ ├── RootGenerator.java
│ │ │ └── SingleOreGenerator.java
│ │ └── utils
│ │ ├── InfoUtil.java
│ │ └── RegisterUtil.java
│ └── resources
│ ├── data
│ ├── factory
│ │ └── gui
│ │ │ ├── biome-gui.yml
│ │ │ ├── block-selector-gui.yml
│ │ │ ├── boolean-gui.yml
│ │ │ ├── custom-data-gui.yml
│ │ │ ├── custom-datas-gui.yml
│ │ │ ├── menu-gui.yml
│ │ │ ├── ore-generator-gui.yml
│ │ │ ├── ore-setting-gui.yml
│ │ │ ├── ore-settings-gui.yml
│ │ │ └── world-gui.yml
│ └── info
│ │ ├── block-selector
│ │ ├── COUNT_RANGE
│ │ │ ├── COUNT_RANGE.yml
│ │ │ └── ore-setting
│ │ │ │ ├── HEIGHT_RANGE.yml
│ │ │ │ ├── MINIMUM_HEIGHT.yml
│ │ │ │ └── VEINS_PER_CHUNK.yml
│ │ └── HIGHEST_BLOCK
│ │ │ ├── HIGHEST_BLOCK.yml
│ │ │ └── ore-setting
│ │ │ └── VEINS_PER_CHUNK.yml
│ │ ├── custom-data
│ │ ├── AUTO.yml
│ │ ├── BLOCK_STATE.yml
│ │ ├── COMMAND.yml
│ │ ├── DOWN.yml
│ │ ├── EAST.yml
│ │ ├── FACING.yml
│ │ ├── ITEM_MODS.yml
│ │ ├── NBT_TAG.yml
│ │ ├── NORTH.yml
│ │ ├── ORAXEN.yml
│ │ ├── SKULL_TEXTURE.yml
│ │ ├── SOUTH.yml
│ │ ├── TICK_BLOCK.yml
│ │ ├── UP.yml
│ │ ├── VARIANT.yml
│ │ └── WEST.yml
│ │ └── ore-generator
│ │ ├── GLOW_STONE_GENERATOR
│ │ ├── GLOW_STONE_GENERATOR.yml
│ │ └── ore-setting
│ │ │ ├── CONNECTIONS.yml
│ │ │ ├── HORIZONTAL_SCOPE.yml
│ │ │ ├── NEGATIVE_TRIES.yml
│ │ │ ├── NEGATIVE_VERTICAL_SCOPE.yml
│ │ │ ├── POSITIVE_TRIES.yml
│ │ │ └── POSITIVE_VERTICAL_SCOPE.yml
│ │ ├── ROOT_GENERATOR
│ │ ├── ROOT_GENERATOR.yml
│ │ └── ore-setting
│ │ │ ├── CHANCE_SUBTRACTION_RANGE.yml
│ │ │ ├── CONTINUE_CHANCE.yml
│ │ │ ├── CONTINUE_TRIES.yml
│ │ │ ├── DOWN_CHANCE.yml
│ │ │ ├── LENGTH_SUBTRACTION_RANGE.yml
│ │ │ ├── MINIMUM_CHANCE_SUBTRACTION.yml
│ │ │ ├── MINIMUM_LENGTH_SUBTRACTION.yml
│ │ │ ├── MINIMUM_TRIES_SUBTRACTION.yml
│ │ │ ├── ROOT_LENGTH.yml
│ │ │ └── TRIES_SUBTRACTION_RANGE.yml
│ │ ├── SINGLE_ORE_GENERATOR
│ │ └── SINGLE_ORE_GENERATOR.yml
│ │ └── VANILLA_MINABLE_GENERATOR
│ │ ├── VANILLA_MINABLE_GENERATOR.yml
│ │ └── ore-setting
│ │ └── VEIN_SIZE.yml
│ ├── messages.yml
│ └── plugin.yml
├── impl
├── pom.xml
├── v1_10_R1
│ ├── pom.xml
│ └── src
│ │ └── main
│ │ └── java
│ │ └── de
│ │ └── derfrzocker
│ │ └── custom
│ │ └── ore
│ │ └── generator
│ │ └── impl
│ │ └── v1_10_R1
│ │ ├── ChunkAccessImpl.java
│ │ ├── CustomOreBlockPopulator_v1_10_R1.java
│ │ ├── customdata
│ │ ├── AutoApplier_v1_10_R1.java
│ │ ├── BlockStateApplier_v1_10_R1.java
│ │ ├── CommandApplier_v1_10_R1.java
│ │ ├── NBTTagApplier_v1_10_R1.java
│ │ ├── SkullTextureApplier_v1_10_R1.java
│ │ └── VariantApplier_v1_10_R1.java
│ │ └── oregenerator
│ │ └── MinableGenerator_v1_10_R1.java
├── v1_11_R1
│ ├── pom.xml
│ └── src
│ │ └── main
│ │ └── java
│ │ └── de
│ │ └── derfrzocker
│ │ └── custom
│ │ └── ore
│ │ └── generator
│ │ └── impl
│ │ └── v1_11_R1
│ │ ├── ChunkAccessImpl.java
│ │ ├── CustomOreBlockPopulator_v1_11_R1.java
│ │ ├── customdata
│ │ ├── AutoApplier_v1_11_R1.java
│ │ ├── BlockStateApplier_v1_11_R1.java
│ │ ├── CommandApplier_v1_11_R1.java
│ │ ├── NBTTagApplier_v1_11_R1.java
│ │ ├── SkullTextureApplier_v1_11_R1.java
│ │ └── VariantApplier_v1_11_R1.java
│ │ └── oregenerator
│ │ └── MinableGenerator_v1_11_R1.java
├── v1_12_R1
│ ├── pom.xml
│ └── src
│ │ └── main
│ │ └── java
│ │ └── de
│ │ └── derfrzocker
│ │ └── custom
│ │ └── ore
│ │ └── generator
│ │ └── impl
│ │ └── v1_12_R1
│ │ ├── ChunkAccessImpl.java
│ │ ├── CustomOreBlockPopulator_v1_12_R1.java
│ │ ├── customdata
│ │ ├── AutoApplier_v1_12_R1.java
│ │ ├── BlockStateApplier_v1_12_R1.java
│ │ ├── CommandApplier_v1_12_R1.java
│ │ ├── NBTTagApplier_v1_12_R1.java
│ │ ├── SkullTextureApplier_v1_12_R1.java
│ │ └── VariantApplier_v1_12_R1.java
│ │ └── oregenerator
│ │ └── MinableGenerator_v1_12_R1.java
├── v1_13_R1
│ ├── pom.xml
│ └── src
│ │ └── main
│ │ └── java
│ │ └── de
│ │ └── derfrzocker
│ │ └── custom
│ │ └── ore
│ │ └── generator
│ │ └── impl
│ │ └── v1_13_R1
│ │ ├── ChunkOverrieder.java
│ │ ├── GeneratorAccessOverrider.java
│ │ ├── WorldHandler_v1_13_R1.java
│ │ ├── customdata
│ │ ├── AutoApplier_v1_13_R1.java
│ │ ├── BlockStateApplier_v1_13_R1.java
│ │ ├── CommandApplier_v1_13_R1.java
│ │ ├── DirectionApplier_v1_13_R1.java
│ │ ├── FacingApplier_v1_13_R1.java
│ │ ├── NBTTagApplier_v1_13_R1.java
│ │ ├── SkullTextureApplier_v1_13_R1.java
│ │ └── TickBlockApplier_v1_13_R1.java
│ │ └── oregenerator
│ │ └── MinableGenerator_v1_13_R1.java
├── v1_13_R2
│ ├── pom.xml
│ └── src
│ │ └── main
│ │ └── java
│ │ └── de
│ │ └── derfrzocker
│ │ └── custom
│ │ └── ore
│ │ └── generator
│ │ └── impl
│ │ └── v1_13_R2
│ │ ├── ChunkOverrieder.java
│ │ ├── GeneratorAccessOverrider.java
│ │ ├── WorldHandler_v1_13_R2.java
│ │ ├── customdata
│ │ ├── AutoApplier_v1_13_R2.java
│ │ ├── BlockStateApplier_v1_13_R2.java
│ │ ├── CommandApplier_v1_13_R2.java
│ │ ├── DirectionApplier_v1_13_R2.java
│ │ ├── FacingApplier_v1_13_R2.java
│ │ ├── NBTTagApplier_v1_13_R2.java
│ │ ├── SkullTextureApplier_v1_13_R2.java
│ │ └── TickBlockApplier_v1_13_R2.java
│ │ └── oregenerator
│ │ └── MinableGenerator_v1_13_R2.java
├── v1_14_R1
│ ├── pom.xml
│ └── src
│ │ └── main
│ │ └── java
│ │ └── de
│ │ └── derfrzocker
│ │ └── custom
│ │ └── ore
│ │ └── generator
│ │ └── impl
│ │ └── v1_14_R1
│ │ ├── ChunkOverrider.java
│ │ ├── DummyGeneratorAccess.java
│ │ ├── GeneratorAccessOverrider.java
│ │ ├── WorldHandler_v1_14_R1.java
│ │ ├── customdata
│ │ ├── AutoApplier_v1_14_R1.java
│ │ ├── BlockStateApplier_v1_14_R1.java
│ │ ├── CommandApplier_v1_14_R1.java
│ │ ├── DirectionApplier_v1_14_R1.java
│ │ ├── FacingApplier_v1_14_R1.java
│ │ ├── ItemModsApplier_v1_14_R1.java
│ │ ├── NBTTagApplier_v1_14_R1.java
│ │ ├── SkullTextureApplier_v1_14_R1.java
│ │ └── TickBlockApplier_v1_14_R1.java
│ │ └── oregenerator
│ │ └── MinableGenerator_v1_14_R1.java
├── v1_15_R1
│ ├── pom.xml
│ └── src
│ │ └── main
│ │ └── java
│ │ └── de
│ │ └── derfrzocker
│ │ └── custom
│ │ └── ore
│ │ └── generator
│ │ └── impl
│ │ └── v1_15_R1
│ │ ├── ChunkOverrider.java
│ │ ├── DummyGeneratorAccess.java
│ │ ├── GeneratorAccessOverrider.java
│ │ ├── WorldHandler_v1_15_R1.java
│ │ ├── customdata
│ │ ├── AutoApplier_v1_15_R1.java
│ │ ├── BlockStateApplier_v1_15_R1.java
│ │ ├── CommandApplier_v1_15_R1.java
│ │ ├── DirectionApplier_v1_15_R1.java
│ │ ├── FacingApplier_v1_15_R1.java
│ │ ├── ItemModsApplier_v1_15_R1.java
│ │ ├── NBTTagApplier_v1_15_R1.java
│ │ ├── SkullTextureApplier_v1_15_R1.java
│ │ └── TickBlockApplier_v1_15_R1.java
│ │ └── oregenerator
│ │ └── MinableGenerator_v1_15_R1.java
├── v1_16_R1
│ ├── pom.xml
│ └── src
│ │ └── main
│ │ └── java
│ │ └── de
│ │ └── derfrzocker
│ │ └── custom
│ │ └── ore
│ │ └── generator
│ │ └── impl
│ │ └── v1_16_R1
│ │ ├── ChunkOverrider.java
│ │ ├── GeneratorAccessOverrider.java
│ │ ├── WorldHandler_v1_16_R1.java
│ │ ├── customdata
│ │ ├── AutoApplier_v1_16_R1.java
│ │ ├── BlockStateApplier_v1_16_R1.java
│ │ ├── CommandApplier_v1_16_R1.java
│ │ ├── DirectionApplier_v1_16_R1.java
│ │ ├── FacingApplier_v1_16_R1.java
│ │ ├── ItemModsApplier_v1_16_R1.java
│ │ ├── NBTTagApplier_v1_16_R1.java
│ │ ├── SkullTextureApplier_v1_16_R1.java
│ │ └── TickBlockApplier_v1_16_R1.java
│ │ └── oregenerator
│ │ └── MinableGenerator_v1_16_R1.java
├── v1_16_R2
│ ├── pom.xml
│ └── src
│ │ └── main
│ │ └── java
│ │ └── de
│ │ └── derfrzocker
│ │ └── custom
│ │ └── ore
│ │ └── generator
│ │ └── impl
│ │ └── v1_16_R2
│ │ ├── ChunkOverrider.java
│ │ ├── GeneratorAccessOverrider.java
│ │ ├── WorldHandler_v1_16_R2.java
│ │ ├── customdata
│ │ ├── AutoApplier_v1_16_R2.java
│ │ ├── BlockStateApplier_v1_16_R2.java
│ │ ├── CommandApplier_v1_16_R2.java
│ │ ├── DirectionApplier_v1_16_R2.java
│ │ ├── FacingApplier_v1_16_R2.java
│ │ ├── ItemModsApplier_v1_16_R2.java
│ │ ├── NBTTagApplier_v1_16_R2.java
│ │ ├── SkullTextureApplier_v1_16_R2.java
│ │ └── TickBlockApplier_v1_16_R2.java
│ │ └── oregenerator
│ │ └── MinableGenerator_v1_16_R2.java
├── v1_16_R3-post
│ ├── pom.xml
│ └── src
│ │ └── main
│ │ └── java
│ │ └── de
│ │ └── derfrzocker
│ │ └── custom
│ │ └── ore
│ │ └── generator
│ │ └── impl
│ │ └── v1_16_R3_post
│ │ └── customdata
│ │ ├── CommandApplier_v1_16_R3_post.java
│ │ ├── DirectionApplier_v1_16_R3_post.java
│ │ └── FacingApplier_v1_16_R3_post.java
├── v1_16_R3
│ ├── pom.xml
│ └── src
│ │ └── main
│ │ └── java
│ │ └── de
│ │ └── derfrzocker
│ │ └── custom
│ │ └── ore
│ │ └── generator
│ │ └── impl
│ │ └── v1_16_R3
│ │ ├── ChunkOverrider.java
│ │ ├── GeneratorAccessOverrider.java
│ │ ├── WorldHandler_v1_16_R3.java
│ │ ├── customdata
│ │ ├── AutoApplier_v1_16_R3.java
│ │ ├── BlockStateApplier_v1_16_R3.java
│ │ ├── CommandApplier_v1_16_R3.java
│ │ ├── DirectionApplier_v1_16_R3.java
│ │ ├── FacingApplier_v1_16_R3.java
│ │ ├── ItemModsApplier_v1_16_R3.java
│ │ ├── NBTTagApplier_v1_16_R3.java
│ │ ├── SkullTextureApplier_v1_16_R3.java
│ │ └── TickBlockApplier_v1_16_R3.java
│ │ └── oregenerator
│ │ └── MinableGenerator_v1_16_R3.java
├── v1_17_R1
│ ├── pom.xml
│ └── src
│ │ └── main
│ │ └── java
│ │ └── de
│ │ └── derfrzocker
│ │ └── custom
│ │ └── ore
│ │ └── generator
│ │ └── impl
│ │ └── v1_17_R1
│ │ ├── ChunkAccessImpl.java
│ │ ├── CustomChunkAccess.java
│ │ ├── CustomOrePopulator.java
│ │ ├── LevelChunkSectionOverride.java
│ │ ├── WorldHandler_v1_17_R1.java
│ │ ├── customdata
│ │ ├── AutoApplier_v1_17_R1.java
│ │ ├── BlockStateApplier_v1_17_R1.java
│ │ ├── ItemModsApplier_v1_17_R1.java
│ │ ├── NBTTagApplier_v1_17_R1.java
│ │ ├── SkullTextureApplier_v1_17_R1.java
│ │ └── TickBlockApplier_v1_17_R1.java
│ │ └── oregenerator
│ │ └── MinableGenerator_v1_17_R1.java
├── v1_18_R1
│ ├── pom.xml
│ └── src
│ │ └── main
│ │ └── java
│ │ └── de
│ │ └── derfrzocker
│ │ └── custom
│ │ └── ore
│ │ └── generator
│ │ └── impl
│ │ └── v1_18_R1
│ │ ├── ChunkAccessImpl.java
│ │ ├── CustomChunkAccess.java
│ │ ├── CustomOrePopulator.java
│ │ ├── LevelChunkSectionOverride.java
│ │ ├── WorldHandler_v1_18_R1.java
│ │ ├── customdata
│ │ ├── AutoApplier_v1_18_R1.java
│ │ ├── BlockStateApplier_v1_18_R1.java
│ │ ├── ItemModsApplier_v1_18_R1.java
│ │ ├── NBTTagApplier_v1_18_R1.java
│ │ ├── SkullTextureApplier_v1_18_R1.java
│ │ └── TickBlockApplier_v1_18_R1.java
│ │ └── oregenerator
│ │ └── MinableGenerator_v1_18_R1.java
├── v1_18_R2
│ ├── pom.xml
│ └── src
│ │ └── main
│ │ └── java
│ │ └── de
│ │ └── derfrzocker
│ │ └── custom
│ │ └── ore
│ │ └── generator
│ │ └── impl
│ │ └── v1_18_R2
│ │ ├── ChunkAccessImpl.java
│ │ ├── CustomChunkAccess.java
│ │ ├── CustomOrePopulator.java
│ │ ├── LevelChunkSectionOverride.java
│ │ ├── WorldHandler_v1_18_R2.java
│ │ ├── customdata
│ │ ├── AutoApplier_v1_18_R2.java
│ │ ├── BlockStateApplier_v1_18_R2.java
│ │ ├── ItemModsApplier_v1_18_R2.java
│ │ ├── NBTTagApplier_v1_18_R2.java
│ │ ├── SkullTextureApplier_v1_18_R2.java
│ │ └── TickBlockApplier_v1_18_R2.java
│ │ └── oregenerator
│ │ └── MinableGenerator_v1_18_R2.java
├── v1_19_R1
│ ├── pom.xml
│ └── src
│ │ └── main
│ │ └── java
│ │ └── de
│ │ └── derfrzocker
│ │ └── custom
│ │ └── ore
│ │ └── generator
│ │ └── impl
│ │ └── v1_19_R1
│ │ ├── ChunkAccessImpl.java
│ │ ├── CustomChunkAccess.java
│ │ ├── CustomOrePopulator.java
│ │ ├── LevelChunkSectionOverride.java
│ │ ├── WorldHandler_v1_19_R1.java
│ │ ├── customdata
│ │ ├── AutoApplier_v1_19_R1.java
│ │ ├── BlockStateApplier_v1_19_R1.java
│ │ ├── ItemModsApplier_v1_19_R1.java
│ │ ├── NBTTagApplier_v1_19_R1.java
│ │ ├── SkullTextureApplier_v1_19_R1.java
│ │ └── TickBlockApplier_v1_19_R1.java
│ │ └── oregenerator
│ │ └── MinableGenerator_v1_19_R1.java
├── v1_19_R2
│ ├── pom.xml
│ └── src
│ │ └── main
│ │ └── java
│ │ └── de
│ │ └── derfrzocker
│ │ └── custom
│ │ └── ore
│ │ └── generator
│ │ └── impl
│ │ └── v1_19_R2
│ │ ├── ChunkAccessImpl.java
│ │ ├── CustomChunkAccess.java
│ │ ├── CustomOrePopulator.java
│ │ ├── LevelChunkSectionOverride.java
│ │ ├── WorldHandler_v1_19_R2.java
│ │ ├── customdata
│ │ ├── AutoApplier_v1_19_R2.java
│ │ ├── BlockStateApplier_v1_19_R2.java
│ │ ├── ItemModsApplier_v1_19_R2.java
│ │ ├── NBTTagApplier_v1_19_R2.java
│ │ ├── SkullTextureApplier_v1_19_R2.java
│ │ └── TickBlockApplier_v1_19_R2.java
│ │ └── oregenerator
│ │ └── MinableGenerator_v1_19_R2.java
├── v1_19_R3
│ ├── pom.xml
│ └── src
│ │ └── main
│ │ └── java
│ │ └── de
│ │ └── derfrzocker
│ │ └── custom
│ │ └── ore
│ │ └── generator
│ │ └── impl
│ │ └── v1_19_R3
│ │ ├── ChunkAccessImpl.java
│ │ ├── CustomChunkAccess.java
│ │ ├── CustomOrePopulator.java
│ │ ├── LevelChunkSectionOverride.java
│ │ ├── WorldHandler_v1_19_R3.java
│ │ ├── customdata
│ │ ├── AutoApplier_v1_19_R3.java
│ │ ├── BlockStateApplier_v1_19_R3.java
│ │ ├── ItemModsApplier_v1_19_R3.java
│ │ ├── NBTTagApplier_v1_19_R3.java
│ │ ├── SkullTextureApplier_v1_19_R3.java
│ │ └── TickBlockApplier_v1_19_R3.java
│ │ └── oregenerator
│ │ └── MinableGenerator_v1_19_R3.java
├── v1_20_R1
│ ├── pom.xml
│ └── src
│ │ └── main
│ │ └── java
│ │ └── de
│ │ └── derfrzocker
│ │ └── custom
│ │ └── ore
│ │ └── generator
│ │ └── impl
│ │ └── v1_20_R1
│ │ ├── ChunkAccessImpl.java
│ │ ├── CustomChunkAccess.java
│ │ ├── CustomOrePopulator.java
│ │ ├── LevelChunkSectionOverride.java
│ │ ├── WorldHandler_v1_20_R1.java
│ │ ├── customdata
│ │ ├── AutoApplier_v1_20_R1.java
│ │ ├── BlockStateApplier_v1_20_R1.java
│ │ ├── ItemModsApplier_v1_20_R1.java
│ │ ├── NBTTagApplier_v1_20_R1.java
│ │ ├── SkullTextureApplier_v1_20_R1.java
│ │ └── TickBlockApplier_v1_20_R1.java
│ │ └── oregenerator
│ │ └── MinableGenerator_v1_20_R1.java
├── v1_20_R2
│ ├── pom.xml
│ └── src
│ │ └── main
│ │ └── java
│ │ └── de
│ │ └── derfrzocker
│ │ └── custom
│ │ └── ore
│ │ └── generator
│ │ └── impl
│ │ └── v1_20_R2
│ │ ├── ChunkAccessImpl.java
│ │ ├── CustomChunkAccess.java
│ │ ├── CustomOrePopulator.java
│ │ ├── LevelChunkSectionOverride.java
│ │ ├── WorldHandler_v1_20_R2.java
│ │ ├── customdata
│ │ ├── AutoApplier_v1_20_R2.java
│ │ ├── BlockStateApplier_v1_20_R2.java
│ │ ├── ItemModsApplier_v1_20_R2.java
│ │ ├── NBTTagApplier_v1_20_R2.java
│ │ ├── SkullTextureApplier_v1_20_R2.java
│ │ └── TickBlockApplier_v1_20_R2.java
│ │ └── oregenerator
│ │ └── MinableGenerator_v1_20_R2.java
├── v1_20_R3
│ ├── pom.xml
│ └── src
│ │ └── main
│ │ └── java
│ │ └── de
│ │ └── derfrzocker
│ │ └── custom
│ │ └── ore
│ │ └── generator
│ │ └── impl
│ │ └── v1_20_R3
│ │ ├── ChunkAccessImpl.java
│ │ ├── CustomChunkAccess.java
│ │ ├── CustomOrePopulator.java
│ │ ├── LevelChunkSectionOverride.java
│ │ ├── WorldHandler_v1_20_R3.java
│ │ ├── customdata
│ │ ├── AutoApplier_v1_20_R3.java
│ │ ├── BlockStateApplier_v1_20_R3.java
│ │ ├── ItemModsApplier_v1_20_R3.java
│ │ ├── NBTTagApplier_v1_20_R3.java
│ │ ├── SkullTextureApplier_v1_20_R3.java
│ │ └── TickBlockApplier_v1_20_R3.java
│ │ └── oregenerator
│ │ └── MinableGenerator_v1_20_R3.java
├── v1_20_R4
│ ├── pom.xml
│ └── src
│ │ └── main
│ │ └── java
│ │ └── de
│ │ └── derfrzocker
│ │ └── custom
│ │ └── ore
│ │ └── generator
│ │ └── impl
│ │ └── v1_20_R4
│ │ ├── ChunkAccessImpl.java
│ │ ├── CustomChunkAccess.java
│ │ ├── CustomOrePopulator.java
│ │ ├── LevelChunkSectionOverride.java
│ │ ├── WorldHandler_v1_20_R4.java
│ │ ├── customdata
│ │ ├── AutoApplier_v1_20_R4.java
│ │ ├── BlockStateApplier_v1_20_R4.java
│ │ ├── ItemModsApplier_v1_20_R4.java
│ │ ├── NBTTagApplier_v1_20_R4.java
│ │ ├── SkullTextureApplier_v1_20_R4.java
│ │ └── TickBlockApplier_v1_20_R4.java
│ │ └── oregenerator
│ │ └── MinableGenerator_v1_20_R4.java
├── v1_21_R1
│ ├── pom.xml
│ └── src
│ │ └── main
│ │ └── java
│ │ └── de
│ │ └── derfrzocker
│ │ └── custom
│ │ └── ore
│ │ └── generator
│ │ └── impl
│ │ └── v1_21_R1
│ │ ├── ChunkAccessImpl.java
│ │ ├── CustomChunkAccess.java
│ │ ├── CustomOrePopulator.java
│ │ ├── LevelChunkSectionOverride.java
│ │ ├── WorldHandler_v1_21_R1.java
│ │ ├── customdata
│ │ ├── AutoApplier_v1_21_R1.java
│ │ ├── BlockStateApplier_v1_21_R1.java
│ │ ├── ItemModsApplier_v1_21_R1.java
│ │ ├── NBTTagApplier_v1_21_R1.java
│ │ ├── SkullTextureApplier_v1_21_R1.java
│ │ └── TickBlockApplier_v1_21_R1.java
│ │ └── oregenerator
│ │ └── MinableGenerator_v1_21_R1.java
├── v1_21_R2
│ ├── pom.xml
│ └── src
│ │ └── main
│ │ └── java
│ │ └── de
│ │ └── derfrzocker
│ │ └── custom
│ │ └── ore
│ │ └── generator
│ │ └── impl
│ │ └── v1_21_R2
│ │ ├── ChunkAccessImpl.java
│ │ ├── CustomChunkAccess.java
│ │ ├── CustomOrePopulator.java
│ │ ├── LevelChunkSectionOverride.java
│ │ ├── WorldHandler_v1_21_R2.java
│ │ ├── customdata
│ │ ├── AutoApplier_v1_21_R2.java
│ │ ├── BlockStateApplier_v1_21_R2.java
│ │ ├── ItemModsApplier_v1_21_R2.java
│ │ ├── NBTTagApplier_v1_21_R2.java
│ │ ├── SkullTextureApplier_v1_21_R2.java
│ │ └── TickBlockApplier_v1_21_R2.java
│ │ └── oregenerator
│ │ └── MinableGenerator_v1_21_R2.java
├── v1_21_R3
│ ├── pom.xml
│ └── src
│ │ └── main
│ │ └── java
│ │ └── de
│ │ └── derfrzocker
│ │ └── custom
│ │ └── ore
│ │ └── generator
│ │ └── impl
│ │ └── v1_21_R3
│ │ ├── ChunkAccessImpl.java
│ │ ├── CustomChunkAccess.java
│ │ ├── CustomOrePopulator.java
│ │ ├── LevelChunkSectionOverride.java
│ │ ├── WorldHandler_v1_21_R3.java
│ │ ├── customdata
│ │ ├── AutoApplier_v1_21_R3.java
│ │ ├── BlockStateApplier_v1_21_R3.java
│ │ ├── NBTTagApplier_v1_21_R3.java
│ │ ├── SkullTextureApplier_v1_21_R3.java
│ │ └── TickBlockApplier_v1_21_R3.java
│ │ └── oregenerator
│ │ └── MinableGenerator_v1_21_R3.java
├── v1_21_R4
│ ├── pom.xml
│ └── src
│ │ └── main
│ │ └── java
│ │ └── de
│ │ └── derfrzocker
│ │ └── custom
│ │ └── ore
│ │ └── generator
│ │ └── impl
│ │ └── v1_21_R4
│ │ ├── ChunkAccessImpl.java
│ │ ├── CustomChunkAccess.java
│ │ ├── CustomOrePopulator.java
│ │ ├── LevelChunkSectionOverride.java
│ │ ├── WorldHandler_v1_21_R4.java
│ │ ├── customdata
│ │ ├── AutoApplier_v1_21_R4.java
│ │ ├── BlockStateApplier_v1_21_R4.java
│ │ ├── NBTTagApplier_v1_21_R4.java
│ │ ├── SkullTextureApplier_v1_21_R4.java
│ │ └── TickBlockApplier_v1_21_R4.java
│ │ └── oregenerator
│ │ └── MinableGenerator_v1_21_R4.java
├── v1_8_R1
│ ├── pom.xml
│ └── src
│ │ └── main
│ │ └── java
│ │ └── de
│ │ └── derfrzocker
│ │ └── custom
│ │ └── ore
│ │ └── generator
│ │ └── impl
│ │ └── v1_8_R1
│ │ ├── ChunkAccessImpl.java
│ │ ├── CustomOreBlockPopulator_v1_8_R1.java
│ │ ├── customdata
│ │ ├── CommandApplier_v1_8_R1.java
│ │ ├── NBTTagApplier_v1_8_R1.java
│ │ ├── SkullTextureApplier_v1_8_R1.java
│ │ └── VariantApplier_v1_8_R1.java
│ │ └── oregenerator
│ │ └── MinableGenerator_v1_8_R1.java
├── v1_8_R2
│ ├── pom.xml
│ └── src
│ │ └── main
│ │ └── java
│ │ └── de
│ │ └── derfrzocker
│ │ └── custom
│ │ └── ore
│ │ └── generator
│ │ └── impl
│ │ └── v1_8_R2
│ │ ├── ChunkAccessImpl.java
│ │ ├── CustomOreBlockPopulator_v1_8_R2.java
│ │ ├── customdata
│ │ ├── CommandApplier_v1_8_R2.java
│ │ ├── NBTTagApplier_v1_8_R2.java
│ │ ├── SkullTextureApplier_v1_8_R2.java
│ │ └── VariantApplier_v1_8_R2.java
│ │ └── oregenerator
│ │ └── MinableGenerator_v1_8_R2.java
├── v1_8_R3
│ ├── pom.xml
│ └── src
│ │ └── main
│ │ └── java
│ │ └── de
│ │ └── derfrzocker
│ │ └── custom
│ │ └── ore
│ │ └── generator
│ │ └── impl
│ │ └── v1_8_R3
│ │ ├── ChunkAccessImpl.java
│ │ ├── CustomOreBlockPopulator_v1_8_R3.java
│ │ ├── customdata
│ │ ├── CommandApplier_v1_8_R3.java
│ │ ├── NBTTagApplier_v1_8_R3.java
│ │ ├── SkullTextureApplier_v1_8_R3.java
│ │ └── VariantApplier_v1_8_R3.java
│ │ └── oregenerator
│ │ └── MinableGenerator_v1_8_R3.java
├── v1_9_R1
│ ├── pom.xml
│ └── src
│ │ └── main
│ │ └── java
│ │ └── de
│ │ └── derfrzocker
│ │ └── custom
│ │ └── ore
│ │ └── generator
│ │ └── impl
│ │ └── v1_9_R1
│ │ ├── ChunkAccessImpl.java
│ │ ├── CustomOreBlockPopulator_v1_9_R1.java
│ │ ├── customdata
│ │ ├── AutoApplier_v1_9_R1.java
│ │ ├── CommandApplier_v1_9_R1.java
│ │ ├── NBTTagApplier_v1_9_R1.java
│ │ ├── SkullTextureApplier_v1_9_R1.java
│ │ └── VariantApplier_v1_9_R1.java
│ │ └── oregenerator
│ │ └── MinableGenerator_v1_9_R1.java
├── v1_9_R2
│ ├── pom.xml
│ └── src
│ │ └── main
│ │ └── java
│ │ └── de
│ │ └── derfrzocker
│ │ └── custom
│ │ └── ore
│ │ └── generator
│ │ └── impl
│ │ └── v_1_9_R2
│ │ ├── ChunkAccessImpl.java
│ │ ├── CustomOreBlockPopulator_v1_9_R2.java
│ │ ├── customdata
│ │ ├── AutoApplier_v1_9_R2.java
│ │ ├── CommandApplier_v1_9_R2.java
│ │ ├── NBTTagApplier_v1_9_R2.java
│ │ ├── SkullTextureApplier_v1_9_R2.java
│ │ └── VariantApplier_v1_9_R2.java
│ │ └── oregenerator
│ │ └── MinableGenerator_v1_9_R2.java
└── yaml
│ ├── pom.xml
│ └── src
│ ├── main
│ └── java
│ │ └── de
│ │ └── derfrzocker
│ │ └── custom
│ │ └── ore
│ │ └── generator
│ │ └── impl
│ │ ├── BiomeConfigYamlImpl.java
│ │ ├── DummyOreConfig.java
│ │ ├── OreConfigYamlImpl.java
│ │ ├── OreSettingsContainerYamlImpl.java
│ │ ├── WorldConfigYamlImpl.java
│ │ └── dao
│ │ ├── LazyOreConfigCache.java
│ │ ├── LazyWorldConfigCache.java
│ │ ├── OreConfigYamlDao.java
│ │ ├── WorldConfigYamlDao.java
│ │ └── WorldConfigYamlDao_Old.java
│ └── test
│ └── resources
│ ├── OreConfigYamlImpl_NewFormat.yml
│ └── OreConfigYamlImpl_OldFormat.yml
├── plugin
├── oraxen
│ ├── pom.xml
│ ├── v1
│ │ ├── pom.xml
│ │ └── src
│ │ │ └── main
│ │ │ └── java
│ │ │ └── de
│ │ │ └── derfrzocker
│ │ │ └── custom
│ │ │ └── ore
│ │ │ └── generator
│ │ │ └── plugin
│ │ │ └── oraxen
│ │ │ └── v1
│ │ │ ├── OraxenApplier.java
│ │ │ └── OraxenCustomData_v1.java
│ └── v2
│ │ ├── pom.xml
│ │ └── src
│ │ └── main
│ │ └── java
│ │ └── de
│ │ └── derfrzocker
│ │ └── custom
│ │ └── ore
│ │ └── generator
│ │ └── plugin
│ │ └── oraxen
│ │ └── v2
│ │ ├── OraxenApplier.java
│ │ └── OraxenCustomData_v2.java
└── pom.xml
└── pom.xml
/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | # These are supported funding model platforms
2 |
3 | github: [DerFrZocker]
4 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | /.idea/
2 | /abstract/target/
3 | /api/target/
4 |
5 | .flattened-pom.xml
6 | target
7 | *.iml
8 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2019 - 2020 Marvin (DerFrZocker)
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Custom-Ore-Generator
2 | Custom-Ore-Generator is a Spigot plugin, with which you can generate blocks as ores in your minecraft world.
3 |
4 | Links
5 | -----
6 | * [Spigot plugin page](https://www.spigotmc.org/resources/64339/) (English)
7 | * [Minecraft-server.eu plugin page](https://minecraft-server.eu/forum/resources/24/) (German)
8 | * [Dev Builds](https://jenkins.derfrzocker.de/job/Custom-Ore-Generator-Dev/)
9 | * [Wiki](https://github.com/DerFrZocker/Custom-Ore-Generator/wiki)
10 | * [bStats](https://bstats.org/plugin/bukkit/Custom-Ore-Generator)
--------------------------------------------------------------------------------
/abstract/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 | 4.0.0
6 |
7 |
8 | custom-ore-generator-parent
9 | de.derfrzocker
10 | ${revision}
11 |
12 |
13 | custom-ore-generator-impl-abstract
14 |
15 |
16 |
17 | de.derfrzocker
18 | custom-ore-generator-api
19 | ${project.version}
20 | provided
21 |
22 |
23 | org.spigotmc
24 | spigot-api
25 | 1.8-R0.1-SNAPSHOT
26 | provided
27 | true
28 |
29 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/abstract/src/main/java/de/derfrzocker/custom/ore/generator/impl/oregenerator/AbstractSingleOreGenerator.java:
--------------------------------------------------------------------------------
1 | /*
2 | * MIT License
3 | *
4 | * Copyright (c) 2019 - 2020 Marvin (DerFrZocker)
5 | *
6 | * Permission is hereby granted, free of charge, to any person obtaining a copy
7 | * of this software and associated documentation files (the "Software"), to deal
8 | * in the Software without restriction, including without limitation the rights
9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | * copies of the Software, and to permit persons to whom the Software is
11 | * furnished to do so, subject to the following conditions:
12 | *
13 | * The above copyright notice and this permission notice shall be included in all
14 | * copies or substantial portions of the Software.
15 | *
16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 | * SOFTWARE.
23 | *
24 | */
25 |
26 | package de.derfrzocker.custom.ore.generator.impl.oregenerator;
27 |
28 | import de.derfrzocker.custom.ore.generator.api.Info;
29 | import de.derfrzocker.custom.ore.generator.api.OreConfig;
30 | import de.derfrzocker.custom.ore.generator.api.OreSetting;
31 | import org.apache.commons.lang.Validate;
32 | import org.jetbrains.annotations.NotNull;
33 |
34 | import java.util.function.BiFunction;
35 | import java.util.function.Function;
36 |
37 | public abstract class AbstractSingleOreGenerator extends AbstractOreGenerator {
38 |
39 | /**
40 | * The infoFunction gives the name of the OreGenerator as value.
41 | * The oreSettingInfo gives the name of the OreGenerator and the OreSetting as values.
42 | *
43 | * @param infoFunction function to get the info object of this OreGenerator
44 | * @param oreSettingInfo biFunction to get the info object of a given OreSetting
45 | * @throws IllegalArgumentException if one of the arguments are null
46 | */
47 | public AbstractSingleOreGenerator(@NotNull final Function infoFunction, @NotNull final BiFunction oreSettingInfo) {
48 | super("SINGLE_ORE_GENERATOR", EMPTY, infoFunction, oreSettingInfo);
49 | }
50 |
51 | @Override
52 | public boolean isSaveValue(@NotNull final OreSetting oreSetting, final double value, @NotNull final OreConfig oreConfig) {
53 | Validate.notNull(oreSetting, "OreSetting can not be null");
54 | Validate.notNull(oreConfig, "OreConfig can not be null");
55 | Validate.isTrue(getNeededOreSettings().contains(oreSetting), "The OreGenerator '" + getName() + "' does not need the OreSetting '" + oreSetting.getName() + "'");
56 |
57 | throw new IllegalArgumentException("The OreGenerator '" + getName() + "' does not need any OreSetting");
58 | }
59 |
60 | }
61 |
--------------------------------------------------------------------------------
/api/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 | 4.0.0
6 |
7 |
8 | custom-ore-generator-parent
9 | de.derfrzocker
10 | ${revision}
11 |
12 |
13 | custom-ore-generator-api
14 |
15 |
16 |
17 | org.spigotmc
18 | spigot-api
19 | 1.8-R0.1-SNAPSHOT
20 | provided
21 | true
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/api/src/main/java/de/derfrzocker/custom/ore/generator/api/BiomeConfig.java:
--------------------------------------------------------------------------------
1 | /*
2 | * MIT License
3 | *
4 | * Copyright (c) 2019 - 2020 Marvin (DerFrZocker)
5 | *
6 | * Permission is hereby granted, free of charge, to any person obtaining a copy
7 | * of this software and associated documentation files (the "Software"), to deal
8 | * in the Software without restriction, including without limitation the rights
9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | * copies of the Software, and to permit persons to whom the Software is
11 | * furnished to do so, subject to the following conditions:
12 | *
13 | * The above copyright notice and this permission notice shall be included in all
14 | * copies or substantial portions of the Software.
15 | *
16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 | * SOFTWARE.
23 | *
24 | */
25 |
26 | package de.derfrzocker.custom.ore.generator.api;
27 |
28 | import org.bukkit.Material;
29 | import org.bukkit.block.Biome;
30 |
31 | import java.util.Optional;
32 | import java.util.Set;
33 |
34 | /**
35 | * Biome specific values are handel in the OreConfig itself
36 | * Only for Backwards compatibility.
37 | */
38 | @Deprecated
39 | public interface BiomeConfig {
40 |
41 | Biome getBiome();
42 |
43 | Optional getOreConfig(Material material);
44 |
45 | Set getOreConfigs();
46 |
47 | void addOreConfig(OreConfig oreConfig);
48 |
49 | }
50 |
--------------------------------------------------------------------------------
/api/src/main/java/de/derfrzocker/custom/ore/generator/api/BlockSelector.java:
--------------------------------------------------------------------------------
1 | /*
2 | * MIT License
3 | *
4 | * Copyright (c) 2019 - 2020 Marvin (DerFrZocker)
5 | *
6 | * Permission is hereby granted, free of charge, to any person obtaining a copy
7 | * of this software and associated documentation files (the "Software"), to deal
8 | * in the Software without restriction, including without limitation the rights
9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | * copies of the Software, and to permit persons to whom the Software is
11 | * furnished to do so, subject to the following conditions:
12 | *
13 | * The above copyright notice and this permission notice shall be included in all
14 | * copies or substantial portions of the Software.
15 | *
16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 | * SOFTWARE.
23 | *
24 | */
25 |
26 | package de.derfrzocker.custom.ore.generator.api;
27 |
28 | import org.bukkit.Location;
29 | import org.jetbrains.annotations.NotNull;
30 |
31 | import java.util.Random;
32 | import java.util.Set;
33 |
34 | /**
35 | * A BlockSelector select location's on which a vein should get generated
36 | */
37 | public interface BlockSelector extends InfoAble, OreSettingsAble {
38 |
39 | /**
40 | * Returns a Set of Locations on which veins should get generated
41 | * The x and z positions should be between 0 and 15
42 | * The y positions should be between 0 and 255
43 | *
44 | * @param chunkInfo the ChunkInfo of the chunk
45 | * @param config which get generated
46 | * @param random to use
47 | * @return a Set of Locations on which veins should get generated
48 | * @throws NullPointerException if chunkInfo, config, or random is null
49 | */
50 | @NotNull
51 | Set selectBlocks(@NotNull ChunkInfo chunkInfo, @NotNull OreConfig config, @NotNull Random random);
52 |
53 | /**
54 | * The name is used to identify the BlockSelector,
55 | * each BlockSelector should have a unique name.
56 | * The name must match the following Regex: ^[A-Z_]*$
57 | * The name can not be empty
58 | *
59 | * @return the name of this BlockSelector
60 | */
61 | @NotNull
62 | String getName();
63 |
64 | }
65 |
--------------------------------------------------------------------------------
/api/src/main/java/de/derfrzocker/custom/ore/generator/api/ChunkAccess.java:
--------------------------------------------------------------------------------
1 | /*
2 | * MIT License
3 | *
4 | * Copyright (c) 2019 - 2020 Marvin (DerFrZocker)
5 | *
6 | * Permission is hereby granted, free of charge, to any person obtaining a copy
7 | * of this software and associated documentation files (the "Software"), to deal
8 | * in the Software without restriction, including without limitation the rights
9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | * copies of the Software, and to permit persons to whom the Software is
11 | * furnished to do so, subject to the following conditions:
12 | *
13 | * The above copyright notice and this permission notice shall be included in all
14 | * copies or substantial portions of the Software.
15 | *
16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 | * SOFTWARE.
23 | *
24 | */
25 |
26 | package de.derfrzocker.custom.ore.generator.api;
27 |
28 | import org.bukkit.Material;
29 | import org.jetbrains.annotations.NotNull;
30 |
31 | public interface ChunkAccess {
32 |
33 |
34 | /**
35 | * Set the given material to the given position
36 | * The position is absolute from the world point and not relative from the chunk
37 | *
38 | * @param material to set
39 | * @param x position
40 | * @param y position
41 | * @param z position
42 | * @throws IllegalArgumentException if material is null
43 | */
44 | void setMaterial(@NotNull Material material, int x, int y, int z);
45 |
46 | /**
47 | * Return the material on the given position.
48 | * The position is absolute from the world point and not relative from the chunk
49 | *
50 | * @param x position
51 | * @param y position
52 | * @param z position
53 | * @return the material on the given position
54 | */
55 | @NotNull
56 | Material getMaterial(int x, int y, int z);
57 |
58 | }
59 |
--------------------------------------------------------------------------------
/api/src/main/java/de/derfrzocker/custom/ore/generator/api/ChunkInfo.java:
--------------------------------------------------------------------------------
1 | /*
2 | * MIT License
3 | *
4 | * Copyright (c) 2019 - 2020 Marvin (DerFrZocker)
5 | *
6 | * Permission is hereby granted, free of charge, to any person obtaining a copy
7 | * of this software and associated documentation files (the "Software"), to deal
8 | * in the Software without restriction, including without limitation the rights
9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | * copies of the Software, and to permit persons to whom the Software is
11 | * furnished to do so, subject to the following conditions:
12 | *
13 | * The above copyright notice and this permission notice shall be included in all
14 | * copies or substantial portions of the Software.
15 | *
16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 | * SOFTWARE.
23 | *
24 | */
25 |
26 | package de.derfrzocker.custom.ore.generator.api;
27 |
28 | public interface ChunkInfo {
29 |
30 | /**
31 | * @param x positions must between 0 and 15
32 | * @param z positions must between 0 and 15
33 | * @return the y coordinate of the highest block on the given x and z coordinate
34 | * @throws IllegalArgumentException if x or z are not between 0 and 15
35 | */
36 | int getHighestBlock(int x, int z);
37 |
38 | }
39 |
--------------------------------------------------------------------------------
/api/src/main/java/de/derfrzocker/custom/ore/generator/api/Info.java:
--------------------------------------------------------------------------------
1 | /*
2 | * MIT License
3 | *
4 | * Copyright (c) 2019 - 2020 Marvin (DerFrZocker)
5 | *
6 | * Permission is hereby granted, free of charge, to any person obtaining a copy
7 | * of this software and associated documentation files (the "Software"), to deal
8 | * in the Software without restriction, including without limitation the rights
9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | * copies of the Software, and to permit persons to whom the Software is
11 | * furnished to do so, subject to the following conditions:
12 | *
13 | * The above copyright notice and this permission notice shall be included in all
14 | * copies or substantial portions of the Software.
15 | *
16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 | * SOFTWARE.
23 | *
24 | */
25 |
26 | package de.derfrzocker.custom.ore.generator.api;
27 |
28 | import org.bukkit.Material;
29 | import org.jetbrains.annotations.NotNull;
30 |
31 | public interface Info {
32 |
33 | /**
34 | * @return a fancy name of the the holder of this Info
35 | */
36 | @NotNull
37 | String getDisplayName();
38 |
39 | /**
40 | * @return the Material which represent the holder of this Info
41 | */
42 | @NotNull
43 | Material getMaterial();
44 |
45 | /**
46 | * @return the Description of the holder of this Info
47 | */
48 | @NotNull
49 | String getDescription();
50 |
51 | }
52 |
--------------------------------------------------------------------------------
/api/src/main/java/de/derfrzocker/custom/ore/generator/api/InfoAble.java:
--------------------------------------------------------------------------------
1 | /*
2 | * MIT License
3 | *
4 | * Copyright (c) 2019 - 2020 Marvin (DerFrZocker)
5 | *
6 | * Permission is hereby granted, free of charge, to any person obtaining a copy
7 | * of this software and associated documentation files (the "Software"), to deal
8 | * in the Software without restriction, including without limitation the rights
9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | * copies of the Software, and to permit persons to whom the Software is
11 | * furnished to do so, subject to the following conditions:
12 | *
13 | * The above copyright notice and this permission notice shall be included in all
14 | * copies or substantial portions of the Software.
15 | *
16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 | * SOFTWARE.
23 | *
24 | */
25 |
26 | package de.derfrzocker.custom.ore.generator.api;
27 |
28 | import org.jetbrains.annotations.NotNull;
29 |
30 | public interface InfoAble {
31 |
32 | /**
33 | * @return the Info of this Object
34 | */
35 | @NotNull
36 | Info getInfo();
37 |
38 | }
39 |
--------------------------------------------------------------------------------
/api/src/main/java/de/derfrzocker/custom/ore/generator/api/OreGenerator.java:
--------------------------------------------------------------------------------
1 | /*
2 | * MIT License
3 | *
4 | * Copyright (c) 2019 - 2020 Marvin (DerFrZocker)
5 | *
6 | * Permission is hereby granted, free of charge, to any person obtaining a copy
7 | * of this software and associated documentation files (the "Software"), to deal
8 | * in the Software without restriction, including without limitation the rights
9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | * copies of the Software, and to permit persons to whom the Software is
11 | * furnished to do so, subject to the following conditions:
12 | *
13 | * The above copyright notice and this permission notice shall be included in all
14 | * copies or substantial portions of the Software.
15 | *
16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 | * SOFTWARE.
23 | *
24 | */
25 |
26 | package de.derfrzocker.custom.ore.generator.api;
27 |
28 | import org.bukkit.Location;
29 | import org.bukkit.block.Biome;
30 | import org.jetbrains.annotations.NotNull;
31 |
32 | import java.util.Random;
33 | import java.util.Set;
34 |
35 | /**
36 | * A OreGenerator generate veins of ores on the given locations
37 | */
38 | public interface OreGenerator extends InfoAble, OreSettingsAble {
39 |
40 | /**
41 | * Generates veins of ores on the given Locations
42 | * The given Locations are relative from the chunk position,
43 | * this means the x and z values of the locations have a range from 0 - 15
44 | *
45 | * @param config which get generated
46 | * @param chunkAccess to use
47 | * @param x position of the chunk
48 | * @param z position of the chunk
49 | * @param random to use
50 | * @param biome which get generated
51 | * @param locations where the veins should be generated
52 | * @throws IllegalArgumentException if config, world, random, biome or locations are null
53 | */
54 | void generate(@NotNull OreConfig config, @NotNull ChunkAccess chunkAccess, int x, int z, @NotNull Random random, @NotNull Biome biome, @NotNull Set locations);
55 |
56 | /**
57 | * The name is used to identify the OreGenerator,
58 | * each OreGenerator should have a unique name.
59 | * The name must match the following Regex: ^[A-Z_]*$
60 | * The name can not be empty
61 | *
62 | * @return the name of this OreGenerator
63 | */
64 | @NotNull
65 | String getName();
66 |
67 | }
68 |
--------------------------------------------------------------------------------
/api/src/main/java/de/derfrzocker/custom/ore/generator/api/OreSettingsAble.java:
--------------------------------------------------------------------------------
1 | /*
2 | * MIT License
3 | *
4 | * Copyright (c) 2019 - 2020 Marvin (DerFrZocker)
5 | *
6 | * Permission is hereby granted, free of charge, to any person obtaining a copy
7 | * of this software and associated documentation files (the "Software"), to deal
8 | * in the Software without restriction, including without limitation the rights
9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | * copies of the Software, and to permit persons to whom the Software is
11 | * furnished to do so, subject to the following conditions:
12 | *
13 | * The above copyright notice and this permission notice shall be included in all
14 | * copies or substantial portions of the Software.
15 | *
16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 | * SOFTWARE.
23 | *
24 | */
25 |
26 | package de.derfrzocker.custom.ore.generator.api;
27 |
28 | import org.jetbrains.annotations.NotNull;
29 |
30 | import java.util.Collections;
31 | import java.util.HashSet;
32 | import java.util.Set;
33 |
34 | public interface OreSettingsAble {
35 |
36 | Set EMPTY = Collections.unmodifiableSet(new HashSet<>());
37 |
38 | /**
39 | * @return a set with all OreSettings which this OreSettingAble needs
40 | */
41 | @NotNull
42 | Set getNeededOreSettings();
43 |
44 | /**
45 | * Returns the Info Object for the given OreSetting
46 | *
47 | * @param oreSetting to get the info from
48 | * @return the info of the given OreSetting
49 | * @throws IllegalArgumentException if oreSetting is null
50 | * @throws IllegalArgumentException if this OreSettingAble don't have the given oreSetting
51 | */
52 | @NotNull
53 | Info getOreSettingInfo(@NotNull OreSetting oreSetting);
54 |
55 | /**
56 | * Checks if the given value for the given oreSetting is save or not.
57 | * Save means, that passing an ore config with the given oreSetting and value will not cause definitely an error.
58 | *
59 | * @param oreSetting to check
60 | * @param value to check
61 | * @param oreConfig which gets the setting set
62 | * @return true if the given value is save, otherwise return false
63 | * @throws IllegalArgumentException if oreSetting or oreConfig is null
64 | * @throws IllegalArgumentException if the OreSettingAble does not need the given oreSetting
65 | */
66 | boolean isSaveValue(@NotNull OreSetting oreSetting, double value, @NotNull OreConfig oreConfig);
67 |
68 | }
69 |
--------------------------------------------------------------------------------
/api/src/main/java/de/derfrzocker/custom/ore/generator/api/WorldHandler.java:
--------------------------------------------------------------------------------
1 | /*
2 | * MIT License
3 | *
4 | * Copyright (c) 2019 - 2020 Marvin (DerFrZocker)
5 | *
6 | * Permission is hereby granted, free of charge, to any person obtaining a copy
7 | * of this software and associated documentation files (the "Software"), to deal
8 | * in the Software without restriction, including without limitation the rights
9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | * copies of the Software, and to permit persons to whom the Software is
11 | * furnished to do so, subject to the following conditions:
12 | *
13 | * The above copyright notice and this permission notice shall be included in all
14 | * copies or substantial portions of the Software.
15 | *
16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 | * SOFTWARE.
23 | *
24 | */
25 |
26 | package de.derfrzocker.custom.ore.generator.api;
27 |
28 | /**
29 | * Handel's integration to worlds
30 | */
31 | public interface WorldHandler {
32 |
33 | }
34 |
--------------------------------------------------------------------------------
/api/src/main/java/de/derfrzocker/custom/ore/generator/api/customdata/CustomDataApplier.java:
--------------------------------------------------------------------------------
1 | /*
2 | * MIT License
3 | *
4 | * Copyright (c) 2019 - 2020 Marvin (DerFrZocker)
5 | *
6 | * Permission is hereby granted, free of charge, to any person obtaining a copy
7 | * of this software and associated documentation files (the "Software"), to deal
8 | * in the Software without restriction, including without limitation the rights
9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | * copies of the Software, and to permit persons to whom the Software is
11 | * furnished to do so, subject to the following conditions:
12 | *
13 | * The above copyright notice and this permission notice shall be included in all
14 | * copies or substantial portions of the Software.
15 | *
16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 | * SOFTWARE.
23 | *
24 | */
25 |
26 | package de.derfrzocker.custom.ore.generator.api.customdata;
27 |
28 | import de.derfrzocker.custom.ore.generator.api.OreConfig;
29 | import org.jetbrains.annotations.NotNull;
30 |
31 | /**
32 | * A CustomDataApplier applies the CustomData to the block,
33 | * on the given location.
34 | * This Interface handel the nms part of the CustomData
35 | */
36 | public interface CustomDataApplier {
37 |
38 | /**
39 | * Applies a CustomData to the Block on the given Location.
40 | * This method may get called from differed Threads in the same time.
41 | *
42 | * @param oreConfig from which the block is
43 | * @param location nms BlockPosition
44 | * @param blockAccess nms world or BlockAccess
45 | * @throws IllegalArgumentException if any value is null
46 | */
47 | void apply(@NotNull OreConfig oreConfig, @NotNull Object location, @NotNull Object blockAccess);
48 |
49 | }
50 |
--------------------------------------------------------------------------------
/api/src/main/java/de/derfrzocker/custom/ore/generator/api/customdata/CustomDataType.java:
--------------------------------------------------------------------------------
1 | /*
2 | * MIT License
3 | *
4 | * Copyright (c) 2019 - 2020 Marvin (DerFrZocker)
5 | *
6 | * Permission is hereby granted, free of charge, to any person obtaining a copy
7 | * of this software and associated documentation files (the "Software"), to deal
8 | * in the Software without restriction, including without limitation the rights
9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | * copies of the Software, and to permit persons to whom the Software is
11 | * furnished to do so, subject to the following conditions:
12 | *
13 | * The above copyright notice and this permission notice shall be included in all
14 | * copies or substantial portions of the Software.
15 | *
16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 | * SOFTWARE.
23 | *
24 | */
25 |
26 | package de.derfrzocker.custom.ore.generator.api.customdata;
27 |
28 | /**
29 | * The types in which the value of a CustomData can be
30 | */
31 | public enum CustomDataType {
32 |
33 | STRING, INTEGER, DOUBLE, BOOLEAN
34 |
35 | }
36 |
--------------------------------------------------------------------------------
/api/src/main/java/de/derfrzocker/custom/ore/generator/api/customdata/LimitedValuesCustomData.java:
--------------------------------------------------------------------------------
1 | /*
2 | * MIT License
3 | *
4 | * Copyright (c) 2019 - 2020 Marvin (DerFrZocker)
5 | *
6 | * Permission is hereby granted, free of charge, to any person obtaining a copy
7 | * of this software and associated documentation files (the "Software"), to deal
8 | * in the Software without restriction, including without limitation the rights
9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | * copies of the Software, and to permit persons to whom the Software is
11 | * furnished to do so, subject to the following conditions:
12 | *
13 | * The above copyright notice and this permission notice shall be included in all
14 | * copies or substantial portions of the Software.
15 | *
16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 | * SOFTWARE.
23 | *
24 | */
25 |
26 | package de.derfrzocker.custom.ore.generator.api.customdata;
27 |
28 | import com.google.common.collect.Sets;
29 | import org.bukkit.Material;
30 | import org.jetbrains.annotations.NotNull;
31 |
32 | import java.util.Collections;
33 | import java.util.Set;
34 |
35 | public interface LimitedValuesCustomData extends CustomData {
36 |
37 | Set