├── .github
└── FUNDING.yml
├── .gitignore
├── LICENSE
├── README.md
├── api
├── pom.xml
└── src
│ └── main
│ └── java
│ └── de
│ └── derfrzocker
│ ├── feature
│ └── api
│ │ ├── Configuration.java
│ │ ├── ConfigurationAble.java
│ │ ├── ExtraValues.java
│ │ ├── Feature.java
│ │ ├── FeatureGenerator.java
│ │ ├── FeatureGeneratorConfiguration.java
│ │ ├── FeaturePlacementModifier.java
│ │ ├── LocatedAble.java
│ │ ├── PlacementModifierConfiguration.java
│ │ ├── Registries.java
│ │ ├── Registry.java
│ │ ├── RuleTest.java
│ │ ├── RuleTestType.java
│ │ ├── Setting.java
│ │ ├── Value.java
│ │ ├── ValueLocation.java
│ │ ├── ValueType.java
│ │ └── util
│ │ ├── Parser.java
│ │ ├── SaveAble.java
│ │ └── traverser
│ │ └── message
│ │ ├── KeyType.java
│ │ ├── MessageTraversAble.java
│ │ ├── StringFormatter.java
│ │ └── TraversKey.java
│ └── ore
│ └── control
│ └── api
│ ├── Biome.java
│ ├── FeatureGeneratorHook.java
│ ├── NMSReplacer.java
│ ├── OreControlManager.java
│ ├── OreControlRegistries.java
│ ├── PlacementModifierHook.java
│ ├── config
│ ├── Config.java
│ ├── ConfigInfo.java
│ ├── ConfigManager.java
│ ├── ConfigType.java
│ └── dao
│ │ ├── ConfigDao.java
│ │ ├── ConfigInfoDao.java
│ │ └── ExtraValueDao.java
│ └── util
│ └── Reloadable.java
├── common
├── pom.xml
└── src
│ └── main
│ └── java
│ └── de
│ └── derfrzocker
│ └── feature
│ └── common
│ ├── AbstractValue.java
│ ├── feature
│ ├── generator
│ │ └── configuration
│ │ │ ├── EmptyFeatureConfiguration.java
│ │ │ └── OreFeatureConfiguration.java
│ └── placement
│ │ ├── ActivationModifier.java
│ │ └── configuration
│ │ ├── ActivationConfiguration.java
│ │ ├── CountModifierConfiguration.java
│ │ ├── HeightRangeModifierConfiguration.java
│ │ ├── RarityModifierConfiguration.java
│ │ └── SurfaceWaterDepthModifierConfiguration.java
│ ├── ruletest
│ ├── AlwaysTrueRuleTest.java
│ ├── AlwaysTrueRuleTestType.java
│ ├── BlockMatchRuleTest.java
│ ├── BlockMatchRuleTestType.java
│ ├── BlockStateMatchRuleTest.java
│ ├── BlockStateMatchRuleTestType.java
│ ├── RandomBlockMatchRuleTest.java
│ ├── RandomBlockMatchRuleTestType.java
│ ├── RandomBlockStateMatchRuleTest.java
│ ├── RandomBlockStateMatchRuleTestType.java
│ ├── TagMatchRuleTest.java
│ └── TagMatchRuleTestType.java
│ ├── util
│ ├── MessageTraversUtil.java
│ └── ValueLocationUtil.java
│ └── value
│ ├── bool
│ ├── BooleanType.java
│ ├── BooleanValue.java
│ ├── FixedBooleanType.java
│ └── FixedBooleanValue.java
│ ├── number
│ ├── FixedFloatType.java
│ ├── FixedFloatValue.java
│ ├── FloatType.java
│ ├── FloatValue.java
│ ├── IntegerType.java
│ ├── IntegerValue.java
│ ├── NumberType.java
│ ├── NumberValue.java
│ └── integer
│ │ ├── Exp4jIntegerType.java
│ │ ├── Exp4jIntegerValue.java
│ │ ├── FixedDoubleToIntegerType.java
│ │ ├── FixedDoubleToIntegerValue.java
│ │ ├── FixedIntegerType.java
│ │ ├── FixedIntegerValue.java
│ │ ├── biased
│ │ ├── BiasedToBottomIntegerType.java
│ │ └── BiasedToBottomIntegerValue.java
│ │ ├── clamped
│ │ ├── ClampedIntegerType.java
│ │ ├── ClampedIntegerValue.java
│ │ ├── ClampedNormalIntegerType.java
│ │ └── ClampedNormalIntegerValue.java
│ │ ├── trapezoid
│ │ ├── TrapezoidIntegerType.java
│ │ └── TrapezoidIntegerValue.java
│ │ ├── uniform
│ │ ├── UniformIntegerType.java
│ │ └── UniformIntegerValue.java
│ │ └── weighted
│ │ ├── WeightedListIntegerType.java
│ │ └── WeightedListIntegerValue.java
│ ├── offset
│ ├── AboveBottomOffsetIntegerType.java
│ ├── AboveBottomOffsetIntegerValue.java
│ ├── BelowTopOffsetIntegerType.java
│ └── BelowTopOffsetIntegerValue.java
│ └── target
│ ├── FixedTargetListType.java
│ ├── FixedTargetListValue.java
│ ├── TargetBlockState.java
│ ├── TargetListType.java
│ └── TargetListValue.java
├── impl
├── pom.xml
├── v1_18_R1
│ ├── pom.xml
│ └── src
│ │ └── main
│ │ └── java
│ │ └── de
│ │ └── derfrzocker
│ │ ├── feature
│ │ └── impl
│ │ │ └── v1_18_R1
│ │ │ ├── feature
│ │ │ └── generator
│ │ │ │ ├── GlowstoneBlobFeatureGenerator.java
│ │ │ │ ├── MinecraftFeatureGenerator.java
│ │ │ │ ├── OreFeatureGenerator.java
│ │ │ │ ├── ScatteredOreGenerator.java
│ │ │ │ └── configuration
│ │ │ │ └── OreFeatureConfiguration.java
│ │ │ ├── placement
│ │ │ ├── CountModifier.java
│ │ │ ├── HeightRangeModifier.java
│ │ │ ├── MinecraftPlacementModifier.java
│ │ │ ├── RarityModifier.java
│ │ │ ├── SurfaceRelativeThresholdModifier.java
│ │ │ ├── SurfaceWaterDepthModifier.java
│ │ │ └── configuration
│ │ │ │ └── SurfaceRelativeThresholdModifierConfiguration.java
│ │ │ └── value
│ │ │ ├── heightmap
│ │ │ ├── HeightmapType.java
│ │ │ └── HeightmapValue.java
│ │ │ ├── offset
│ │ │ ├── NMSAboveBottomOffsetIntegerValue.java
│ │ │ └── NMSBelowTopOffsetIntegerValue.java
│ │ │ └── target
│ │ │ ├── TargetType.java
│ │ │ └── TargetValue.java
│ │ └── ore
│ │ └── control
│ │ └── impl
│ │ └── v1_18_R1
│ │ ├── ConversionUtil.java
│ │ ├── NMSReflectionNames.java
│ │ ├── NMSReplacer_v1_18_R1.java
│ │ ├── feature
│ │ └── generator
│ │ │ ├── GlowstoneBlobFeatureGeneratorHook.java
│ │ │ ├── MinecraftFeatureGeneratorHook.java
│ │ │ ├── OreFeatureGeneratorHook.java
│ │ │ └── ScatteredOreFeatureGeneratorHook.java
│ │ └── placement
│ │ ├── CountModifierHook.java
│ │ ├── HeightRangeModifierHook.java
│ │ ├── MinecraftPlacementModifierHook.java
│ │ ├── RarityModifierHook.java
│ │ ├── SurfaceRelativeThresholdModifierHook.java
│ │ └── SurfaceWaterDepthModifierHook.java
├── v1_18_R2
│ ├── pom.xml
│ └── src
│ │ └── main
│ │ └── java
│ │ └── de
│ │ └── derfrzocker
│ │ ├── feature
│ │ └── impl
│ │ │ └── v1_18_R2
│ │ │ ├── feature
│ │ │ └── generator
│ │ │ │ ├── GlowstoneBlobFeatureGenerator.java
│ │ │ │ ├── MinecraftFeatureGenerator.java
│ │ │ │ ├── OreFeatureGenerator.java
│ │ │ │ ├── ScatteredOreGenerator.java
│ │ │ │ └── configuration
│ │ │ │ └── OreFeatureConfiguration.java
│ │ │ ├── placement
│ │ │ ├── CountModifier.java
│ │ │ ├── HeightRangeModifier.java
│ │ │ ├── MinecraftPlacementModifier.java
│ │ │ ├── RarityModifier.java
│ │ │ ├── SurfaceRelativeThresholdModifier.java
│ │ │ ├── SurfaceWaterDepthModifier.java
│ │ │ └── configuration
│ │ │ │ └── SurfaceRelativeThresholdModifierConfiguration.java
│ │ │ └── value
│ │ │ ├── heightmap
│ │ │ ├── HeightmapType.java
│ │ │ └── HeightmapValue.java
│ │ │ ├── offset
│ │ │ ├── NMSAboveBottomOffsetIntegerValue.java
│ │ │ └── NMSBelowTopOffsetIntegerValue.java
│ │ │ └── target
│ │ │ ├── TargetType.java
│ │ │ └── TargetValue.java
│ │ └── ore
│ │ └── control
│ │ └── impl
│ │ └── v1_18_R2
│ │ ├── ConversionUtil.java
│ │ ├── NMSReflectionNames.java
│ │ ├── NMSReplacer_v1_18_R2.java
│ │ ├── feature
│ │ └── generator
│ │ │ ├── GlowstoneBlobFeatureGeneratorHook.java
│ │ │ ├── MinecraftFeatureGeneratorHook.java
│ │ │ ├── OreFeatureGeneratorHook.java
│ │ │ └── ScatteredOreFeatureGeneratorHook.java
│ │ └── placement
│ │ ├── ActivationModifierHook.java
│ │ ├── CountModifierHook.java
│ │ ├── HeightRangeModifierHook.java
│ │ ├── MinecraftPlacementModifierHook.java
│ │ ├── RarityModifierHook.java
│ │ ├── SurfaceRelativeThresholdModifierHook.java
│ │ └── SurfaceWaterDepthModifierHook.java
├── v1_19_R1
│ ├── pom.xml
│ └── src
│ │ └── main
│ │ └── java
│ │ └── de
│ │ └── derfrzocker
│ │ ├── feature
│ │ └── impl
│ │ │ └── v1_19_R1
│ │ │ ├── extra
│ │ │ └── OreVeinHandler.java
│ │ │ ├── feature
│ │ │ └── generator
│ │ │ │ ├── GlowstoneBlobFeatureGenerator.java
│ │ │ │ ├── MinecraftFeatureGenerator.java
│ │ │ │ ├── OreFeatureGenerator.java
│ │ │ │ ├── ScatteredOreGenerator.java
│ │ │ │ └── configuration
│ │ │ │ └── OreFeatureConfiguration.java
│ │ │ ├── placement
│ │ │ ├── CountModifier.java
│ │ │ ├── HeightRangeModifier.java
│ │ │ ├── MinecraftPlacementModifier.java
│ │ │ ├── RarityModifier.java
│ │ │ ├── SurfaceRelativeThresholdModifier.java
│ │ │ ├── SurfaceWaterDepthModifier.java
│ │ │ └── configuration
│ │ │ │ └── SurfaceRelativeThresholdModifierConfiguration.java
│ │ │ └── value
│ │ │ ├── heightmap
│ │ │ ├── HeightmapType.java
│ │ │ └── HeightmapValue.java
│ │ │ ├── offset
│ │ │ ├── NMSAboveBottomOffsetIntegerValue.java
│ │ │ └── NMSBelowTopOffsetIntegerValue.java
│ │ │ └── target
│ │ │ ├── TargetType.java
│ │ │ └── TargetValue.java
│ │ └── ore
│ │ └── control
│ │ └── impl
│ │ └── v1_19_R1
│ │ ├── ConversionUtil.java
│ │ ├── NMSReflectionNames.java
│ │ ├── NMSReplacer_v1_19_R1.java
│ │ ├── feature
│ │ └── generator
│ │ │ ├── GlowstoneBlobFeatureGeneratorHook.java
│ │ │ ├── MinecraftFeatureGeneratorHook.java
│ │ │ ├── OreFeatureGeneratorHook.java
│ │ │ └── ScatteredOreFeatureGeneratorHook.java
│ │ └── placement
│ │ ├── ActivationModifierHook.java
│ │ ├── CountModifierHook.java
│ │ ├── HeightRangeModifierHook.java
│ │ ├── MinecraftPlacementModifierHook.java
│ │ ├── RarityModifierHook.java
│ │ ├── SurfaceRelativeThresholdModifierHook.java
│ │ └── SurfaceWaterDepthModifierHook.java
├── v1_19_R2
│ ├── pom.xml
│ └── src
│ │ └── main
│ │ └── java
│ │ └── de
│ │ └── derfrzocker
│ │ ├── feature
│ │ └── impl
│ │ │ └── v1_19_R2
│ │ │ ├── extra
│ │ │ └── OreVeinHandler.java
│ │ │ ├── feature
│ │ │ └── generator
│ │ │ │ ├── GlowstoneBlobFeatureGenerator.java
│ │ │ │ ├── MinecraftFeatureGenerator.java
│ │ │ │ ├── OreFeatureGenerator.java
│ │ │ │ ├── ScatteredOreGenerator.java
│ │ │ │ └── configuration
│ │ │ │ └── OreFeatureConfiguration.java
│ │ │ ├── placement
│ │ │ ├── CountModifier.java
│ │ │ ├── HeightRangeModifier.java
│ │ │ ├── MinecraftPlacementModifier.java
│ │ │ ├── RarityModifier.java
│ │ │ ├── SurfaceRelativeThresholdModifier.java
│ │ │ ├── SurfaceWaterDepthModifier.java
│ │ │ └── configuration
│ │ │ │ └── SurfaceRelativeThresholdModifierConfiguration.java
│ │ │ └── value
│ │ │ ├── heightmap
│ │ │ ├── HeightmapType.java
│ │ │ └── HeightmapValue.java
│ │ │ ├── offset
│ │ │ ├── NMSAboveBottomOffsetIntegerValue.java
│ │ │ └── NMSBelowTopOffsetIntegerValue.java
│ │ │ └── target
│ │ │ ├── TargetType.java
│ │ │ └── TargetValue.java
│ │ └── ore
│ │ └── control
│ │ └── impl
│ │ └── v1_19_R2
│ │ ├── ConversionUtil.java
│ │ ├── NMSReflectionNames.java
│ │ ├── NMSReplacer_v1_19_R2.java
│ │ ├── feature
│ │ └── generator
│ │ │ ├── GlowstoneBlobFeatureGeneratorHook.java
│ │ │ ├── MinecraftFeatureGeneratorHook.java
│ │ │ ├── OreFeatureGeneratorHook.java
│ │ │ └── ScatteredOreFeatureGeneratorHook.java
│ │ └── placement
│ │ ├── ActivationModifierHook.java
│ │ ├── CountModifierHook.java
│ │ ├── HeightRangeModifierHook.java
│ │ ├── MinecraftPlacementModifierHook.java
│ │ ├── RarityModifierHook.java
│ │ ├── SurfaceRelativeThresholdModifierHook.java
│ │ └── SurfaceWaterDepthModifierHook.java
├── v1_19_R3
│ ├── pom.xml
│ └── src
│ │ └── main
│ │ └── java
│ │ └── de
│ │ └── derfrzocker
│ │ ├── feature
│ │ └── impl
│ │ │ └── v1_19_R3
│ │ │ ├── extra
│ │ │ └── OreVeinHandler.java
│ │ │ ├── feature
│ │ │ └── generator
│ │ │ │ ├── EmptyConfigurationGenerator.java
│ │ │ │ ├── MinecraftFeatureGenerator.java
│ │ │ │ └── OreConfigurationGenerator.java
│ │ │ ├── placement
│ │ │ ├── CountModifier.java
│ │ │ ├── HeightRangeModifier.java
│ │ │ ├── MinecraftPlacementModifier.java
│ │ │ ├── RarityModifier.java
│ │ │ ├── SurfaceRelativeThresholdModifier.java
│ │ │ ├── SurfaceWaterDepthModifier.java
│ │ │ └── configuration
│ │ │ │ └── SurfaceRelativeThresholdModifierConfiguration.java
│ │ │ └── value
│ │ │ ├── heightmap
│ │ │ ├── HeightmapType.java
│ │ │ └── HeightmapValue.java
│ │ │ └── offset
│ │ │ ├── NMSAboveBottomOffsetIntegerValue.java
│ │ │ └── NMSBelowTopOffsetIntegerValue.java
│ │ └── ore
│ │ └── control
│ │ └── impl
│ │ └── v1_19_R3
│ │ ├── ConversionUtil.java
│ │ ├── NMSReflectionNames.java
│ │ ├── NMSReplacer_v1_19_R3.java
│ │ ├── feature
│ │ └── generator
│ │ │ ├── EmptyConfigurationGeneratorHook.java
│ │ │ ├── MinecraftFeatureGeneratorHook.java
│ │ │ └── OreConfigurationGeneratorHook.java
│ │ └── placement
│ │ ├── ActivationModifierHook.java
│ │ ├── CountModifierHook.java
│ │ ├── HeightRangeModifierHook.java
│ │ ├── MinecraftPlacementModifierHook.java
│ │ ├── RarityModifierHook.java
│ │ ├── SurfaceRelativeThresholdModifierHook.java
│ │ └── SurfaceWaterDepthModifierHook.java
├── v1_20_R1
│ ├── pom.xml
│ └── src
│ │ └── main
│ │ └── java
│ │ └── de
│ │ └── derfrzocker
│ │ ├── feature
│ │ └── impl
│ │ │ └── v1_20_R1
│ │ │ ├── extra
│ │ │ └── OreVeinHandler.java
│ │ │ ├── feature
│ │ │ └── generator
│ │ │ │ ├── EmptyConfigurationGenerator.java
│ │ │ │ ├── MinecraftFeatureGenerator.java
│ │ │ │ └── OreConfigurationGenerator.java
│ │ │ ├── placement
│ │ │ ├── CountModifier.java
│ │ │ ├── HeightRangeModifier.java
│ │ │ ├── MinecraftPlacementModifier.java
│ │ │ ├── RarityModifier.java
│ │ │ ├── SurfaceRelativeThresholdModifier.java
│ │ │ ├── SurfaceWaterDepthModifier.java
│ │ │ └── configuration
│ │ │ │ └── SurfaceRelativeThresholdModifierConfiguration.java
│ │ │ └── value
│ │ │ ├── heightmap
│ │ │ ├── HeightmapType.java
│ │ │ └── HeightmapValue.java
│ │ │ └── offset
│ │ │ ├── NMSAboveBottomOffsetIntegerValue.java
│ │ │ └── NMSBelowTopOffsetIntegerValue.java
│ │ └── ore
│ │ └── control
│ │ └── impl
│ │ └── v1_20_R1
│ │ ├── ConversionUtil.java
│ │ ├── NMSReflectionNames.java
│ │ ├── NMSReplacer_v1_20_R1.java
│ │ ├── feature
│ │ └── generator
│ │ │ ├── EmptyConfigurationGeneratorHook.java
│ │ │ ├── MinecraftFeatureGeneratorHook.java
│ │ │ └── OreConfigurationGeneratorHook.java
│ │ └── placement
│ │ ├── ActivationModifierHook.java
│ │ ├── CountModifierHook.java
│ │ ├── HeightRangeModifierHook.java
│ │ ├── MinecraftPlacementModifierHook.java
│ │ ├── RarityModifierHook.java
│ │ ├── SurfaceRelativeThresholdModifierHook.java
│ │ └── SurfaceWaterDepthModifierHook.java
├── v1_20_R2
│ ├── pom.xml
│ └── src
│ │ └── main
│ │ └── java
│ │ └── de
│ │ └── derfrzocker
│ │ ├── feature
│ │ └── impl
│ │ │ └── v1_20_R2
│ │ │ ├── extra
│ │ │ └── OreVeinHandler.java
│ │ │ ├── feature
│ │ │ └── generator
│ │ │ │ ├── EmptyConfigurationGenerator.java
│ │ │ │ ├── MinecraftFeatureGenerator.java
│ │ │ │ └── OreConfigurationGenerator.java
│ │ │ ├── placement
│ │ │ ├── CountModifier.java
│ │ │ ├── HeightRangeModifier.java
│ │ │ ├── MinecraftPlacementModifier.java
│ │ │ ├── RarityModifier.java
│ │ │ ├── SurfaceRelativeThresholdModifier.java
│ │ │ ├── SurfaceWaterDepthModifier.java
│ │ │ └── configuration
│ │ │ │ └── SurfaceRelativeThresholdModifierConfiguration.java
│ │ │ └── value
│ │ │ ├── heightmap
│ │ │ ├── HeightmapType.java
│ │ │ └── HeightmapValue.java
│ │ │ └── offset
│ │ │ ├── NMSAboveBottomOffsetIntegerValue.java
│ │ │ └── NMSBelowTopOffsetIntegerValue.java
│ │ └── ore
│ │ └── control
│ │ └── impl
│ │ └── v1_20_R2
│ │ ├── ConversionUtil.java
│ │ ├── NMSReflectionNames.java
│ │ ├── NMSReplacer_v1_20_R2.java
│ │ ├── feature
│ │ └── generator
│ │ │ ├── EmptyConfigurationGeneratorHook.java
│ │ │ ├── MinecraftFeatureGeneratorHook.java
│ │ │ └── OreConfigurationGeneratorHook.java
│ │ └── placement
│ │ ├── ActivationModifierHook.java
│ │ ├── CountModifierHook.java
│ │ ├── HeightRangeModifierHook.java
│ │ ├── MinecraftPlacementModifierHook.java
│ │ ├── RarityModifierHook.java
│ │ ├── SurfaceRelativeThresholdModifierHook.java
│ │ └── SurfaceWaterDepthModifierHook.java
├── v1_20_R3
│ ├── pom.xml
│ └── src
│ │ └── main
│ │ └── java
│ │ └── de
│ │ └── derfrzocker
│ │ ├── feature
│ │ └── impl
│ │ │ └── v1_20_R3
│ │ │ ├── extra
│ │ │ └── OreVeinHandler.java
│ │ │ ├── feature
│ │ │ └── generator
│ │ │ │ ├── EmptyConfigurationGenerator.java
│ │ │ │ ├── MinecraftFeatureGenerator.java
│ │ │ │ └── OreConfigurationGenerator.java
│ │ │ ├── placement
│ │ │ ├── CountModifier.java
│ │ │ ├── HeightRangeModifier.java
│ │ │ ├── MinecraftPlacementModifier.java
│ │ │ ├── RarityModifier.java
│ │ │ ├── SurfaceRelativeThresholdModifier.java
│ │ │ ├── SurfaceWaterDepthModifier.java
│ │ │ └── configuration
│ │ │ │ └── SurfaceRelativeThresholdModifierConfiguration.java
│ │ │ └── value
│ │ │ ├── heightmap
│ │ │ ├── HeightmapType.java
│ │ │ └── HeightmapValue.java
│ │ │ └── offset
│ │ │ ├── NMSAboveBottomOffsetIntegerValue.java
│ │ │ └── NMSBelowTopOffsetIntegerValue.java
│ │ └── ore
│ │ └── control
│ │ └── impl
│ │ └── v1_20_R3
│ │ ├── ConversionUtil.java
│ │ ├── NMSReflectionNames.java
│ │ ├── NMSReplacer_v1_20_R3.java
│ │ ├── feature
│ │ └── generator
│ │ │ ├── EmptyConfigurationGeneratorHook.java
│ │ │ ├── MinecraftFeatureGeneratorHook.java
│ │ │ └── OreConfigurationGeneratorHook.java
│ │ └── placement
│ │ ├── ActivationModifierHook.java
│ │ ├── CountModifierHook.java
│ │ ├── HeightRangeModifierHook.java
│ │ ├── MinecraftPlacementModifierHook.java
│ │ ├── RarityModifierHook.java
│ │ ├── SurfaceRelativeThresholdModifierHook.java
│ │ └── SurfaceWaterDepthModifierHook.java
├── v1_20_R4
│ ├── pom.xml
│ └── src
│ │ └── main
│ │ └── java
│ │ └── de
│ │ └── derfrzocker
│ │ ├── feature
│ │ └── impl
│ │ │ └── v1_20_R4
│ │ │ ├── extra
│ │ │ └── OreVeinHandler.java
│ │ │ ├── feature
│ │ │ └── generator
│ │ │ │ ├── EmptyConfigurationGenerator.java
│ │ │ │ ├── MinecraftFeatureGenerator.java
│ │ │ │ └── OreConfigurationGenerator.java
│ │ │ ├── placement
│ │ │ ├── CountModifier.java
│ │ │ ├── HeightRangeModifier.java
│ │ │ ├── MinecraftPlacementModifier.java
│ │ │ ├── RarityModifier.java
│ │ │ ├── SurfaceRelativeThresholdModifier.java
│ │ │ ├── SurfaceWaterDepthModifier.java
│ │ │ └── configuration
│ │ │ │ └── SurfaceRelativeThresholdModifierConfiguration.java
│ │ │ └── value
│ │ │ ├── heightmap
│ │ │ ├── HeightmapType.java
│ │ │ └── HeightmapValue.java
│ │ │ └── offset
│ │ │ ├── NMSAboveBottomOffsetIntegerValue.java
│ │ │ └── NMSBelowTopOffsetIntegerValue.java
│ │ └── ore
│ │ └── control
│ │ └── impl
│ │ └── v1_20_R4
│ │ ├── ConversionUtil.java
│ │ ├── NMSReflectionNames.java
│ │ ├── NMSReplacer_v1_20_R4.java
│ │ ├── feature
│ │ └── generator
│ │ │ ├── EmptyConfigurationGeneratorHook.java
│ │ │ ├── MinecraftFeatureGeneratorHook.java
│ │ │ └── OreConfigurationGeneratorHook.java
│ │ └── placement
│ │ ├── ActivationModifierHook.java
│ │ ├── CountModifierHook.java
│ │ ├── HeightRangeModifierHook.java
│ │ ├── MinecraftPlacementModifierHook.java
│ │ ├── RarityModifierHook.java
│ │ ├── SurfaceRelativeThresholdModifierHook.java
│ │ └── SurfaceWaterDepthModifierHook.java
├── v1_21_R1
│ ├── pom.xml
│ └── src
│ │ └── main
│ │ └── java
│ │ └── de
│ │ └── derfrzocker
│ │ ├── feature
│ │ └── impl
│ │ │ └── v1_21_R1
│ │ │ ├── extra
│ │ │ └── OreVeinHandler.java
│ │ │ ├── feature
│ │ │ └── generator
│ │ │ │ ├── EmptyConfigurationGenerator.java
│ │ │ │ ├── MinecraftFeatureGenerator.java
│ │ │ │ └── OreConfigurationGenerator.java
│ │ │ ├── placement
│ │ │ ├── CountModifier.java
│ │ │ ├── HeightRangeModifier.java
│ │ │ ├── MinecraftPlacementModifier.java
│ │ │ ├── RarityModifier.java
│ │ │ ├── SurfaceRelativeThresholdModifier.java
│ │ │ ├── SurfaceWaterDepthModifier.java
│ │ │ └── configuration
│ │ │ │ └── SurfaceRelativeThresholdModifierConfiguration.java
│ │ │ └── value
│ │ │ ├── heightmap
│ │ │ ├── HeightmapType.java
│ │ │ └── HeightmapValue.java
│ │ │ └── offset
│ │ │ ├── NMSAboveBottomOffsetIntegerValue.java
│ │ │ └── NMSBelowTopOffsetIntegerValue.java
│ │ └── ore
│ │ └── control
│ │ └── impl
│ │ └── v1_21_R1
│ │ ├── ConversionUtil.java
│ │ ├── NMSReflectionNames.java
│ │ ├── NMSReplacer_v1_21_R1.java
│ │ ├── feature
│ │ └── generator
│ │ │ ├── EmptyConfigurationGeneratorHook.java
│ │ │ ├── MinecraftFeatureGeneratorHook.java
│ │ │ └── OreConfigurationGeneratorHook.java
│ │ └── placement
│ │ ├── ActivationModifierHook.java
│ │ ├── CountModifierHook.java
│ │ ├── HeightRangeModifierHook.java
│ │ ├── MinecraftPlacementModifierHook.java
│ │ ├── RarityModifierHook.java
│ │ ├── SurfaceRelativeThresholdModifierHook.java
│ │ └── SurfaceWaterDepthModifierHook.java
├── v1_21_R2
│ ├── pom.xml
│ └── src
│ │ └── main
│ │ └── java
│ │ └── de
│ │ └── derfrzocker
│ │ ├── feature
│ │ └── impl
│ │ │ └── v1_21_R2
│ │ │ ├── extra
│ │ │ └── OreVeinHandler.java
│ │ │ ├── feature
│ │ │ └── generator
│ │ │ │ ├── EmptyConfigurationGenerator.java
│ │ │ │ ├── MinecraftFeatureGenerator.java
│ │ │ │ └── OreConfigurationGenerator.java
│ │ │ ├── placement
│ │ │ ├── CountModifier.java
│ │ │ ├── HeightRangeModifier.java
│ │ │ ├── MinecraftPlacementModifier.java
│ │ │ ├── RarityModifier.java
│ │ │ ├── SurfaceRelativeThresholdModifier.java
│ │ │ ├── SurfaceWaterDepthModifier.java
│ │ │ └── configuration
│ │ │ │ └── SurfaceRelativeThresholdModifierConfiguration.java
│ │ │ └── value
│ │ │ ├── heightmap
│ │ │ ├── HeightmapType.java
│ │ │ └── HeightmapValue.java
│ │ │ └── offset
│ │ │ ├── NMSAboveBottomOffsetIntegerValue.java
│ │ │ └── NMSBelowTopOffsetIntegerValue.java
│ │ └── ore
│ │ └── control
│ │ └── impl
│ │ └── v1_21_R2
│ │ ├── ConversionUtil.java
│ │ ├── NMSReflectionNames.java
│ │ ├── NMSReplacer_v1_21_R2.java
│ │ ├── feature
│ │ └── generator
│ │ │ ├── EmptyConfigurationGeneratorHook.java
│ │ │ ├── MinecraftFeatureGeneratorHook.java
│ │ │ └── OreConfigurationGeneratorHook.java
│ │ └── placement
│ │ ├── ActivationModifierHook.java
│ │ ├── CountModifierHook.java
│ │ ├── HeightRangeModifierHook.java
│ │ ├── MinecraftPlacementModifierHook.java
│ │ ├── RarityModifierHook.java
│ │ ├── SurfaceRelativeThresholdModifierHook.java
│ │ └── SurfaceWaterDepthModifierHook.java
├── v1_21_R3
│ ├── pom.xml
│ └── src
│ │ └── main
│ │ └── java
│ │ └── de
│ │ └── derfrzocker
│ │ ├── feature
│ │ └── impl
│ │ │ └── v1_21_R3
│ │ │ ├── extra
│ │ │ └── OreVeinHandler.java
│ │ │ ├── feature
│ │ │ └── generator
│ │ │ │ ├── EmptyConfigurationGenerator.java
│ │ │ │ ├── MinecraftFeatureGenerator.java
│ │ │ │ └── OreConfigurationGenerator.java
│ │ │ ├── placement
│ │ │ ├── CountModifier.java
│ │ │ ├── HeightRangeModifier.java
│ │ │ ├── MinecraftPlacementModifier.java
│ │ │ ├── RarityModifier.java
│ │ │ ├── SurfaceRelativeThresholdModifier.java
│ │ │ ├── SurfaceWaterDepthModifier.java
│ │ │ └── configuration
│ │ │ │ └── SurfaceRelativeThresholdModifierConfiguration.java
│ │ │ └── value
│ │ │ ├── heightmap
│ │ │ ├── HeightmapType.java
│ │ │ └── HeightmapValue.java
│ │ │ └── offset
│ │ │ ├── NMSAboveBottomOffsetIntegerValue.java
│ │ │ └── NMSBelowTopOffsetIntegerValue.java
│ │ └── ore
│ │ └── control
│ │ └── impl
│ │ └── v1_21_R3
│ │ ├── ConversionUtil.java
│ │ ├── NMSReflectionNames.java
│ │ ├── NMSReplacer_v1_21_R3.java
│ │ ├── feature
│ │ └── generator
│ │ │ ├── EmptyConfigurationGeneratorHook.java
│ │ │ ├── MinecraftFeatureGeneratorHook.java
│ │ │ └── OreConfigurationGeneratorHook.java
│ │ └── placement
│ │ ├── ActivationModifierHook.java
│ │ ├── CountModifierHook.java
│ │ ├── HeightRangeModifierHook.java
│ │ ├── MinecraftPlacementModifierHook.java
│ │ ├── RarityModifierHook.java
│ │ ├── SurfaceRelativeThresholdModifierHook.java
│ │ └── SurfaceWaterDepthModifierHook.java
└── v1_21_R4
│ ├── pom.xml
│ └── src
│ └── main
│ └── java
│ └── de
│ └── derfrzocker
│ ├── feature
│ └── impl
│ │ └── v1_21_R4
│ │ ├── extra
│ │ └── OreVeinHandler.java
│ │ ├── feature
│ │ └── generator
│ │ │ ├── EmptyConfigurationGenerator.java
│ │ │ ├── MinecraftFeatureGenerator.java
│ │ │ └── OreConfigurationGenerator.java
│ │ ├── placement
│ │ ├── CountModifier.java
│ │ ├── HeightRangeModifier.java
│ │ ├── MinecraftPlacementModifier.java
│ │ ├── RarityModifier.java
│ │ ├── SurfaceRelativeThresholdModifier.java
│ │ ├── SurfaceWaterDepthModifier.java
│ │ └── configuration
│ │ │ └── SurfaceRelativeThresholdModifierConfiguration.java
│ │ └── value
│ │ ├── heightmap
│ │ ├── HeightmapType.java
│ │ └── HeightmapValue.java
│ │ └── offset
│ │ ├── NMSAboveBottomOffsetIntegerValue.java
│ │ └── NMSBelowTopOffsetIntegerValue.java
│ └── ore
│ └── control
│ └── impl
│ └── v1_21_R4
│ ├── ConversionUtil.java
│ ├── NMSReflectionNames.java
│ ├── NMSReplacer_v1_21_R4.java
│ ├── feature
│ └── generator
│ │ ├── EmptyConfigurationGeneratorHook.java
│ │ ├── MinecraftFeatureGeneratorHook.java
│ │ └── OreConfigurationGeneratorHook.java
│ └── placement
│ ├── ActivationModifierHook.java
│ ├── CountModifierHook.java
│ ├── HeightRangeModifierHook.java
│ ├── MinecraftPlacementModifierHook.java
│ ├── RarityModifierHook.java
│ ├── SurfaceRelativeThresholdModifierHook.java
│ └── SurfaceWaterDepthModifierHook.java
├── ore-control
├── pom.xml
└── src
│ ├── main
│ ├── java
│ │ └── de
│ │ │ └── derfrzocker
│ │ │ └── ore
│ │ │ └── control
│ │ │ ├── OreControl.java
│ │ │ ├── Stats.java
│ │ │ ├── cache
│ │ │ ├── config
│ │ │ │ ├── BiomeConfigCacheSlice.java
│ │ │ │ ├── ConfigCache.java
│ │ │ │ ├── ConfigCacheSlice.java
│ │ │ │ ├── DefaultConfigCache.java
│ │ │ │ ├── GenerationConfigCache.java
│ │ │ │ ├── GuiConfigCache.java
│ │ │ │ ├── StandardConfigCache.java
│ │ │ │ └── part
│ │ │ │ │ ├── BiomeConfigCachePart.java
│ │ │ │ │ └── FeatureConfigCachePart.java
│ │ │ ├── extra
│ │ │ │ ├── ExtraValueCache.java
│ │ │ │ └── ExtraValueCacheSlice.java
│ │ │ └── info
│ │ │ │ └── ConfigInfoCache.java
│ │ │ ├── gui
│ │ │ ├── GuiValuesHolder.java
│ │ │ ├── OreControlGuiManager.java
│ │ │ ├── PlayerGuiData.java
│ │ │ ├── ScreenUtil.java
│ │ │ ├── Screens.java
│ │ │ ├── SettingWrapper.java
│ │ │ ├── info
│ │ │ │ ├── InfoLink.java
│ │ │ │ ├── InfoLinkData.java
│ │ │ │ └── InfoUtil.java
│ │ │ └── screen
│ │ │ │ ├── BiomeScreen.java
│ │ │ │ ├── ConfigInfoScreen.java
│ │ │ │ ├── ConfigInfosScreen.java
│ │ │ │ ├── ExtraValuesScreen.java
│ │ │ │ ├── FeatureSelectionScreen.java
│ │ │ │ ├── FeatureSettingsScreen.java
│ │ │ │ ├── GeneratorSettingsScreen.java
│ │ │ │ ├── LanguageScreen.java
│ │ │ │ ├── PlacementModifierSettingsScreen.java
│ │ │ │ ├── extra
│ │ │ │ └── BigOreVeinScreen.java
│ │ │ │ ├── other
│ │ │ │ ├── BlockTagScreen.java
│ │ │ │ └── TargetBlockStateScreen.java
│ │ │ │ ├── ruletest
│ │ │ │ ├── BlockMatchRuleTestScreen.java
│ │ │ │ ├── BlockStateMatchRuleTestScreen.java
│ │ │ │ └── TagRuleTestScreen.java
│ │ │ │ └── value
│ │ │ │ ├── BiasedToBottomIntegerScreen.java
│ │ │ │ ├── BooleanScreen.java
│ │ │ │ ├── ClampedIntegerScreen.java
│ │ │ │ ├── FixedTargetListScreen.java
│ │ │ │ ├── NumberEditScreen.java
│ │ │ │ ├── OffsetIntegerScreens.java
│ │ │ │ ├── TrapezoidIntegerScreen.java
│ │ │ │ ├── UniformIntegerScreen.java
│ │ │ │ └── WeightedListIntegerScreen.java
│ │ │ ├── impl
│ │ │ └── BasicConfigManager.java
│ │ │ ├── interactions
│ │ │ ├── BlockInteractionListener.java
│ │ │ └── BlockInteractionManager.java
│ │ │ └── traverser
│ │ │ ├── BasicStringFormatter.java
│ │ │ └── ValueTraverser.java
│ └── resources
│ │ ├── gui
│ │ └── default
│ │ │ ├── all_settings_screen.yml
│ │ │ ├── biome_icons.yml
│ │ │ ├── biome_screen.yml
│ │ │ ├── config_info_screen.yml
│ │ │ ├── config_infos_screen.yml
│ │ │ ├── design.yml
│ │ │ ├── extra
│ │ │ └── big_ore_vein_screen.yml
│ │ │ ├── extra_values_screen.yml
│ │ │ ├── feature_icons.yml
│ │ │ ├── feature_selection_screen.yml
│ │ │ ├── feature_settings_screen.yml
│ │ │ ├── generator_icons.yml
│ │ │ ├── language_screen.yml
│ │ │ ├── other
│ │ │ ├── block_tag_screen.yml
│ │ │ └── target_block_state_screen.yml
│ │ │ ├── rule_test
│ │ │ ├── block_match_screen.yml
│ │ │ ├── block_state_match_screen.yml
│ │ │ └── tag_match_screen.yml
│ │ │ └── value
│ │ │ ├── above_bottom_offset_integer_screen.yml
│ │ │ ├── below_top_offset_integer_screen.yml
│ │ │ ├── biased_to_bottom_integer_screen.yml
│ │ │ ├── boolean_screen.yml
│ │ │ ├── clamped_integer_screen.yml
│ │ │ ├── clamped_normal_integer_screen.yml
│ │ │ ├── fixed_double_to_integer_screen.yml
│ │ │ ├── fixed_float_screen.yml
│ │ │ ├── fixed_target_list_screen.yml
│ │ │ ├── trapezoid_integer_screen.yml
│ │ │ ├── uniform_integer_screen.yml
│ │ │ ├── weighted_list_integer_screen.yml
│ │ │ └── weighted_list_sub_integer_screen.yml
│ │ ├── lang
│ │ ├── README.txt
│ │ ├── de
│ │ │ ├── biomes.yml
│ │ │ ├── feature_generators.yml
│ │ │ ├── features.yml
│ │ │ ├── gui.yml
│ │ │ ├── info.yml
│ │ │ ├── namespaces.yml
│ │ │ ├── placement_modifiers.yml
│ │ │ ├── rule_tests.yml
│ │ │ ├── settings.yml
│ │ │ ├── useful_links.yml
│ │ │ └── value_types.yml
│ │ └── en
│ │ │ ├── biomes.yml
│ │ │ ├── feature_generators.yml
│ │ │ ├── features.yml
│ │ │ ├── gui.yml
│ │ │ ├── info.yml
│ │ │ ├── namespaces.yml
│ │ │ ├── placement_modifiers.yml
│ │ │ ├── rule_tests.yml
│ │ │ ├── settings.yml
│ │ │ ├── useful_links.yml
│ │ │ └── value_types.yml
│ │ └── plugin.yml
│ └── test
│ └── java
│ └── de
│ └── derfrzocker
│ └── ore
│ └── control
│ └── LanguagesTest.java
└── pom.xml
/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | # These are supported funding model platforms
2 |
3 | github: [DerFrZocker]
4 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 |
2 | /.idea/
3 | /api/target/
4 | /api/.flattened-pom.xml
5 | /api/ore-control-api.iml
6 | /common/target/
7 | /common/.flattened-pom.xml
8 | /common/ore-control-common.iml
9 | /impl/v1_18_R1/target/
10 | /impl/v1_18_R1/.flattened-pom.xml
11 | /impl/v1_18_R1/ore-control-impl-v1_18_R1.iml
12 | /impl/v1_18_R2/target/
13 | /impl/v1_18_R2/.flattened-pom.xml
14 | /impl/v1_18_R2/ore-control-impl-v1_18_R2.iml
15 | /impl/v1_19_R1/target/
16 | /impl/v1_19_R1/.flattened-pom.xml
17 | /impl/v1_19_R1/ore-control-impl-v1_19_R1.iml
18 | /impl/v1_19_R2/target/
19 | /impl/v1_19_R2/.flattened-pom.xml
20 | /impl/v1_19_R2/ore-control-impl-v1_19_R2.iml
21 | /impl/v1_19_R3/target/
22 | /impl/v1_19_R3/.flattened-pom.xml
23 | /impl/v1_19_R3/ore-control-impl-v1_19_R3.iml
24 | /impl/v1_20_R1/target/
25 | /impl/v1_20_R1/.flattened-pom.xml
26 | /impl/v1_20_R1/ore-control-impl-v1_20_R1.iml
27 | /impl/v1_20_R2/target/
28 | /impl/v1_20_R2/.flattened-pom.xml
29 | /impl/v1_20_R2/ore-control-impl-v1_20_R2.iml
30 | /impl/v1_20_R3/target/
31 | /impl/v1_20_R3/.flattened-pom.xml
32 | /impl/v1_20_R3/ore-control-impl-v1_20_R3.iml
33 | /impl/.flattened-pom.xml
34 | /impl/ore-control-impl.iml
35 | /ore-control/target/
36 | /ore-control/.flattened-pom.xml
37 | /ore-control/ore-control.iml
38 | /.flattened-pom.xml
39 | /ore-control-parent.iml
40 | .flattened-pom.xml
41 | target
42 | *.iml
43 |
44 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2019 - 2024 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 |
--------------------------------------------------------------------------------
/api/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 | 4.0.0
6 |
7 |
8 | ore-control-parent
9 | de.derfrzocker
10 | ${revision}
11 |
12 |
13 | ore-control-api
14 |
15 |
--------------------------------------------------------------------------------
/api/src/main/java/de/derfrzocker/feature/api/ConfigurationAble.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.api;
2 |
3 | import org.bukkit.Keyed;
4 | import org.jetbrains.annotations.NotNull;
5 |
6 | import java.util.Set;
7 |
8 | /**
9 | * Represents an object which can have a {@link Configuration}.
10 | */
11 | public interface ConfigurationAble extends Keyed {
12 |
13 | /**
14 | * Returns an unmodifiable set containing all
15 | * {@link Setting settings} this object will use.
16 | *
17 | * @return the settings which will be used.
18 | */
19 | @NotNull
20 | Set getSettings();
21 |
22 | /**
23 | * Creates and returns a new empty configuration,
24 | * for this object.
25 | *
26 | * @return a new empty configuration
27 | */
28 | @NotNull
29 | Configuration createEmptyConfiguration();
30 | }
31 |
--------------------------------------------------------------------------------
/api/src/main/java/de/derfrzocker/feature/api/ExtraValues.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.api;
2 |
3 | import de.derfrzocker.feature.api.util.SaveAble;
4 |
5 | import java.util.Optional;
6 |
7 | public class ExtraValues implements SaveAble {
8 |
9 | private Optional generateBigOreVeins = Optional.empty();
10 |
11 | private boolean dirty;
12 |
13 | public ExtraValues() {
14 | }
15 |
16 | public ExtraValues(Optional generateBigOreVeins) {
17 | this.generateBigOreVeins = generateBigOreVeins;
18 | }
19 |
20 | public Optional shouldGeneratedBigOreVeins() {
21 | return generateBigOreVeins;
22 | }
23 |
24 | public void setGenerateBigOreVeins(Optional generateBigOreVeins) {
25 | this.generateBigOreVeins = generateBigOreVeins;
26 | dirty = true;
27 | }
28 |
29 | public boolean isDirty() {
30 | return dirty;
31 | }
32 |
33 | public void saved() {
34 | dirty = false;
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/api/src/main/java/de/derfrzocker/feature/api/Feature.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.api;
2 |
3 | import org.bukkit.Keyed;
4 | import org.bukkit.NamespacedKey;
5 | import org.jetbrains.annotations.NotNull;
6 |
7 | import java.util.List;
8 |
9 | /**
10 | * Represents a Feature which can generate in a world.
11 | * Each Feature contains one generator and can have multiple placement modifiers.
12 | * The order of the placement modifiers is important. A list which preserves its order should be used.
13 | *
14 | * @param key The unique key of this feature.
15 | * @param generator The generator which generates the blocks.
16 | * @param placementModifiers The placement modifiers which determine the positions to generate the feature.
17 | */
18 | public record Feature(@NotNull NamespacedKey key, @NotNull FeatureGenerator> generator,
19 | @NotNull List> placementModifiers) implements Keyed {
20 |
21 | @NotNull
22 | @Override
23 | public NamespacedKey getKey() {
24 | return key();
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/api/src/main/java/de/derfrzocker/feature/api/FeatureGeneratorConfiguration.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.api;
2 |
3 | import org.jetbrains.annotations.NotNull;
4 |
5 | /**
6 | * Represents a configuration which has a {@link FeatureGenerator} as owner.
7 | */
8 | public interface FeatureGeneratorConfiguration extends Configuration {
9 |
10 | /**
11 | * Returns the owner of this configuration.
12 | *
13 | * @return the owner of this Configuration.
14 | */
15 | @NotNull
16 | FeatureGenerator> getOwner();
17 | }
18 |
--------------------------------------------------------------------------------
/api/src/main/java/de/derfrzocker/feature/api/LocatedAble.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.api;
2 |
3 | import org.jetbrains.annotations.NotNull;
4 |
5 | public interface LocatedAble {
6 |
7 | /**
8 | * The value location were the value is from / is being saved.
9 | * The value is only present during runtime and is not saved to disk.
10 | * Therefor it should be set once the value is loaded / set.
11 | * When the value is saved to a different value location, then the value
12 | * should be updated accordingly.
13 | *
14 | * @return from were the value is, if not location is set {@link ValueLocation#UNKNOWN} is returned
15 | * @see #setValueLocation(ValueLocation)
16 | */
17 | @NotNull
18 | ValueLocation getValueLocation();
19 |
20 | /**
21 | * The value location were the value is from / is being saved.
22 | * The value is only present during runtime and is not saved to disk.
23 | * Therefor it should be set once the value is loaded / set.
24 | * When the value is saved to a different value location, then the value
25 | * should be updated accordingly.
26 | *
27 | * When setting a value location it gets passed to all child values.
28 | *
29 | * @param valueLocation to set
30 | * @see #getValueLocation()
31 | */
32 | void setValueLocation(@NotNull ValueLocation valueLocation);
33 | }
34 |
--------------------------------------------------------------------------------
/api/src/main/java/de/derfrzocker/feature/api/PlacementModifierConfiguration.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.api;
2 |
3 | import org.jetbrains.annotations.NotNull;
4 |
5 | /**
6 | * Represents a configuration which has a {@link FeaturePlacementModifier} as owner.
7 | */
8 | public interface PlacementModifierConfiguration extends Configuration {
9 |
10 | /**
11 | * Returns the owner of this configuration.
12 | *
13 | * @return the owner of this Configuration.
14 | */
15 | @NotNull
16 | FeaturePlacementModifier> getOwner();
17 | }
18 |
--------------------------------------------------------------------------------
/api/src/main/java/de/derfrzocker/feature/api/Registries.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.api;
2 |
3 | import java.util.LinkedHashMap;
4 | import java.util.Map;
5 |
6 | public class Registries {
7 |
8 | private final Registry featureRegistry = new Registry<>();
9 | private final Registry> featureGeneratorRegistry = new Registry<>();
10 | private final Registry> placementModifierRegistry = new Registry<>();
11 | private final Map, Registry>> valueTypeRegistry = new LinkedHashMap<>();
12 | private final Registry ruleTestTypeRegistry = new Registry<>();
13 |
14 | public Registry getFeatureRegistry() {
15 | return featureRegistry;
16 | }
17 |
18 | public Registry> getFeatureGeneratorRegistry() {
19 | return featureGeneratorRegistry;
20 | }
21 |
22 | public Registry> getPlacementModifierRegistry() {
23 | return placementModifierRegistry;
24 | }
25 |
26 | public > Registry getValueTypeRegistry(Class clazz) {
27 | return (Registry) valueTypeRegistry.computeIfAbsent(clazz, aClass -> new Registry<>());
28 | }
29 |
30 | public Registry getRuleTestTypeRegistry() {
31 | return ruleTestTypeRegistry;
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/api/src/main/java/de/derfrzocker/feature/api/Registry.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.api;
2 |
3 | import org.bukkit.Keyed;
4 | import org.bukkit.NamespacedKey;
5 |
6 | import java.util.LinkedHashMap;
7 | import java.util.Map;
8 | import java.util.Optional;
9 |
10 | public class Registry {
11 |
12 | private final Map values = new LinkedHashMap<>();
13 |
14 | public Optional get(NamespacedKey key) {
15 | return Optional.ofNullable(values.get(key));
16 | }
17 |
18 | public void register(V value) {
19 | values.put(value.getKey(), value);
20 | }
21 |
22 | public Map getValues() {
23 | return values;
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/api/src/main/java/de/derfrzocker/feature/api/RuleTest.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.api;
2 |
3 | import de.derfrzocker.feature.api.util.traverser.message.MessageTraversAble;
4 | import de.derfrzocker.feature.api.util.SaveAble;
5 |
6 | public interface RuleTest extends MessageTraversAble, LocatedAble, SaveAble, Cloneable {
7 |
8 | RuleTestType getType();
9 |
10 | RuleTest clone();
11 | }
12 |
--------------------------------------------------------------------------------
/api/src/main/java/de/derfrzocker/feature/api/RuleTestType.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.api;
2 |
3 | import de.derfrzocker.feature.api.util.Parser;
4 | import org.bukkit.Keyed;
5 | import org.jetbrains.annotations.NotNull;
6 |
7 | public interface RuleTestType extends Keyed {
8 |
9 | @NotNull
10 | Parser getParser();
11 | }
12 |
--------------------------------------------------------------------------------
/api/src/main/java/de/derfrzocker/feature/api/Setting.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.api;
2 |
3 | import org.jetbrains.annotations.NotNull;
4 |
5 | public record Setting(@NotNull String name, @NotNull Class> valueType) {
6 |
7 | }
8 |
--------------------------------------------------------------------------------
/api/src/main/java/de/derfrzocker/feature/api/Value.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.api;
2 |
3 | import de.derfrzocker.feature.api.util.traverser.message.MessageTraversAble;
4 | import de.derfrzocker.feature.api.util.SaveAble;
5 | import org.bukkit.generator.LimitedRegion;
6 | import org.bukkit.generator.WorldInfo;
7 | import org.bukkit.util.BlockVector;
8 | import org.jetbrains.annotations.NotNull;
9 |
10 | import java.util.Random;
11 |
12 | public interface Value, T extends ValueType, O> extends Cloneable, SaveAble, MessageTraversAble, LocatedAble {
13 |
14 | T getValueType();
15 |
16 | O getValue(@NotNull WorldInfo worldInfo, @NotNull Random random, @NotNull BlockVector position, @NotNull LimitedRegion limitedRegion);
17 |
18 | Value, ?, ?> clone();
19 | }
20 |
--------------------------------------------------------------------------------
/api/src/main/java/de/derfrzocker/feature/api/ValueLocation.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.api;
2 |
3 | public enum ValueLocation {
4 |
5 | PER_WORLD,
6 | PER_BIOME,
7 | GLOBAL_WORLD,
8 | GLOBAL_BIOME,
9 | DEFAULT_WORLD,
10 | DEFAULT_BIOME,
11 | UNKNOWN;
12 | }
13 |
--------------------------------------------------------------------------------
/api/src/main/java/de/derfrzocker/feature/api/ValueType.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.api;
2 |
3 | import de.derfrzocker.feature.api.util.Parser;
4 | import org.bukkit.Keyed;
5 |
6 | public interface ValueType, T extends ValueType, O> extends Keyed {
7 |
8 | Parser getParser();
9 |
10 | V createNewValue();
11 | }
12 |
--------------------------------------------------------------------------------
/api/src/main/java/de/derfrzocker/feature/api/util/Parser.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.api.util;
2 |
3 | import com.google.gson.JsonElement;
4 |
5 | public interface Parser {
6 |
7 | JsonElement toJson(T value);
8 |
9 | T fromJson(JsonElement jsonElement);
10 | }
11 |
--------------------------------------------------------------------------------
/api/src/main/java/de/derfrzocker/feature/api/util/SaveAble.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.api.util;
2 |
3 | public interface SaveAble {
4 |
5 | /**
6 | * Returns true if this object has unsaved changes applied.
7 | * Otherwise, it will return false.
8 | *
9 | * @return true if dirty otherwise false.
10 | */
11 | boolean isDirty();
12 |
13 | /**
14 | * Sets the state of the object to not dirty.
15 | */
16 | void saved();
17 | }
18 |
--------------------------------------------------------------------------------
/api/src/main/java/de/derfrzocker/feature/api/util/traverser/message/KeyType.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.api.util.traverser.message;
2 |
3 | public enum KeyType {
4 |
5 | SETTING,
6 | VALUE_TYPE,
7 | VALUE_SETTING,
8 |
9 | RULE_TEST
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/api/src/main/java/de/derfrzocker/feature/api/util/traverser/message/MessageTraversAble.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.api.util.traverser.message;
2 |
3 | import org.jetbrains.annotations.NotNull;
4 |
5 | import java.util.List;
6 |
7 | @FunctionalInterface
8 | public interface MessageTraversAble {
9 |
10 | @NotNull
11 | List<@NotNull String> traverse(@NotNull StringFormatter formatter, int depth, @NotNull TraversKey key);
12 | }
13 |
--------------------------------------------------------------------------------
/api/src/main/java/de/derfrzocker/feature/api/util/traverser/message/StringFormatter.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.api.util.traverser.message;
2 |
3 | import org.jetbrains.annotations.NotNull;
4 | import org.jetbrains.annotations.Nullable;
5 |
6 | @FunctionalInterface
7 | public interface StringFormatter {
8 |
9 | @Nullable
10 | String format(int depth, @NotNull TraversKey key, @Nullable Object value);
11 | }
12 |
--------------------------------------------------------------------------------
/api/src/main/java/de/derfrzocker/feature/api/util/traverser/message/TraversKey.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.api.util.traverser.message;
2 |
3 | import org.bukkit.NamespacedKey;
4 | import org.jetbrains.annotations.NotNull;
5 |
6 | public record TraversKey(@NotNull KeyType keyType, @NotNull Object key) {
7 |
8 | @NotNull
9 | public static TraversKey ofSetting(@NotNull String key) {
10 | return new TraversKey(KeyType.SETTING, key);
11 | }
12 |
13 | @NotNull
14 | public static TraversKey ofValueType(@NotNull NamespacedKey key) {
15 | return new TraversKey(KeyType.VALUE_TYPE, key);
16 | }
17 |
18 | @NotNull
19 | public static TraversKey ofValueSetting(@NotNull String key) {
20 | return new TraversKey(KeyType.VALUE_SETTING, key);
21 | }
22 |
23 | @NotNull
24 | public static TraversKey ofRuleTest(@NotNull NamespacedKey key) {
25 | return new TraversKey(KeyType.RULE_TEST, key);
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/api/src/main/java/de/derfrzocker/ore/control/api/Biome.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.ore.control.api;
2 |
3 | import de.derfrzocker.feature.api.Feature;
4 | import org.bukkit.Keyed;
5 | import org.bukkit.NamespacedKey;
6 | import org.jetbrains.annotations.NotNull;
7 |
8 | import java.util.LinkedHashSet;
9 | import java.util.Set;
10 |
11 | public class Biome implements Keyed {
12 |
13 | private final NamespacedKey key;
14 | private final Set features = new LinkedHashSet<>();
15 |
16 | public Biome(NamespacedKey key) {
17 | this.key = key;
18 | }
19 |
20 | @NotNull
21 | @Override
22 | public NamespacedKey getKey() {
23 | return key;
24 | }
25 |
26 | public Set getFeatures() {
27 | return features;
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/api/src/main/java/de/derfrzocker/ore/control/api/FeatureGeneratorHook.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.ore.control.api;
2 |
3 | import de.derfrzocker.feature.api.FeatureGenerator;
4 | import de.derfrzocker.feature.api.FeatureGeneratorConfiguration;
5 | import org.bukkit.Keyed;
6 |
7 | public interface FeatureGeneratorHook extends Keyed {
8 |
9 | FeatureGenerator getFeatureGenerator();
10 |
11 | Biome getBiome();
12 | }
13 |
--------------------------------------------------------------------------------
/api/src/main/java/de/derfrzocker/ore/control/api/NMSReplacer.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.ore.control.api;
2 |
3 | import org.bukkit.World;
4 |
5 | import java.io.File;
6 | import java.util.Set;
7 |
8 | public interface NMSReplacer {
9 |
10 | void register();
11 |
12 | void saveDefaultValues(File file);
13 |
14 | void hookIntoBiomes();
15 |
16 | Set getBiomes(World world);
17 |
18 | }
19 |
--------------------------------------------------------------------------------
/api/src/main/java/de/derfrzocker/ore/control/api/OreControlManager.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.ore.control.api;
2 |
3 | import de.derfrzocker.ore.control.api.config.ConfigManager;
4 | import org.bukkit.World;
5 |
6 | import java.util.LinkedList;
7 | import java.util.List;
8 | import java.util.Set;
9 | import java.util.function.Function;
10 |
11 | public class OreControlManager {
12 |
13 | private final OreControlRegistries registries;
14 | private final ConfigManager configManager;
15 | private final Function> biomeFunction;
16 | private final List valueChangeListener = new LinkedList<>();
17 |
18 | public OreControlManager(OreControlRegistries registries, ConfigManager configManager, Function> biomeFunction) {
19 | this.registries = registries;
20 | this.configManager = configManager;
21 | this.biomeFunction = biomeFunction;
22 | }
23 |
24 | public OreControlRegistries getRegistries() {
25 | return registries;
26 | }
27 |
28 | public ConfigManager getConfigManager() {
29 | return configManager;
30 | }
31 |
32 | public Set getBiomes(World world) {
33 | return biomeFunction.apply(world);
34 | }
35 |
36 | public void addValueChangeListener(Runnable listener) {
37 | valueChangeListener.add(listener);
38 | }
39 |
40 | public void onValueChange() {
41 | valueChangeListener.forEach(Runnable::run);
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/api/src/main/java/de/derfrzocker/ore/control/api/OreControlRegistries.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.ore.control.api;
2 |
3 | import de.derfrzocker.feature.api.Registries;
4 | import de.derfrzocker.feature.api.Registry;
5 |
6 | public class OreControlRegistries extends Registries {
7 |
8 | private final Registry biomeRegistry = new Registry<>();
9 |
10 | public Registry getBiomeRegistry() {
11 | return biomeRegistry;
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/api/src/main/java/de/derfrzocker/ore/control/api/PlacementModifierHook.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.ore.control.api;
2 |
3 | import de.derfrzocker.feature.api.FeaturePlacementModifier;
4 | import de.derfrzocker.feature.api.PlacementModifierConfiguration;
5 | import org.bukkit.Keyed;
6 |
7 | public interface PlacementModifierHook extends Keyed {
8 |
9 | FeaturePlacementModifier getPlacementModifier();
10 |
11 | Biome getBiome();
12 | }
13 |
--------------------------------------------------------------------------------
/api/src/main/java/de/derfrzocker/ore/control/api/config/ConfigInfo.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.ore.control.api.config;
2 |
3 | import de.derfrzocker.feature.api.util.SaveAble;
4 | import org.jetbrains.annotations.NotNull;
5 |
6 | import java.io.File;
7 |
8 | public class ConfigInfo implements Comparable, SaveAble {
9 |
10 | private final String worldName;
11 | private final File dataDirectory;
12 | private ConfigType configType;
13 | private boolean dirty = false;
14 |
15 | public ConfigInfo(String worldName, ConfigType configType, File dataDirectory) {
16 | this.worldName = worldName;
17 | this.configType = configType;
18 | this.dataDirectory = dataDirectory;
19 | }
20 |
21 | public String getWorldName() {
22 | return worldName;
23 | }
24 |
25 | public ConfigType getConfigType() {
26 | return configType;
27 | }
28 |
29 | public void setConfigType(ConfigType configType) {
30 | if (configType == ConfigType.GLOBAL) {
31 | throw new IllegalArgumentException(String.format("Cannot set config type to '%s'", configType));
32 | }
33 |
34 | this.configType = configType;
35 | dirty = true;
36 | }
37 |
38 | public File getDataDirectory() {
39 | return dataDirectory;
40 | }
41 |
42 | public boolean isDirty() {
43 | return dirty;
44 | }
45 |
46 | public void saved() {
47 | dirty = false;
48 | }
49 |
50 | @Override
51 | public int compareTo(@NotNull ConfigInfo configInfo) {
52 | if (this == configInfo) {
53 | return 0;
54 | }
55 |
56 | if (getConfigType() != configInfo.getConfigType()) {
57 | return getConfigType().compareTo(configInfo.getConfigType());
58 | }
59 |
60 | return getWorldName().compareTo(configInfo.getWorldName());
61 | }
62 | }
63 |
--------------------------------------------------------------------------------
/api/src/main/java/de/derfrzocker/ore/control/api/config/ConfigType.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.ore.control.api.config;
2 |
3 | public enum ConfigType {
4 |
5 | GLOBAL,
6 | WORLD,
7 | TEMPLATE,
8 |
9 | }
10 |
--------------------------------------------------------------------------------
/api/src/main/java/de/derfrzocker/ore/control/api/util/Reloadable.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.ore.control.api.util;
2 |
3 | public interface Reloadable {
4 |
5 | void reload();
6 | }
7 |
--------------------------------------------------------------------------------
/common/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 | 4.0.0
6 |
7 |
8 | ore-control-parent
9 | de.derfrzocker
10 | ${revision}
11 |
12 |
13 | ore-control-common
14 |
15 |
16 |
17 | de.derfrzocker
18 | ore-control-api
19 | ${project.version}
20 | provided
21 |
22 |
23 | net.objecthunter
24 | exp4j
25 | 0.4.8
26 | provided
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/common/src/main/java/de/derfrzocker/feature/common/AbstractValue.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.common;
2 |
3 | import de.derfrzocker.feature.api.Value;
4 | import de.derfrzocker.feature.api.ValueLocation;
5 | import de.derfrzocker.feature.api.ValueType;
6 | import org.jetbrains.annotations.NotNull;
7 |
8 | public abstract class AbstractValue, T extends ValueType, O> implements Value {
9 |
10 | private ValueLocation valueLocation = ValueLocation.UNKNOWN;
11 |
12 | @Override
13 | public @NotNull ValueLocation getValueLocation() {
14 | return valueLocation;
15 | }
16 |
17 | @Override
18 | public void setValueLocation(@NotNull ValueLocation valueLocation) {
19 | this.valueLocation = valueLocation;
20 | }
21 |
22 | public abstract AbstractValue clone();
23 | }
24 |
--------------------------------------------------------------------------------
/common/src/main/java/de/derfrzocker/feature/common/feature/generator/configuration/EmptyFeatureConfiguration.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.common.feature.generator.configuration;
2 |
3 | import de.derfrzocker.feature.api.FeatureGenerator;
4 | import de.derfrzocker.feature.api.FeatureGeneratorConfiguration;
5 | import de.derfrzocker.feature.api.Setting;
6 | import de.derfrzocker.feature.api.Value;
7 | import org.jetbrains.annotations.NotNull;
8 | import org.jetbrains.annotations.Nullable;
9 |
10 | import java.util.Collections;
11 | import java.util.Set;
12 |
13 | public class EmptyFeatureConfiguration implements FeatureGeneratorConfiguration {
14 |
15 | private final FeatureGenerator> featureGenerator;
16 |
17 | public EmptyFeatureConfiguration(FeatureGenerator> featureGenerator) {
18 | this.featureGenerator = featureGenerator;
19 | }
20 |
21 | @Override
22 | public @NotNull Set getSettings() {
23 | return Collections.emptySet();
24 | }
25 |
26 | @Override
27 | public @Nullable Value, ?, ?> getValue(@NotNull Setting setting) {
28 | return null;
29 | }
30 |
31 | @Override
32 | public void setValue(@NotNull Setting setting, @Nullable Value, ?, ?> value) {
33 |
34 | }
35 |
36 | @Override
37 | public boolean isDirty() {
38 | return false;
39 | }
40 |
41 | @Override
42 | public void saved() {
43 |
44 | }
45 |
46 | @Override
47 | public @NotNull FeatureGenerator> getOwner() {
48 | return featureGenerator;
49 | }
50 | }
51 |
--------------------------------------------------------------------------------
/common/src/main/java/de/derfrzocker/feature/common/ruletest/AlwaysTrueRuleTest.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.common.ruletest;
2 |
3 | import de.derfrzocker.feature.api.RuleTest;
4 | import de.derfrzocker.feature.api.RuleTestType;
5 | import de.derfrzocker.feature.api.ValueLocation;
6 | import de.derfrzocker.feature.api.util.traverser.message.StringFormatter;
7 | import de.derfrzocker.feature.api.util.traverser.message.TraversKey;
8 | import de.derfrzocker.feature.common.util.MessageTraversUtil;
9 | import de.derfrzocker.spigot.utils.Pair;
10 | import org.jetbrains.annotations.NotNull;
11 |
12 | import java.util.List;
13 |
14 | public final class AlwaysTrueRuleTest implements RuleTest {
15 |
16 | private ValueLocation valueLocation = ValueLocation.UNKNOWN;
17 |
18 | @Override
19 | public RuleTestType getType() {
20 | return AlwaysTrueRuleTestType.INSTANCE;
21 | }
22 |
23 | @Override
24 | public RuleTest clone() {
25 | return this;
26 | }
27 |
28 | @Override
29 | public boolean isDirty() {
30 | return false;
31 | }
32 |
33 | @Override
34 | public void saved() {
35 |
36 | }
37 |
38 | @Override
39 | public @NotNull List<@NotNull String> traverse(@NotNull StringFormatter formatter, int depth, @NotNull TraversKey key) {
40 | return MessageTraversUtil.multiple(formatter, depth, key, TraversKey.ofRuleTest(getType().getKey()));
41 | }
42 |
43 | @Override
44 | public @NotNull ValueLocation getValueLocation() {
45 | return valueLocation;
46 | }
47 |
48 | @Override
49 | public void setValueLocation(@NotNull ValueLocation valueLocation) {
50 | this.valueLocation = valueLocation;
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/common/src/main/java/de/derfrzocker/feature/common/ruletest/AlwaysTrueRuleTestType.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.common.ruletest;
2 |
3 | import com.google.gson.JsonElement;
4 | import com.google.gson.JsonObject;
5 | import de.derfrzocker.feature.api.RuleTest;
6 | import de.derfrzocker.feature.api.RuleTestType;
7 | import de.derfrzocker.feature.api.util.Parser;
8 | import org.bukkit.NamespacedKey;
9 | import org.jetbrains.annotations.NotNull;
10 |
11 | public class AlwaysTrueRuleTestType implements RuleTestType {
12 |
13 | public static final AlwaysTrueRuleTestType INSTANCE = new AlwaysTrueRuleTestType();
14 | private static final NamespacedKey KEY = NamespacedKey.minecraft("always_true");
15 | private static final Parser PARSER = new Parser<>() {
16 | @Override
17 | public JsonElement toJson(RuleTest value) {
18 | return new JsonObject();
19 | }
20 |
21 | @Override
22 | public AlwaysTrueRuleTest fromJson(JsonElement jsonElement) {
23 | return new AlwaysTrueRuleTest();
24 | }
25 | };
26 |
27 | private AlwaysTrueRuleTestType() {
28 | }
29 |
30 | @Override
31 | public @NotNull Parser getParser() {
32 | return PARSER;
33 | }
34 |
35 | @NotNull
36 | @Override
37 | public NamespacedKey getKey() {
38 | return KEY;
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/common/src/main/java/de/derfrzocker/feature/common/ruletest/BlockMatchRuleTestType.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.common.ruletest;
2 |
3 | import com.google.gson.JsonElement;
4 | import com.google.gson.JsonObject;
5 | import de.derfrzocker.feature.api.RuleTest;
6 | import de.derfrzocker.feature.api.RuleTestType;
7 | import de.derfrzocker.feature.api.util.Parser;
8 | import org.bukkit.Material;
9 | import org.bukkit.NamespacedKey;
10 | import org.bukkit.Registry;
11 | import org.jetbrains.annotations.NotNull;
12 |
13 | public class BlockMatchRuleTestType implements RuleTestType {
14 |
15 | public static final BlockMatchRuleTestType INSTANCE = new BlockMatchRuleTestType();
16 | private static final NamespacedKey KEY = NamespacedKey.minecraft("block_match");
17 | private static final Parser PARSER = new Parser<>() {
18 | @Override
19 | public JsonElement toJson(RuleTest v) {
20 | BlockMatchRuleTest value = (BlockMatchRuleTest) v;
21 | JsonObject jsonObject = new JsonObject();
22 |
23 | jsonObject.addProperty("value", value.getBlock().getKey().toString());
24 |
25 | return jsonObject;
26 | }
27 |
28 | @Override
29 | public BlockMatchRuleTest fromJson(JsonElement jsonElement) {
30 | JsonObject jsonObject = jsonElement.getAsJsonObject();
31 |
32 | Material material = Registry.MATERIAL.get(NamespacedKey.fromString(jsonObject.getAsJsonPrimitive("value").getAsString()));
33 |
34 | return new BlockMatchRuleTest(material);
35 | }
36 | };
37 |
38 | private BlockMatchRuleTestType() {
39 | }
40 |
41 | @Override
42 | public @NotNull Parser getParser() {
43 | return PARSER;
44 | }
45 |
46 | @NotNull
47 | @Override
48 | public NamespacedKey getKey() {
49 | return KEY;
50 | }
51 | }
52 |
--------------------------------------------------------------------------------
/common/src/main/java/de/derfrzocker/feature/common/ruletest/BlockStateMatchRuleTestType.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.common.ruletest;
2 |
3 | import com.google.gson.JsonElement;
4 | import com.google.gson.JsonObject;
5 | import de.derfrzocker.feature.api.RuleTest;
6 | import de.derfrzocker.feature.api.RuleTestType;
7 | import de.derfrzocker.feature.api.util.Parser;
8 | import org.bukkit.Bukkit;
9 | import org.bukkit.NamespacedKey;
10 | import org.bukkit.block.data.BlockData;
11 | import org.jetbrains.annotations.NotNull;
12 |
13 | public class BlockStateMatchRuleTestType implements RuleTestType {
14 | public static final BlockStateMatchRuleTestType INSTANCE = new BlockStateMatchRuleTestType();
15 | private static final NamespacedKey KEY = NamespacedKey.minecraft("blockstate_match");
16 | private static final Parser PARSER = new Parser<>() {
17 | @Override
18 | public JsonElement toJson(RuleTest v) {
19 | BlockStateMatchRuleTest value = (BlockStateMatchRuleTest) v;
20 | JsonObject jsonObject = new JsonObject();
21 |
22 | jsonObject.addProperty("value", value.getBlockData().getAsString());
23 |
24 | return jsonObject;
25 | }
26 |
27 | @Override
28 | public BlockStateMatchRuleTest fromJson(JsonElement jsonElement) {
29 | JsonObject jsonObject = jsonElement.getAsJsonObject();
30 |
31 | BlockData blockData = Bukkit.createBlockData(jsonObject.getAsJsonPrimitive("value").getAsString());
32 |
33 | return new BlockStateMatchRuleTest(blockData);
34 | }
35 | };
36 |
37 | private BlockStateMatchRuleTestType() {
38 | }
39 |
40 | @Override
41 | public @NotNull Parser getParser() {
42 | return PARSER;
43 | }
44 |
45 | @NotNull
46 | @Override
47 | public NamespacedKey getKey() {
48 | return KEY;
49 | }
50 | }
51 |
--------------------------------------------------------------------------------
/common/src/main/java/de/derfrzocker/feature/common/ruletest/TagMatchRuleTestType.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.common.ruletest;
2 |
3 | import com.google.gson.JsonElement;
4 | import com.google.gson.JsonObject;
5 | import de.derfrzocker.feature.api.RuleTest;
6 | import de.derfrzocker.feature.api.RuleTestType;
7 | import de.derfrzocker.feature.api.util.Parser;
8 | import org.bukkit.NamespacedKey;
9 | import org.jetbrains.annotations.NotNull;
10 |
11 | public class TagMatchRuleTestType implements RuleTestType {
12 | public static final TagMatchRuleTestType INSTANCE = new TagMatchRuleTestType();
13 | private static final NamespacedKey KEY = NamespacedKey.minecraft("tag_match");
14 | private static final Parser PARSER = new Parser<>() {
15 | @Override
16 | public JsonElement toJson(RuleTest v) {
17 | TagMatchRuleTest value = (TagMatchRuleTest) v;
18 | JsonObject jsonObject = new JsonObject();
19 |
20 | jsonObject.addProperty("value", value.getTag().toString());
21 |
22 | return jsonObject;
23 | }
24 |
25 | @Override
26 | public RuleTest fromJson(JsonElement jsonElement) {
27 | JsonObject jsonObject = jsonElement.getAsJsonObject();
28 |
29 | NamespacedKey tag = NamespacedKey.fromString(jsonObject.get("value").getAsString());
30 |
31 | return new TagMatchRuleTest(tag);
32 | }
33 | };
34 |
35 | private TagMatchRuleTestType() {
36 | }
37 |
38 | @Override
39 | public @NotNull Parser getParser() {
40 | return PARSER;
41 | }
42 |
43 | @NotNull
44 | @Override
45 | public NamespacedKey getKey() {
46 | return KEY;
47 | }
48 | }
49 |
--------------------------------------------------------------------------------
/common/src/main/java/de/derfrzocker/feature/common/util/ValueLocationUtil.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.common.util;
2 |
3 | import de.derfrzocker.feature.api.Configuration;
4 | import de.derfrzocker.feature.api.PlacementModifierConfiguration;
5 | import de.derfrzocker.feature.api.Setting;
6 | import de.derfrzocker.feature.api.Value;
7 | import de.derfrzocker.feature.api.ValueLocation;
8 | import de.derfrzocker.ore.control.api.config.Config;
9 |
10 | import java.util.Optional;
11 |
12 | public final class ValueLocationUtil {
13 |
14 | private ValueLocationUtil() {
15 | }
16 |
17 | public static Optional setValueLocation(Optional configOptional, ValueLocation valueLocation) {
18 | configOptional.ifPresent(config -> {
19 | setValueLocation(config.getFeature(), valueLocation);
20 |
21 | if (config.getPlacements() != null) {
22 | for (PlacementModifierConfiguration placementConfig : config.getPlacements().values()) {
23 | setValueLocation(placementConfig, valueLocation);
24 | }
25 | }
26 | });
27 |
28 | return configOptional;
29 | }
30 |
31 | public static void setValueLocation(Configuration configuration, ValueLocation valueLocation) {
32 | if (configuration == null) {
33 | return;
34 | }
35 |
36 | for (Setting setting : configuration.getSettings()) {
37 | Value, ?, ?> value = configuration.getValue(setting);
38 | if (value != null) {
39 | value.setValueLocation(valueLocation);
40 | }
41 | }
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/common/src/main/java/de/derfrzocker/feature/common/value/bool/BooleanType.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.common.value.bool;
2 |
3 | import de.derfrzocker.feature.api.ValueType;
4 |
5 | public abstract class BooleanType implements ValueType {
6 | }
7 |
--------------------------------------------------------------------------------
/common/src/main/java/de/derfrzocker/feature/common/value/bool/BooleanValue.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.common.value.bool;
2 |
3 | import de.derfrzocker.feature.common.AbstractValue;
4 |
5 | public abstract class BooleanValue extends AbstractValue {
6 |
7 | @Override
8 | public abstract BooleanValue clone();
9 | }
10 |
--------------------------------------------------------------------------------
/common/src/main/java/de/derfrzocker/feature/common/value/bool/FixedBooleanType.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.common.value.bool;
2 |
3 | import com.google.gson.JsonElement;
4 | import com.google.gson.JsonObject;
5 | import de.derfrzocker.feature.api.util.Parser;
6 | import org.bukkit.NamespacedKey;
7 | import org.jetbrains.annotations.NotNull;
8 |
9 | public class FixedBooleanType extends BooleanType {
10 |
11 | public static final NamespacedKey KEY = NamespacedKey.fromString("feature:fixed_boolean");
12 | public static final FixedBooleanType INSTANCE = new FixedBooleanType();
13 | public static final Parser PARSER = new Parser<>() {
14 | @Override
15 | public JsonElement toJson(BooleanValue v) {
16 | FixedBooleanValue value = (FixedBooleanValue) v;
17 | JsonObject jsonObject = new JsonObject();
18 |
19 | jsonObject.addProperty("value", value.getValue());
20 |
21 | return jsonObject;
22 | }
23 |
24 | @Override
25 | public FixedBooleanValue fromJson(JsonElement jsonElement) {
26 | JsonObject jsonObject = jsonElement.getAsJsonObject();
27 |
28 | boolean value = false;
29 | if (jsonObject.has("value")) {
30 | value = jsonObject.get("value").getAsBoolean();
31 | }
32 |
33 | return new FixedBooleanValue(value);
34 | }
35 | };
36 |
37 | private FixedBooleanType() {
38 | }
39 |
40 | @Override
41 | public Parser getParser() {
42 | return PARSER;
43 | }
44 |
45 | @Override
46 | public FixedBooleanValue createNewValue() {
47 | return new FixedBooleanValue(false);
48 | }
49 |
50 | @NotNull
51 | @Override
52 | public NamespacedKey getKey() {
53 | return KEY;
54 | }
55 | }
56 |
--------------------------------------------------------------------------------
/common/src/main/java/de/derfrzocker/feature/common/value/bool/FixedBooleanValue.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.common.value.bool;
2 |
3 | import de.derfrzocker.feature.api.util.traverser.message.StringFormatter;
4 | import de.derfrzocker.feature.api.util.traverser.message.TraversKey;
5 | import de.derfrzocker.feature.common.util.MessageTraversUtil;
6 | import org.bukkit.generator.LimitedRegion;
7 | import org.bukkit.generator.WorldInfo;
8 | import org.bukkit.util.BlockVector;
9 | import org.jetbrains.annotations.NotNull;
10 |
11 | import java.util.List;
12 | import java.util.Random;
13 |
14 | public class FixedBooleanValue extends BooleanValue {
15 |
16 | private boolean value;
17 | private boolean dirty = false;
18 |
19 | public FixedBooleanValue(boolean value) {
20 | this.value = value;
21 | }
22 |
23 | @Override
24 | public FixedBooleanType getValueType() {
25 | return FixedBooleanType.INSTANCE;
26 | }
27 |
28 | @Override
29 | public Boolean getValue(@NotNull WorldInfo worldInfo, @NotNull Random random, @NotNull BlockVector position, @NotNull LimitedRegion limitedRegion) {
30 | return value;
31 | }
32 |
33 | @Override
34 | public boolean isDirty() {
35 | return dirty;
36 | }
37 |
38 | @Override
39 | public void saved() {
40 | dirty = false;
41 | }
42 |
43 | public boolean getValue() {
44 | return value;
45 | }
46 |
47 | public void setValue(boolean value) {
48 | this.value = value;
49 | dirty = true;
50 | }
51 |
52 | @Override
53 | public FixedBooleanValue clone() {
54 | return new FixedBooleanValue(value);
55 | }
56 |
57 | @Override
58 | public @NotNull List<@NotNull String> traverse(@NotNull StringFormatter formatter, int depth, @NotNull TraversKey key) {
59 | return MessageTraversUtil.single(formatter, depth, key, getValue());
60 | }
61 | }
62 |
--------------------------------------------------------------------------------
/common/src/main/java/de/derfrzocker/feature/common/value/number/FixedFloatType.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.common.value.number;
2 |
3 | import com.google.gson.JsonElement;
4 | import com.google.gson.JsonObject;
5 | import de.derfrzocker.feature.api.util.Parser;
6 | import org.bukkit.NamespacedKey;
7 | import org.jetbrains.annotations.NotNull;
8 |
9 | public class FixedFloatType extends FloatType {
10 |
11 | public static final NamespacedKey KEY = NamespacedKey.fromString("feature:fixed_float");
12 | public static final FixedFloatType INSTANCE = new FixedFloatType();
13 | public static final Parser PARSER = new Parser<>() {
14 |
15 | @Override
16 | public JsonElement toJson(FloatValue v) {
17 | FixedFloatValue value = (FixedFloatValue) v;
18 | JsonObject jsonObject = new JsonObject();
19 |
20 | jsonObject.addProperty("value", value.getValue());
21 |
22 | return jsonObject;
23 | }
24 |
25 | @Override
26 | public FixedFloatValue fromJson(JsonElement jsonElement) {
27 | JsonObject jsonObject = jsonElement.getAsJsonObject();
28 |
29 | float value = 0f;
30 | if (jsonObject.has("value")) {
31 | value = jsonObject.get("value").getAsFloat();
32 | }
33 |
34 | return new FixedFloatValue(value);
35 | }
36 | };
37 |
38 | private FixedFloatType() {
39 | }
40 |
41 | @Override
42 | public Parser getParser() {
43 | return PARSER;
44 | }
45 |
46 | @Override
47 | public FixedFloatValue createNewValue() {
48 | return new FixedFloatValue(0);
49 | }
50 |
51 | @NotNull
52 | @Override
53 | public NamespacedKey getKey() {
54 | return KEY;
55 | }
56 | }
57 |
--------------------------------------------------------------------------------
/common/src/main/java/de/derfrzocker/feature/common/value/number/FixedFloatValue.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.common.value.number;
2 |
3 | import de.derfrzocker.feature.api.util.traverser.message.StringFormatter;
4 | import de.derfrzocker.feature.api.util.traverser.message.TraversKey;
5 | import de.derfrzocker.feature.common.util.MessageTraversUtil;
6 | import org.bukkit.generator.LimitedRegion;
7 | import org.bukkit.generator.WorldInfo;
8 | import org.bukkit.util.BlockVector;
9 | import org.jetbrains.annotations.NotNull;
10 |
11 | import java.util.List;
12 | import java.util.Random;
13 |
14 | public class FixedFloatValue extends FloatValue {
15 |
16 | private float value;
17 | private boolean dirty = false;
18 |
19 | public FixedFloatValue(float value) {
20 | this.value = value;
21 | }
22 |
23 | @Override
24 | public FixedFloatType getValueType() {
25 | return FixedFloatType.INSTANCE;
26 | }
27 |
28 | @Override
29 | public Float getValue(@NotNull WorldInfo worldInfo, @NotNull Random random, @NotNull BlockVector position, @NotNull LimitedRegion limitedRegion) {
30 | return value;
31 | }
32 |
33 | @Override
34 | public boolean isDirty() {
35 | return dirty;
36 | }
37 |
38 | @Override
39 | public void saved() {
40 | dirty = false;
41 | }
42 |
43 | public float getValue() {
44 | return value;
45 | }
46 |
47 | public void setValue(float value) {
48 | this.value = value;
49 | dirty = true;
50 | }
51 |
52 | @Override
53 | public FixedFloatValue clone() {
54 | return new FixedFloatValue(value);
55 | }
56 |
57 | @Override
58 | public @NotNull List<@NotNull String> traverse(@NotNull StringFormatter formatter, int depth, @NotNull TraversKey key) {
59 | return MessageTraversUtil.single(formatter, depth, key, getValue());
60 | }
61 | }
62 |
--------------------------------------------------------------------------------
/common/src/main/java/de/derfrzocker/feature/common/value/number/FloatType.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.common.value.number;
2 |
3 | public abstract class FloatType extends NumberType {
4 | }
5 |
--------------------------------------------------------------------------------
/common/src/main/java/de/derfrzocker/feature/common/value/number/FloatValue.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.common.value.number;
2 |
3 | public abstract class FloatValue extends NumberValue {
4 |
5 | @Override
6 | public abstract FloatValue clone();
7 | }
8 |
--------------------------------------------------------------------------------
/common/src/main/java/de/derfrzocker/feature/common/value/number/IntegerType.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.common.value.number;
2 |
3 | public abstract class IntegerType extends NumberType {
4 | }
5 |
--------------------------------------------------------------------------------
/common/src/main/java/de/derfrzocker/feature/common/value/number/IntegerValue.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.common.value.number;
2 |
3 | public abstract class IntegerValue extends NumberValue {
4 |
5 | @Override
6 | public abstract IntegerValue clone();
7 | }
8 |
--------------------------------------------------------------------------------
/common/src/main/java/de/derfrzocker/feature/common/value/number/NumberType.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.common.value.number;
2 |
3 | import de.derfrzocker.feature.api.ValueType;
4 |
5 | public abstract class NumberType, T extends NumberType, O extends Number> implements ValueType {
6 | }
7 |
--------------------------------------------------------------------------------
/common/src/main/java/de/derfrzocker/feature/common/value/number/NumberValue.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.common.value.number;
2 |
3 | import de.derfrzocker.feature.common.AbstractValue;
4 |
5 | public abstract class NumberValue, T extends NumberType, O extends Number> extends AbstractValue {
6 |
7 | @Override
8 | public abstract NumberValue clone();
9 | }
10 |
--------------------------------------------------------------------------------
/common/src/main/java/de/derfrzocker/feature/common/value/number/integer/Exp4jIntegerType.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.common.value.number.integer;
2 |
3 | import com.google.gson.JsonElement;
4 | import com.google.gson.JsonObject;
5 | import de.derfrzocker.feature.api.util.Parser;
6 | import de.derfrzocker.feature.common.value.number.IntegerType;
7 | import de.derfrzocker.feature.common.value.number.IntegerValue;
8 | import org.bukkit.NamespacedKey;
9 | import org.jetbrains.annotations.NotNull;
10 |
11 | public class Exp4jIntegerType extends IntegerType {
12 |
13 | public static final NamespacedKey KEY = NamespacedKey.fromString("feature:exp4f_integer");
14 | public static final Exp4jIntegerType INSTANCE = new Exp4jIntegerType();
15 | public static final Parser PARSER = new Parser<>() {
16 | @Override
17 | public JsonElement toJson(IntegerValue v) {
18 | Exp4jIntegerValue value = (Exp4jIntegerValue) v;
19 | JsonObject jsonObject = new JsonObject();
20 |
21 | jsonObject.addProperty("value", value.getExpressionString());
22 |
23 | return jsonObject;
24 | }
25 |
26 | @Override
27 | public Exp4jIntegerValue fromJson(JsonElement jsonElement) {
28 | JsonObject jsonObject = jsonElement.getAsJsonObject();
29 |
30 | String value = null;
31 | if (jsonObject.has("value")) {
32 | value = jsonObject.get("value").getAsString();
33 | }
34 |
35 | return new Exp4jIntegerValue(value);
36 | }
37 | };
38 |
39 | private Exp4jIntegerType() {
40 | }
41 |
42 | @Override
43 | public Parser getParser() {
44 | return PARSER;
45 | }
46 |
47 | @Override
48 | public Exp4jIntegerValue createNewValue() {
49 | return new Exp4jIntegerValue("0");
50 | }
51 |
52 | @NotNull
53 | @Override
54 | public NamespacedKey getKey() {
55 | return KEY;
56 | }
57 | }
58 |
--------------------------------------------------------------------------------
/common/src/main/java/de/derfrzocker/feature/common/value/number/integer/FixedIntegerType.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.common.value.number.integer;
2 |
3 | import com.google.gson.JsonElement;
4 | import com.google.gson.JsonObject;
5 | import de.derfrzocker.feature.api.util.Parser;
6 | import de.derfrzocker.feature.common.value.number.IntegerType;
7 | import de.derfrzocker.feature.common.value.number.IntegerValue;
8 | import org.bukkit.NamespacedKey;
9 | import org.jetbrains.annotations.NotNull;
10 |
11 | public class FixedIntegerType extends IntegerType {
12 |
13 | public static final NamespacedKey KEY = NamespacedKey.fromString("feature:fixed_integer");
14 | public static final FixedIntegerType INSTANCE = new FixedIntegerType();
15 | public static final Parser PARSER = new Parser<>() {
16 | @Override
17 | public JsonElement toJson(IntegerValue v) {
18 | FixedIntegerValue value = (FixedIntegerValue) v;
19 | JsonObject jsonObject = new JsonObject();
20 |
21 | jsonObject.addProperty("value", value.getValue());
22 |
23 | return jsonObject;
24 | }
25 |
26 | @Override
27 | public FixedIntegerValue fromJson(JsonElement jsonElement) {
28 | JsonObject jsonObject = jsonElement.getAsJsonObject();
29 |
30 | int value = 0;
31 | if (jsonObject.has("value")) {
32 | value = jsonObject.get("value").getAsInt();
33 | }
34 |
35 | return new FixedIntegerValue(value);
36 | }
37 | };
38 |
39 | private FixedIntegerType() {
40 | }
41 |
42 | @Override
43 | public Parser getParser() {
44 | return PARSER;
45 | }
46 |
47 | @Override
48 | public FixedIntegerValue createNewValue() {
49 | return new FixedIntegerValue(0);
50 | }
51 |
52 | @NotNull
53 | @Override
54 | public NamespacedKey getKey() {
55 | return KEY;
56 | }
57 | }
58 |
--------------------------------------------------------------------------------
/common/src/main/java/de/derfrzocker/feature/common/value/number/integer/FixedIntegerValue.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.common.value.number.integer;
2 |
3 | import de.derfrzocker.feature.api.util.traverser.message.StringFormatter;
4 | import de.derfrzocker.feature.api.util.traverser.message.TraversKey;
5 | import de.derfrzocker.feature.common.util.MessageTraversUtil;
6 | import de.derfrzocker.feature.common.value.number.IntegerValue;
7 | import org.bukkit.generator.LimitedRegion;
8 | import org.bukkit.generator.WorldInfo;
9 | import org.bukkit.util.BlockVector;
10 | import org.jetbrains.annotations.NotNull;
11 |
12 | import java.util.List;
13 | import java.util.Random;
14 |
15 | public class FixedIntegerValue extends IntegerValue {
16 |
17 | private int value;
18 | private boolean dirty = false;
19 |
20 | public FixedIntegerValue(int value) {
21 | this.value = value;
22 | }
23 |
24 | @Override
25 | public FixedIntegerType getValueType() {
26 | return FixedIntegerType.INSTANCE;
27 | }
28 |
29 | @Override
30 | public Integer getValue(@NotNull WorldInfo worldInfo, @NotNull Random random, @NotNull BlockVector position, @NotNull LimitedRegion limitedRegion) {
31 | return value;
32 | }
33 |
34 | @Override
35 | public boolean isDirty() {
36 | return dirty;
37 | }
38 |
39 | @Override
40 | public void saved() {
41 | dirty = false;
42 | }
43 |
44 | public int getValue() {
45 | return value;
46 | }
47 |
48 | public void setValue(int value) {
49 | this.value = value;
50 | dirty = true;
51 | }
52 |
53 | @Override
54 | public FixedIntegerValue clone() {
55 | return new FixedIntegerValue(value);
56 | }
57 |
58 | @Override
59 | public @NotNull List<@NotNull String> traverse(@NotNull StringFormatter formatter, int depth, @NotNull TraversKey key) {
60 | return MessageTraversUtil.single(formatter, depth, key, getValue());
61 | }
62 | }
63 |
--------------------------------------------------------------------------------
/common/src/main/java/de/derfrzocker/feature/common/value/target/TargetListType.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.common.value.target;
2 |
3 | import de.derfrzocker.feature.api.ValueType;
4 |
5 | import java.util.List;
6 |
7 | public abstract class TargetListType implements ValueType> {
8 | }
9 |
--------------------------------------------------------------------------------
/common/src/main/java/de/derfrzocker/feature/common/value/target/TargetListValue.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.common.value.target;
2 |
3 | import de.derfrzocker.feature.common.AbstractValue;
4 |
5 | import java.util.List;
6 |
7 | public abstract class TargetListValue extends AbstractValue> {
8 |
9 | @Override
10 | public abstract TargetListValue clone();
11 | }
12 |
--------------------------------------------------------------------------------
/impl/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 | 4.0.0
6 |
7 |
8 | ore-control-parent
9 | de.derfrzocker
10 | ${revision}
11 |
12 |
13 |
14 | v1_18_R1
15 | v1_18_R2
16 | v1_19_R1
17 | v1_19_R2
18 | v1_19_R3
19 | v1_20_R1
20 | v1_20_R2
21 | v1_20_R3
22 | v1_20_R4
23 | v1_21_R1
24 | v1_21_R2
25 | v1_21_R3
26 | v1_21_R4
27 |
28 |
29 | ore-control-impl
30 | pom
31 |
32 |
--------------------------------------------------------------------------------
/impl/v1_18_R1/src/main/java/de/derfrzocker/feature/impl/v1_18_R1/value/heightmap/HeightmapType.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.impl.v1_18_R1.value.heightmap;
2 |
3 | import de.derfrzocker.feature.api.ValueType;
4 | import net.minecraft.world.level.levelgen.Heightmap;
5 |
6 | public abstract class HeightmapType implements ValueType {
7 | }
8 |
--------------------------------------------------------------------------------
/impl/v1_18_R1/src/main/java/de/derfrzocker/feature/impl/v1_18_R1/value/heightmap/HeightmapValue.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.impl.v1_18_R1.value.heightmap;
2 |
3 | import de.derfrzocker.feature.common.AbstractValue;
4 | import net.minecraft.world.level.levelgen.Heightmap;
5 |
6 | public abstract class HeightmapValue extends AbstractValue {
7 |
8 | @Override
9 | public abstract HeightmapValue clone();
10 | }
11 |
--------------------------------------------------------------------------------
/impl/v1_18_R1/src/main/java/de/derfrzocker/feature/impl/v1_18_R1/value/offset/NMSAboveBottomOffsetIntegerValue.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.impl.v1_18_R1.value.offset;
2 |
3 | import de.derfrzocker.feature.common.value.number.IntegerValue;
4 | import de.derfrzocker.feature.common.value.offset.AboveBottomOffsetIntegerValue;
5 | import net.minecraft.world.level.WorldGenLevel;
6 | import org.bukkit.craftbukkit.v1_18_R1.generator.CraftLimitedRegion;
7 | import org.bukkit.generator.LimitedRegion;
8 | import org.bukkit.generator.WorldInfo;
9 | import org.bukkit.util.BlockVector;
10 | import org.jetbrains.annotations.NotNull;
11 |
12 | import java.util.Random;
13 |
14 | public class NMSAboveBottomOffsetIntegerValue extends AboveBottomOffsetIntegerValue {
15 |
16 | public NMSAboveBottomOffsetIntegerValue(IntegerValue base) {
17 | super(base);
18 | }
19 |
20 | @Override
21 | public Integer getValue(@NotNull WorldInfo worldInfo, @NotNull Random random, @NotNull BlockVector position, @NotNull LimitedRegion limitedRegion) {
22 | int baseValue = getBase() == null ? 0 : getBase().getValue(worldInfo, random, position, limitedRegion);
23 |
24 | WorldGenLevel level = ((CraftLimitedRegion) limitedRegion).getHandle();
25 |
26 | return Math.max(level.getMinBuildHeight(), level.getLevel().getChunkSource().chunkMap.generator.getMinY()) + baseValue;
27 | }
28 |
29 | @Override
30 | public AboveBottomOffsetIntegerValue clone() {
31 | return new NMSAboveBottomOffsetIntegerValue(getBase() == null ? null : getBase().clone());
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/impl/v1_18_R1/src/main/java/de/derfrzocker/feature/impl/v1_18_R1/value/offset/NMSBelowTopOffsetIntegerValue.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.impl.v1_18_R1.value.offset;
2 |
3 | import de.derfrzocker.feature.common.value.number.IntegerValue;
4 | import de.derfrzocker.feature.common.value.offset.BelowTopOffsetIntegerValue;
5 | import net.minecraft.world.level.WorldGenLevel;
6 | import net.minecraft.world.level.chunk.ChunkGenerator;
7 | import org.bukkit.craftbukkit.v1_18_R1.generator.CraftLimitedRegion;
8 | import org.bukkit.generator.LimitedRegion;
9 | import org.bukkit.generator.WorldInfo;
10 | import org.bukkit.util.BlockVector;
11 | import org.jetbrains.annotations.NotNull;
12 |
13 | import java.util.Random;
14 |
15 | public class NMSBelowTopOffsetIntegerValue extends BelowTopOffsetIntegerValue {
16 |
17 | public NMSBelowTopOffsetIntegerValue(IntegerValue base) {
18 | super(base);
19 | }
20 |
21 | @Override
22 | public Integer getValue(@NotNull WorldInfo worldInfo, @NotNull Random random, @NotNull BlockVector position, @NotNull LimitedRegion limitedRegion) {
23 | int baseValue = getBase() == null ? 0 : getBase().getValue(worldInfo, random, position, limitedRegion);
24 |
25 | WorldGenLevel level = ((CraftLimitedRegion) limitedRegion).getHandle();
26 | ChunkGenerator chunkGenerator = level.getLevel().getChunkSource().chunkMap.generator;
27 |
28 | return Math.min(level.getHeight(), chunkGenerator.getGenDepth()) - 1 + Math.max(level.getMinBuildHeight(), chunkGenerator.getMinY()) - baseValue;
29 | }
30 |
31 | @Override
32 | public NMSBelowTopOffsetIntegerValue clone() {
33 | return new NMSBelowTopOffsetIntegerValue(getBase() == null ? null : getBase().clone());
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/impl/v1_18_R1/src/main/java/de/derfrzocker/feature/impl/v1_18_R1/value/target/TargetType.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.impl.v1_18_R1.value.target;
2 |
3 | import de.derfrzocker.feature.api.ValueType;
4 | import net.minecraft.world.level.levelgen.feature.configurations.OreConfiguration;
5 |
6 | public abstract class TargetType implements ValueType {
7 | }
8 |
--------------------------------------------------------------------------------
/impl/v1_18_R1/src/main/java/de/derfrzocker/feature/impl/v1_18_R1/value/target/TargetValue.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.impl.v1_18_R1.value.target;
2 |
3 | import de.derfrzocker.feature.common.AbstractValue;
4 | import net.minecraft.world.level.levelgen.feature.configurations.OreConfiguration;
5 |
6 | public abstract class TargetValue extends AbstractValue {
7 |
8 | @Override
9 | public abstract TargetValue clone();
10 | }
11 |
--------------------------------------------------------------------------------
/impl/v1_18_R1/src/main/java/de/derfrzocker/ore/control/impl/v1_18_R1/NMSReflectionNames.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.ore.control.impl.v1_18_R1;
2 |
3 | public final class NMSReflectionNames {
4 |
5 | public final static String BIOME_GENERATION_SETTINGS_FEATURES = "e";
6 | public final static String BIOME_GENERATION_SETTINGS_FEATURE_SET = "g";
7 | public final static String WEIGHTED_LIST_INT_DISTRIBUTION = "b";
8 | public final static String COUNT_PLACEMENT_COUNT = "c";
9 | public final static String HEIGHT_RANGE_PLACEMENT_HEIGHT = "c";
10 | public final static String RARITY_FILTER_CHANCE = "c";
11 | public final static String SURFACE_RELATIVE_THRESHOLD_FILTER_HEIGHTMAP = "c";
12 | public final static String SURFACE_RELATIVE_THRESHOLD_FILTER_MIN_INCLUSIVE = "d";
13 | public final static String SURFACE_RELATIVE_THRESHOLD_FILTER_MAX_INCLUSIVE = "e";
14 | public final static String SURFACE_WATER_DEPTH_FILTER_MAX_WATER_DEPTH = "c";
15 | public static final String CLAMPED_INT_SOURCE = "b";
16 | public static final String CLAMPED_INT_MIN_INCLUSIVE = "f";
17 | public static final String CLAMPED_INT_MAX_INCLUSIVE = "g";
18 | public static final String CLAMPED_NORMAL_INT_MEAN = "b";
19 | public static final String CLAMPED_NORMAL_INT_DEVIATION = "f";
20 |
21 | private NMSReflectionNames() {
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/impl/v1_18_R1/src/main/java/de/derfrzocker/ore/control/impl/v1_18_R1/feature/generator/GlowstoneBlobFeatureGeneratorHook.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.ore.control.impl.v1_18_R1.feature.generator;
2 |
3 | import de.derfrzocker.feature.common.feature.generator.configuration.EmptyFeatureConfiguration;
4 | import de.derfrzocker.ore.control.api.Biome;
5 | import de.derfrzocker.ore.control.api.OreControlManager;
6 | import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration;
7 | import org.bukkit.NamespacedKey;
8 | import org.bukkit.generator.LimitedRegion;
9 | import org.bukkit.generator.WorldInfo;
10 | import org.bukkit.util.BlockVector;
11 | import org.jetbrains.annotations.NotNull;
12 |
13 | import java.util.Random;
14 |
15 | public class GlowstoneBlobFeatureGeneratorHook extends MinecraftFeatureGeneratorHook {
16 |
17 | public GlowstoneBlobFeatureGeneratorHook(@NotNull OreControlManager oreControlManager, Biome biome, NamespacedKey namespacedKey) {
18 | super(NoneFeatureConfiguration.CODEC, GLOWSTONE_BLOB, oreControlManager, "glowstone_blob", biome, namespacedKey);
19 | }
20 |
21 | @Override
22 | public NoneFeatureConfiguration createConfig(@NotNull NoneFeatureConfiguration defaultConfiguration, @NotNull WorldInfo worldInfo, @NotNull Random random, @NotNull BlockVector position, @NotNull LimitedRegion limitedRegion, @NotNull EmptyFeatureConfiguration configuration) {
23 | return defaultConfiguration;
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/impl/v1_18_R2/src/main/java/de/derfrzocker/feature/impl/v1_18_R2/value/heightmap/HeightmapType.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.impl.v1_18_R2.value.heightmap;
2 |
3 | import de.derfrzocker.feature.api.ValueType;
4 | import net.minecraft.world.level.levelgen.Heightmap;
5 |
6 | public abstract class HeightmapType implements ValueType {
7 | }
8 |
--------------------------------------------------------------------------------
/impl/v1_18_R2/src/main/java/de/derfrzocker/feature/impl/v1_18_R2/value/heightmap/HeightmapValue.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.impl.v1_18_R2.value.heightmap;
2 |
3 | import de.derfrzocker.feature.common.AbstractValue;
4 | import net.minecraft.world.level.levelgen.Heightmap;
5 |
6 | public abstract class HeightmapValue extends AbstractValue {
7 |
8 | @Override
9 | public abstract HeightmapValue clone();
10 | }
11 |
--------------------------------------------------------------------------------
/impl/v1_18_R2/src/main/java/de/derfrzocker/feature/impl/v1_18_R2/value/offset/NMSAboveBottomOffsetIntegerValue.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.impl.v1_18_R2.value.offset;
2 |
3 | import de.derfrzocker.feature.common.value.number.IntegerValue;
4 | import de.derfrzocker.feature.common.value.offset.AboveBottomOffsetIntegerValue;
5 | import net.minecraft.world.level.WorldGenLevel;
6 | import org.bukkit.craftbukkit.v1_18_R2.generator.CraftLimitedRegion;
7 | import org.bukkit.generator.LimitedRegion;
8 | import org.bukkit.generator.WorldInfo;
9 | import org.bukkit.util.BlockVector;
10 | import org.jetbrains.annotations.NotNull;
11 |
12 | import java.util.Random;
13 |
14 | public class NMSAboveBottomOffsetIntegerValue extends AboveBottomOffsetIntegerValue {
15 |
16 | public NMSAboveBottomOffsetIntegerValue(IntegerValue base) {
17 | super(base);
18 | }
19 |
20 | @Override
21 | public Integer getValue(@NotNull WorldInfo worldInfo, @NotNull Random random, @NotNull BlockVector position, @NotNull LimitedRegion limitedRegion) {
22 | int baseValue = getBase() == null ? 0 : getBase().getValue(worldInfo, random, position, limitedRegion);
23 |
24 | WorldGenLevel level = ((CraftLimitedRegion) limitedRegion).getHandle();
25 |
26 | return Math.max(level.getMinBuildHeight(), level.getLevel().getChunkSource().chunkMap.generator.getMinY()) + baseValue;
27 | }
28 |
29 | @Override
30 | public AboveBottomOffsetIntegerValue clone() {
31 | return new NMSAboveBottomOffsetIntegerValue(getBase() == null ? null : getBase().clone());
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/impl/v1_18_R2/src/main/java/de/derfrzocker/feature/impl/v1_18_R2/value/offset/NMSBelowTopOffsetIntegerValue.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.impl.v1_18_R2.value.offset;
2 |
3 | import de.derfrzocker.feature.common.value.number.IntegerValue;
4 | import de.derfrzocker.feature.common.value.offset.BelowTopOffsetIntegerValue;
5 | import net.minecraft.world.level.WorldGenLevel;
6 | import net.minecraft.world.level.chunk.ChunkGenerator;
7 | import org.bukkit.craftbukkit.v1_18_R2.generator.CraftLimitedRegion;
8 | import org.bukkit.generator.LimitedRegion;
9 | import org.bukkit.generator.WorldInfo;
10 | import org.bukkit.util.BlockVector;
11 | import org.jetbrains.annotations.NotNull;
12 |
13 | import java.util.Random;
14 |
15 | public class NMSBelowTopOffsetIntegerValue extends BelowTopOffsetIntegerValue {
16 |
17 | public NMSBelowTopOffsetIntegerValue(IntegerValue base) {
18 | super(base);
19 | }
20 |
21 | @Override
22 | public Integer getValue(@NotNull WorldInfo worldInfo, @NotNull Random random, @NotNull BlockVector position, @NotNull LimitedRegion limitedRegion) {
23 | int baseValue = getBase() == null ? 0 : getBase().getValue(worldInfo, random, position, limitedRegion);
24 |
25 | WorldGenLevel level = ((CraftLimitedRegion) limitedRegion).getHandle();
26 | ChunkGenerator chunkGenerator = level.getLevel().getChunkSource().chunkMap.generator;
27 |
28 | return Math.min(level.getHeight(), chunkGenerator.getGenDepth()) - 1 + Math.max(level.getMinBuildHeight(), chunkGenerator.getMinY()) - baseValue;
29 | }
30 |
31 | @Override
32 | public NMSBelowTopOffsetIntegerValue clone() {
33 | return new NMSBelowTopOffsetIntegerValue(getBase() == null ? null : getBase().clone());
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/impl/v1_18_R2/src/main/java/de/derfrzocker/feature/impl/v1_18_R2/value/target/TargetType.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.impl.v1_18_R2.value.target;
2 |
3 | import de.derfrzocker.feature.api.ValueType;
4 | import net.minecraft.world.level.levelgen.feature.configurations.OreConfiguration;
5 |
6 | public abstract class TargetType implements ValueType {
7 | }
8 |
--------------------------------------------------------------------------------
/impl/v1_18_R2/src/main/java/de/derfrzocker/feature/impl/v1_18_R2/value/target/TargetValue.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.impl.v1_18_R2.value.target;
2 |
3 | import de.derfrzocker.feature.common.AbstractValue;
4 | import net.minecraft.world.level.levelgen.feature.configurations.OreConfiguration;
5 |
6 | public abstract class TargetValue extends AbstractValue {
7 |
8 | @Override
9 | public abstract TargetValue clone();
10 | }
11 |
--------------------------------------------------------------------------------
/impl/v1_18_R2/src/main/java/de/derfrzocker/ore/control/impl/v1_18_R2/NMSReflectionNames.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.ore.control.impl.v1_18_R2;
2 |
3 | public final class NMSReflectionNames {
4 |
5 | public final static String BIOME_GENERATION_SETTINGS_FEATURES = "e";
6 | public final static String BIOME_GENERATION_SETTINGS_FEATURE_SET = "g";
7 | public final static String WEIGHTED_LIST_INT_DISTRIBUTION = "b";
8 | public final static String COUNT_PLACEMENT_COUNT = "c";
9 | public final static String HEIGHT_RANGE_PLACEMENT_HEIGHT = "c";
10 | public final static String RARITY_FILTER_CHANCE = "c";
11 | public final static String SURFACE_RELATIVE_THRESHOLD_FILTER_HEIGHTMAP = "c";
12 | public final static String SURFACE_RELATIVE_THRESHOLD_FILTER_MIN_INCLUSIVE = "d";
13 | public final static String SURFACE_RELATIVE_THRESHOLD_FILTER_MAX_INCLUSIVE = "e";
14 | public final static String SURFACE_WATER_DEPTH_FILTER_MAX_WATER_DEPTH = "c";
15 | public static final String CLAMPED_INT_SOURCE = "b";
16 | public static final String CLAMPED_INT_MIN_INCLUSIVE = "f";
17 | public static final String CLAMPED_INT_MAX_INCLUSIVE = "g";
18 | public static final String CLAMPED_NORMAL_INT_MEAN = "b";
19 | public static final String CLAMPED_NORMAL_INT_DEVIATION = "f";
20 |
21 | private NMSReflectionNames() {
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/impl/v1_18_R2/src/main/java/de/derfrzocker/ore/control/impl/v1_18_R2/feature/generator/GlowstoneBlobFeatureGeneratorHook.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.ore.control.impl.v1_18_R2.feature.generator;
2 |
3 | import de.derfrzocker.feature.common.feature.generator.configuration.EmptyFeatureConfiguration;
4 | import de.derfrzocker.ore.control.api.Biome;
5 | import de.derfrzocker.ore.control.api.OreControlManager;
6 | import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration;
7 | import org.bukkit.NamespacedKey;
8 | import org.bukkit.generator.LimitedRegion;
9 | import org.bukkit.generator.WorldInfo;
10 | import org.bukkit.util.BlockVector;
11 | import org.jetbrains.annotations.NotNull;
12 |
13 | import java.util.Random;
14 |
15 | public class GlowstoneBlobFeatureGeneratorHook extends MinecraftFeatureGeneratorHook {
16 |
17 | public GlowstoneBlobFeatureGeneratorHook(@NotNull OreControlManager oreControlManager, Biome biome, NamespacedKey namespacedKey) {
18 | super(NoneFeatureConfiguration.CODEC, GLOWSTONE_BLOB, oreControlManager, "glowstone_blob", biome, namespacedKey);
19 | }
20 |
21 | @Override
22 | public NoneFeatureConfiguration createConfig(@NotNull NoneFeatureConfiguration defaultConfiguration, @NotNull WorldInfo worldInfo, @NotNull Random random, @NotNull BlockVector position, @NotNull LimitedRegion limitedRegion, @NotNull EmptyFeatureConfiguration configuration) {
23 | return defaultConfiguration;
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/impl/v1_19_R1/src/main/java/de/derfrzocker/feature/impl/v1_19_R1/value/heightmap/HeightmapType.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.impl.v1_19_R1.value.heightmap;
2 |
3 | import de.derfrzocker.feature.api.ValueType;
4 | import net.minecraft.world.level.levelgen.Heightmap;
5 |
6 | public abstract class HeightmapType implements ValueType {
7 | }
8 |
--------------------------------------------------------------------------------
/impl/v1_19_R1/src/main/java/de/derfrzocker/feature/impl/v1_19_R1/value/heightmap/HeightmapValue.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.impl.v1_19_R1.value.heightmap;
2 |
3 | import de.derfrzocker.feature.common.AbstractValue;
4 | import net.minecraft.world.level.levelgen.Heightmap;
5 |
6 | public abstract class HeightmapValue extends AbstractValue {
7 |
8 | @Override
9 | public abstract HeightmapValue clone();
10 | }
11 |
--------------------------------------------------------------------------------
/impl/v1_19_R1/src/main/java/de/derfrzocker/feature/impl/v1_19_R1/value/offset/NMSAboveBottomOffsetIntegerValue.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.impl.v1_19_R1.value.offset;
2 |
3 | import de.derfrzocker.feature.common.value.number.IntegerValue;
4 | import de.derfrzocker.feature.common.value.offset.AboveBottomOffsetIntegerValue;
5 | import net.minecraft.world.level.WorldGenLevel;
6 | import org.bukkit.craftbukkit.v1_19_R1.generator.CraftLimitedRegion;
7 | import org.bukkit.generator.LimitedRegion;
8 | import org.bukkit.generator.WorldInfo;
9 | import org.bukkit.util.BlockVector;
10 | import org.jetbrains.annotations.NotNull;
11 |
12 | import java.util.Random;
13 |
14 | public class NMSAboveBottomOffsetIntegerValue extends AboveBottomOffsetIntegerValue {
15 |
16 | public NMSAboveBottomOffsetIntegerValue(IntegerValue base) {
17 | super(base);
18 | }
19 |
20 | @Override
21 | public Integer getValue(@NotNull WorldInfo worldInfo, @NotNull Random random, @NotNull BlockVector position, @NotNull LimitedRegion limitedRegion) {
22 | int baseValue = getBase() == null ? 0 : getBase().getValue(worldInfo, random, position, limitedRegion);
23 |
24 | WorldGenLevel level = ((CraftLimitedRegion) limitedRegion).getHandle();
25 |
26 | return Math.max(level.getMinBuildHeight(), level.getLevel().getChunkSource().chunkMap.generator.getMinY()) + baseValue;
27 | }
28 |
29 | @Override
30 | public AboveBottomOffsetIntegerValue clone() {
31 | return new NMSAboveBottomOffsetIntegerValue(getBase() == null ? null : getBase().clone());
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/impl/v1_19_R1/src/main/java/de/derfrzocker/feature/impl/v1_19_R1/value/offset/NMSBelowTopOffsetIntegerValue.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.impl.v1_19_R1.value.offset;
2 |
3 | import de.derfrzocker.feature.common.value.number.IntegerValue;
4 | import de.derfrzocker.feature.common.value.offset.BelowTopOffsetIntegerValue;
5 | import net.minecraft.world.level.WorldGenLevel;
6 | import net.minecraft.world.level.chunk.ChunkGenerator;
7 | import org.bukkit.craftbukkit.v1_19_R1.generator.CraftLimitedRegion;
8 | import org.bukkit.generator.LimitedRegion;
9 | import org.bukkit.generator.WorldInfo;
10 | import org.bukkit.util.BlockVector;
11 | import org.jetbrains.annotations.NotNull;
12 |
13 | import java.util.Random;
14 |
15 | public class NMSBelowTopOffsetIntegerValue extends BelowTopOffsetIntegerValue {
16 |
17 | public NMSBelowTopOffsetIntegerValue(IntegerValue base) {
18 | super(base);
19 | }
20 |
21 | @Override
22 | public Integer getValue(@NotNull WorldInfo worldInfo, @NotNull Random random, @NotNull BlockVector position, @NotNull LimitedRegion limitedRegion) {
23 | int baseValue = getBase() == null ? 0 : getBase().getValue(worldInfo, random, position, limitedRegion);
24 |
25 | WorldGenLevel level = ((CraftLimitedRegion) limitedRegion).getHandle();
26 | ChunkGenerator chunkGenerator = level.getLevel().getChunkSource().chunkMap.generator;
27 |
28 | return Math.min(level.getHeight(), chunkGenerator.getGenDepth()) - 1 + Math.max(level.getMinBuildHeight(), chunkGenerator.getMinY()) - baseValue;
29 | }
30 |
31 | @Override
32 | public NMSBelowTopOffsetIntegerValue clone() {
33 | return new NMSBelowTopOffsetIntegerValue(getBase() == null ? null : getBase().clone());
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/impl/v1_19_R1/src/main/java/de/derfrzocker/feature/impl/v1_19_R1/value/target/TargetType.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.impl.v1_19_R1.value.target;
2 |
3 | import de.derfrzocker.feature.api.ValueType;
4 | import net.minecraft.world.level.levelgen.feature.configurations.OreConfiguration;
5 |
6 | public abstract class TargetType implements ValueType {
7 | }
8 |
--------------------------------------------------------------------------------
/impl/v1_19_R1/src/main/java/de/derfrzocker/feature/impl/v1_19_R1/value/target/TargetValue.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.impl.v1_19_R1.value.target;
2 |
3 | import de.derfrzocker.feature.common.AbstractValue;
4 | import net.minecraft.world.level.levelgen.feature.configurations.OreConfiguration;
5 |
6 | public abstract class TargetValue extends AbstractValue {
7 |
8 | @Override
9 | public abstract TargetValue clone();
10 | }
11 |
--------------------------------------------------------------------------------
/impl/v1_19_R1/src/main/java/de/derfrzocker/ore/control/impl/v1_19_R1/NMSReflectionNames.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.ore.control.impl.v1_19_R1;
2 |
3 | public final class NMSReflectionNames {
4 |
5 | public final static String BIOME_GENERATION_SETTINGS_FEATURES = "e";
6 | public final static String BIOME_GENERATION_SETTINGS_FEATURE_SET = "g";
7 | public final static String WEIGHTED_LIST_INT_DISTRIBUTION = "b";
8 | public final static String COUNT_PLACEMENT_COUNT = "c";
9 | public final static String HEIGHT_RANGE_PLACEMENT_HEIGHT = "c";
10 | public final static String RARITY_FILTER_CHANCE = "c";
11 | public final static String SURFACE_RELATIVE_THRESHOLD_FILTER_HEIGHTMAP = "c";
12 | public final static String SURFACE_RELATIVE_THRESHOLD_FILTER_MIN_INCLUSIVE = "d";
13 | public final static String SURFACE_RELATIVE_THRESHOLD_FILTER_MAX_INCLUSIVE = "e";
14 | public final static String SURFACE_WATER_DEPTH_FILTER_MAX_WATER_DEPTH = "c";
15 | public static final String CLAMPED_INT_SOURCE = "b";
16 | public static final String CLAMPED_INT_MIN_INCLUSIVE = "f";
17 | public static final String CLAMPED_INT_MAX_INCLUSIVE = "g";
18 | public static final String CLAMPED_NORMAL_INT_MEAN = "b";
19 | public static final String CLAMPED_NORMAL_INT_DEVIATION = "f";
20 | public static final String CHUNK_MAP_GENERATOR = "u";
21 | public static final String NOISE_GENERATOR_SETTINGS = "g";
22 |
23 | private NMSReflectionNames() {
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/impl/v1_19_R1/src/main/java/de/derfrzocker/ore/control/impl/v1_19_R1/feature/generator/GlowstoneBlobFeatureGeneratorHook.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.ore.control.impl.v1_19_R1.feature.generator;
2 |
3 | import de.derfrzocker.feature.common.feature.generator.configuration.EmptyFeatureConfiguration;
4 | import de.derfrzocker.ore.control.api.Biome;
5 | import de.derfrzocker.ore.control.api.OreControlManager;
6 | import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration;
7 | import org.bukkit.NamespacedKey;
8 | import org.bukkit.generator.LimitedRegion;
9 | import org.bukkit.generator.WorldInfo;
10 | import org.bukkit.util.BlockVector;
11 | import org.jetbrains.annotations.NotNull;
12 |
13 | import java.util.Random;
14 |
15 | public class GlowstoneBlobFeatureGeneratorHook extends MinecraftFeatureGeneratorHook {
16 |
17 | public GlowstoneBlobFeatureGeneratorHook(@NotNull OreControlManager oreControlManager, Biome biome, NamespacedKey namespacedKey) {
18 | super(NoneFeatureConfiguration.CODEC, GLOWSTONE_BLOB, oreControlManager, "glowstone_blob", biome, namespacedKey);
19 | }
20 |
21 | @Override
22 | public NoneFeatureConfiguration createConfig(@NotNull NoneFeatureConfiguration defaultConfiguration, @NotNull WorldInfo worldInfo, @NotNull Random random, @NotNull BlockVector position, @NotNull LimitedRegion limitedRegion, @NotNull EmptyFeatureConfiguration configuration) {
23 | return defaultConfiguration;
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/impl/v1_19_R2/src/main/java/de/derfrzocker/feature/impl/v1_19_R2/value/heightmap/HeightmapType.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.impl.v1_19_R2.value.heightmap;
2 |
3 | import de.derfrzocker.feature.api.ValueType;
4 | import net.minecraft.world.level.levelgen.Heightmap;
5 |
6 | public abstract class HeightmapType implements ValueType {
7 | }
8 |
--------------------------------------------------------------------------------
/impl/v1_19_R2/src/main/java/de/derfrzocker/feature/impl/v1_19_R2/value/heightmap/HeightmapValue.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.impl.v1_19_R2.value.heightmap;
2 |
3 | import de.derfrzocker.feature.common.AbstractValue;
4 | import net.minecraft.world.level.levelgen.Heightmap;
5 |
6 | public abstract class HeightmapValue extends AbstractValue {
7 |
8 | @Override
9 | public abstract HeightmapValue clone();
10 | }
11 |
--------------------------------------------------------------------------------
/impl/v1_19_R2/src/main/java/de/derfrzocker/feature/impl/v1_19_R2/value/offset/NMSAboveBottomOffsetIntegerValue.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.impl.v1_19_R2.value.offset;
2 |
3 | import de.derfrzocker.feature.common.value.number.IntegerValue;
4 | import de.derfrzocker.feature.common.value.offset.AboveBottomOffsetIntegerValue;
5 | import net.minecraft.world.level.WorldGenLevel;
6 | import org.bukkit.craftbukkit.v1_19_R2.generator.CraftLimitedRegion;
7 | import org.bukkit.generator.LimitedRegion;
8 | import org.bukkit.generator.WorldInfo;
9 | import org.bukkit.util.BlockVector;
10 | import org.jetbrains.annotations.NotNull;
11 |
12 | import java.util.Random;
13 |
14 | public class NMSAboveBottomOffsetIntegerValue extends AboveBottomOffsetIntegerValue {
15 |
16 | public NMSAboveBottomOffsetIntegerValue(IntegerValue base) {
17 | super(base);
18 | }
19 |
20 | @Override
21 | public Integer getValue(@NotNull WorldInfo worldInfo, @NotNull Random random, @NotNull BlockVector position, @NotNull LimitedRegion limitedRegion) {
22 | int baseValue = getBase() == null ? 0 : getBase().getValue(worldInfo, random, position, limitedRegion);
23 |
24 | WorldGenLevel level = ((CraftLimitedRegion) limitedRegion).getHandle();
25 |
26 | return Math.max(level.getMinBuildHeight(), level.getLevel().getChunkSource().chunkMap.generator.getMinY()) + baseValue;
27 | }
28 |
29 | @Override
30 | public AboveBottomOffsetIntegerValue clone() {
31 | return new NMSAboveBottomOffsetIntegerValue(getBase() == null ? null : getBase().clone());
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/impl/v1_19_R2/src/main/java/de/derfrzocker/feature/impl/v1_19_R2/value/offset/NMSBelowTopOffsetIntegerValue.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.impl.v1_19_R2.value.offset;
2 |
3 | import de.derfrzocker.feature.common.value.number.IntegerValue;
4 | import de.derfrzocker.feature.common.value.offset.BelowTopOffsetIntegerValue;
5 | import net.minecraft.world.level.WorldGenLevel;
6 | import net.minecraft.world.level.chunk.ChunkGenerator;
7 | import org.bukkit.craftbukkit.v1_19_R2.generator.CraftLimitedRegion;
8 | import org.bukkit.generator.LimitedRegion;
9 | import org.bukkit.generator.WorldInfo;
10 | import org.bukkit.util.BlockVector;
11 | import org.jetbrains.annotations.NotNull;
12 |
13 | import java.util.Random;
14 |
15 | public class NMSBelowTopOffsetIntegerValue extends BelowTopOffsetIntegerValue {
16 |
17 | public NMSBelowTopOffsetIntegerValue(IntegerValue base) {
18 | super(base);
19 | }
20 |
21 | @Override
22 | public Integer getValue(@NotNull WorldInfo worldInfo, @NotNull Random random, @NotNull BlockVector position, @NotNull LimitedRegion limitedRegion) {
23 | int baseValue = getBase() == null ? 0 : getBase().getValue(worldInfo, random, position, limitedRegion);
24 |
25 | WorldGenLevel level = ((CraftLimitedRegion) limitedRegion).getHandle();
26 | ChunkGenerator chunkGenerator = level.getLevel().getChunkSource().chunkMap.generator;
27 |
28 | return Math.min(level.getHeight(), chunkGenerator.getGenDepth()) - 1 + Math.max(level.getMinBuildHeight(), chunkGenerator.getMinY()) - baseValue;
29 | }
30 |
31 | @Override
32 | public NMSBelowTopOffsetIntegerValue clone() {
33 | return new NMSBelowTopOffsetIntegerValue(getBase() == null ? null : getBase().clone());
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/impl/v1_19_R2/src/main/java/de/derfrzocker/feature/impl/v1_19_R2/value/target/TargetType.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.impl.v1_19_R2.value.target;
2 |
3 | import de.derfrzocker.feature.api.ValueType;
4 | import net.minecraft.world.level.levelgen.feature.configurations.OreConfiguration;
5 |
6 | public abstract class TargetType implements ValueType {
7 | }
8 |
--------------------------------------------------------------------------------
/impl/v1_19_R2/src/main/java/de/derfrzocker/feature/impl/v1_19_R2/value/target/TargetValue.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.impl.v1_19_R2.value.target;
2 |
3 | import de.derfrzocker.feature.common.AbstractValue;
4 | import net.minecraft.world.level.levelgen.feature.configurations.OreConfiguration;
5 |
6 | public abstract class TargetValue extends AbstractValue {
7 |
8 | @Override
9 | public abstract TargetValue clone();
10 | }
11 |
--------------------------------------------------------------------------------
/impl/v1_19_R2/src/main/java/de/derfrzocker/ore/control/impl/v1_19_R2/NMSReflectionNames.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.ore.control.impl.v1_19_R2;
2 |
3 | public final class NMSReflectionNames {
4 |
5 | public final static String BIOME_GENERATION_SETTINGS_FEATURES = "e";
6 | public final static String BIOME_GENERATION_SETTINGS_FEATURE_SET = "g";
7 | public final static String WEIGHTED_LIST_INT_DISTRIBUTION = "b";
8 | public final static String COUNT_PLACEMENT_COUNT = "c";
9 | public final static String HEIGHT_RANGE_PLACEMENT_HEIGHT = "c";
10 | public final static String RARITY_FILTER_CHANCE = "c";
11 | public final static String SURFACE_RELATIVE_THRESHOLD_FILTER_HEIGHTMAP = "c";
12 | public final static String SURFACE_RELATIVE_THRESHOLD_FILTER_MIN_INCLUSIVE = "d";
13 | public final static String SURFACE_RELATIVE_THRESHOLD_FILTER_MAX_INCLUSIVE = "e";
14 | public final static String SURFACE_WATER_DEPTH_FILTER_MAX_WATER_DEPTH = "c";
15 | public static final String CLAMPED_INT_SOURCE = "b";
16 | public static final String CLAMPED_INT_MIN_INCLUSIVE = "f";
17 | public static final String CLAMPED_INT_MAX_INCLUSIVE = "g";
18 | public static final String CLAMPED_NORMAL_INT_MEAN = "b";
19 | public static final String CLAMPED_NORMAL_INT_DEVIATION = "f";
20 | public static final String CHUNK_MAP_GENERATOR = "u";
21 | public static final String NOISE_GENERATOR_SETTINGS = "e";
22 |
23 | private NMSReflectionNames() {
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/impl/v1_19_R2/src/main/java/de/derfrzocker/ore/control/impl/v1_19_R2/feature/generator/GlowstoneBlobFeatureGeneratorHook.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.ore.control.impl.v1_19_R2.feature.generator;
2 |
3 | import de.derfrzocker.feature.common.feature.generator.configuration.EmptyFeatureConfiguration;
4 | import de.derfrzocker.ore.control.api.Biome;
5 | import de.derfrzocker.ore.control.api.OreControlManager;
6 | import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration;
7 | import org.bukkit.NamespacedKey;
8 | import org.bukkit.generator.LimitedRegion;
9 | import org.bukkit.generator.WorldInfo;
10 | import org.bukkit.util.BlockVector;
11 | import org.jetbrains.annotations.NotNull;
12 |
13 | import java.util.Random;
14 |
15 | public class GlowstoneBlobFeatureGeneratorHook extends MinecraftFeatureGeneratorHook {
16 |
17 | public GlowstoneBlobFeatureGeneratorHook(@NotNull OreControlManager oreControlManager, Biome biome, NamespacedKey namespacedKey) {
18 | super(NoneFeatureConfiguration.CODEC, GLOWSTONE_BLOB, oreControlManager, "glowstone_blob", biome, namespacedKey);
19 | }
20 |
21 | @Override
22 | public NoneFeatureConfiguration createConfig(@NotNull NoneFeatureConfiguration defaultConfiguration, @NotNull WorldInfo worldInfo, @NotNull Random random, @NotNull BlockVector position, @NotNull LimitedRegion limitedRegion, @NotNull EmptyFeatureConfiguration configuration) {
23 | return defaultConfiguration;
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/impl/v1_19_R3/src/main/java/de/derfrzocker/feature/impl/v1_19_R3/value/heightmap/HeightmapType.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.impl.v1_19_R3.value.heightmap;
2 |
3 | import de.derfrzocker.feature.api.ValueType;
4 | import net.minecraft.world.level.levelgen.Heightmap;
5 |
6 | public abstract class HeightmapType implements ValueType {
7 | }
8 |
--------------------------------------------------------------------------------
/impl/v1_19_R3/src/main/java/de/derfrzocker/feature/impl/v1_19_R3/value/heightmap/HeightmapValue.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.impl.v1_19_R3.value.heightmap;
2 |
3 | import de.derfrzocker.feature.common.AbstractValue;
4 | import net.minecraft.world.level.levelgen.Heightmap;
5 |
6 | public abstract class HeightmapValue extends AbstractValue {
7 |
8 | @Override
9 | public abstract HeightmapValue clone();
10 | }
11 |
--------------------------------------------------------------------------------
/impl/v1_19_R3/src/main/java/de/derfrzocker/feature/impl/v1_19_R3/value/offset/NMSAboveBottomOffsetIntegerValue.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.impl.v1_19_R3.value.offset;
2 |
3 | import de.derfrzocker.feature.common.value.number.IntegerValue;
4 | import de.derfrzocker.feature.common.value.offset.AboveBottomOffsetIntegerValue;
5 | import net.minecraft.world.level.WorldGenLevel;
6 | import org.bukkit.craftbukkit.v1_19_R3.generator.CraftLimitedRegion;
7 | import org.bukkit.generator.LimitedRegion;
8 | import org.bukkit.generator.WorldInfo;
9 | import org.bukkit.util.BlockVector;
10 | import org.jetbrains.annotations.NotNull;
11 |
12 | import java.util.Random;
13 |
14 | public class NMSAboveBottomOffsetIntegerValue extends AboveBottomOffsetIntegerValue {
15 |
16 | public NMSAboveBottomOffsetIntegerValue(IntegerValue base) {
17 | super(base);
18 | }
19 |
20 | @Override
21 | public Integer getValue(@NotNull WorldInfo worldInfo, @NotNull Random random, @NotNull BlockVector position, @NotNull LimitedRegion limitedRegion) {
22 | int baseValue = getBase() == null ? 0 : getBase().getValue(worldInfo, random, position, limitedRegion);
23 |
24 | WorldGenLevel level = ((CraftLimitedRegion) limitedRegion).getHandle();
25 |
26 | return Math.max(level.getMinBuildHeight(), level.getLevel().getChunkSource().chunkMap.generator.getMinY()) + baseValue;
27 | }
28 |
29 | @Override
30 | public AboveBottomOffsetIntegerValue clone() {
31 | return new NMSAboveBottomOffsetIntegerValue(getBase() == null ? null : getBase().clone());
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/impl/v1_19_R3/src/main/java/de/derfrzocker/feature/impl/v1_19_R3/value/offset/NMSBelowTopOffsetIntegerValue.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.impl.v1_19_R3.value.offset;
2 |
3 | import de.derfrzocker.feature.common.value.number.IntegerValue;
4 | import de.derfrzocker.feature.common.value.offset.BelowTopOffsetIntegerValue;
5 | import net.minecraft.world.level.WorldGenLevel;
6 | import net.minecraft.world.level.chunk.ChunkGenerator;
7 | import org.bukkit.craftbukkit.v1_19_R3.generator.CraftLimitedRegion;
8 | import org.bukkit.generator.LimitedRegion;
9 | import org.bukkit.generator.WorldInfo;
10 | import org.bukkit.util.BlockVector;
11 | import org.jetbrains.annotations.NotNull;
12 |
13 | import java.util.Random;
14 |
15 | public class NMSBelowTopOffsetIntegerValue extends BelowTopOffsetIntegerValue {
16 |
17 | public NMSBelowTopOffsetIntegerValue(IntegerValue base) {
18 | super(base);
19 | }
20 |
21 | @Override
22 | public Integer getValue(@NotNull WorldInfo worldInfo, @NotNull Random random, @NotNull BlockVector position, @NotNull LimitedRegion limitedRegion) {
23 | int baseValue = getBase() == null ? 0 : getBase().getValue(worldInfo, random, position, limitedRegion);
24 |
25 | WorldGenLevel level = ((CraftLimitedRegion) limitedRegion).getHandle();
26 | ChunkGenerator chunkGenerator = level.getLevel().getChunkSource().chunkMap.generator;
27 |
28 | return Math.min(level.getHeight(), chunkGenerator.getGenDepth()) - 1 + Math.max(level.getMinBuildHeight(), chunkGenerator.getMinY()) - baseValue;
29 | }
30 |
31 | @Override
32 | public NMSBelowTopOffsetIntegerValue clone() {
33 | return new NMSBelowTopOffsetIntegerValue(getBase() == null ? null : getBase().clone());
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/impl/v1_19_R3/src/main/java/de/derfrzocker/ore/control/impl/v1_19_R3/NMSReflectionNames.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.ore.control.impl.v1_19_R3;
2 |
3 | public final class NMSReflectionNames {
4 |
5 | public final static String BIOME_GENERATION_SETTINGS_FEATURES = "e";
6 | public final static String BIOME_GENERATION_SETTINGS_FEATURE_SET = "g";
7 | public final static String WEIGHTED_LIST_INT_DISTRIBUTION = "b";
8 | public final static String COUNT_PLACEMENT_COUNT = "c";
9 | public final static String HEIGHT_RANGE_PLACEMENT_HEIGHT = "c";
10 | public final static String RARITY_FILTER_CHANCE = "c";
11 | public final static String SURFACE_RELATIVE_THRESHOLD_FILTER_HEIGHTMAP = "c";
12 | public final static String SURFACE_RELATIVE_THRESHOLD_FILTER_MIN_INCLUSIVE = "d";
13 | public final static String SURFACE_RELATIVE_THRESHOLD_FILTER_MAX_INCLUSIVE = "e";
14 | public final static String SURFACE_WATER_DEPTH_FILTER_MAX_WATER_DEPTH = "c";
15 | public static final String CLAMPED_INT_SOURCE = "b";
16 | public static final String CLAMPED_INT_MIN_INCLUSIVE = "f";
17 | public static final String CLAMPED_INT_MAX_INCLUSIVE = "g";
18 | public static final String CLAMPED_NORMAL_INT_MEAN = "b";
19 | public static final String CLAMPED_NORMAL_INT_DEVIATION = "f";
20 | public static final String CHUNK_MAP_GENERATOR = "u";
21 | public static final String NOISE_GENERATOR_SETTINGS = "e";
22 |
23 | private NMSReflectionNames() {
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/impl/v1_19_R3/src/main/java/de/derfrzocker/ore/control/impl/v1_19_R3/feature/generator/EmptyConfigurationGeneratorHook.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.ore.control.impl.v1_19_R3.feature.generator;
2 |
3 | import de.derfrzocker.feature.common.feature.generator.configuration.EmptyFeatureConfiguration;
4 | import de.derfrzocker.ore.control.api.Biome;
5 | import de.derfrzocker.ore.control.api.OreControlManager;
6 | import net.minecraft.world.level.levelgen.feature.Feature;
7 | import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration;
8 | import org.bukkit.NamespacedKey;
9 | import org.bukkit.generator.LimitedRegion;
10 | import org.bukkit.generator.WorldInfo;
11 | import org.bukkit.util.BlockVector;
12 | import org.jetbrains.annotations.NotNull;
13 |
14 | import java.util.Random;
15 |
16 | public class EmptyConfigurationGeneratorHook extends MinecraftFeatureGeneratorHook {
17 |
18 | private EmptyConfigurationGeneratorHook(Feature feature, @NotNull OreControlManager oreControlManager, @NotNull String name, Biome biome, NamespacedKey namespacedKey) {
19 | super(NoneFeatureConfiguration.CODEC, feature, oreControlManager, name, biome, namespacedKey);
20 | }
21 |
22 | public static EmptyConfigurationGeneratorHook createGlowstoneBlobHook(@NotNull OreControlManager oreControlManager, @NotNull NamespacedKey namespacedKey, @NotNull Biome biome) {
23 | return new EmptyConfigurationGeneratorHook(GLOWSTONE_BLOB, oreControlManager, "glowstone_blob", biome, namespacedKey);
24 | }
25 |
26 | @Override
27 | public NoneFeatureConfiguration createConfig(@NotNull NoneFeatureConfiguration defaultConfiguration, @NotNull WorldInfo worldInfo, @NotNull Random random, @NotNull BlockVector position, @NotNull LimitedRegion limitedRegion, @NotNull EmptyFeatureConfiguration configuration) {
28 | return defaultConfiguration;
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/impl/v1_20_R1/src/main/java/de/derfrzocker/feature/impl/v1_20_R1/value/heightmap/HeightmapType.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.impl.v1_20_R1.value.heightmap;
2 |
3 | import de.derfrzocker.feature.api.ValueType;
4 | import net.minecraft.world.level.levelgen.Heightmap;
5 |
6 | public abstract class HeightmapType implements ValueType {
7 | }
8 |
--------------------------------------------------------------------------------
/impl/v1_20_R1/src/main/java/de/derfrzocker/feature/impl/v1_20_R1/value/heightmap/HeightmapValue.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.impl.v1_20_R1.value.heightmap;
2 |
3 | import de.derfrzocker.feature.common.AbstractValue;
4 | import net.minecraft.world.level.levelgen.Heightmap;
5 |
6 | public abstract class HeightmapValue extends AbstractValue {
7 |
8 | @Override
9 | public abstract HeightmapValue clone();
10 | }
11 |
--------------------------------------------------------------------------------
/impl/v1_20_R1/src/main/java/de/derfrzocker/feature/impl/v1_20_R1/value/offset/NMSAboveBottomOffsetIntegerValue.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.impl.v1_20_R1.value.offset;
2 |
3 | import de.derfrzocker.feature.common.value.number.IntegerValue;
4 | import de.derfrzocker.feature.common.value.offset.AboveBottomOffsetIntegerValue;
5 | import net.minecraft.world.level.WorldGenLevel;
6 | import org.bukkit.craftbukkit.v1_20_R1.generator.CraftLimitedRegion;
7 | import org.bukkit.generator.LimitedRegion;
8 | import org.bukkit.generator.WorldInfo;
9 | import org.bukkit.util.BlockVector;
10 | import org.jetbrains.annotations.NotNull;
11 |
12 | import java.util.Random;
13 |
14 | public class NMSAboveBottomOffsetIntegerValue extends AboveBottomOffsetIntegerValue {
15 |
16 | public NMSAboveBottomOffsetIntegerValue(IntegerValue base) {
17 | super(base);
18 | }
19 |
20 | @Override
21 | public Integer getValue(@NotNull WorldInfo worldInfo, @NotNull Random random, @NotNull BlockVector position, @NotNull LimitedRegion limitedRegion) {
22 | int baseValue = getBase() == null ? 0 : getBase().getValue(worldInfo, random, position, limitedRegion);
23 |
24 | WorldGenLevel level = ((CraftLimitedRegion) limitedRegion).getHandle();
25 |
26 | return Math.max(level.getMinBuildHeight(), level.getLevel().getChunkSource().chunkMap.generator.getMinY()) + baseValue;
27 | }
28 |
29 | @Override
30 | public AboveBottomOffsetIntegerValue clone() {
31 | return new NMSAboveBottomOffsetIntegerValue(getBase() == null ? null : getBase().clone());
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/impl/v1_20_R1/src/main/java/de/derfrzocker/feature/impl/v1_20_R1/value/offset/NMSBelowTopOffsetIntegerValue.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.impl.v1_20_R1.value.offset;
2 |
3 | import de.derfrzocker.feature.common.value.number.IntegerValue;
4 | import de.derfrzocker.feature.common.value.offset.BelowTopOffsetIntegerValue;
5 | import net.minecraft.world.level.WorldGenLevel;
6 | import net.minecraft.world.level.chunk.ChunkGenerator;
7 | import org.bukkit.craftbukkit.v1_20_R1.generator.CraftLimitedRegion;
8 | import org.bukkit.generator.LimitedRegion;
9 | import org.bukkit.generator.WorldInfo;
10 | import org.bukkit.util.BlockVector;
11 | import org.jetbrains.annotations.NotNull;
12 |
13 | import java.util.Random;
14 |
15 | public class NMSBelowTopOffsetIntegerValue extends BelowTopOffsetIntegerValue {
16 |
17 | public NMSBelowTopOffsetIntegerValue(IntegerValue base) {
18 | super(base);
19 | }
20 |
21 | @Override
22 | public Integer getValue(@NotNull WorldInfo worldInfo, @NotNull Random random, @NotNull BlockVector position, @NotNull LimitedRegion limitedRegion) {
23 | int baseValue = getBase() == null ? 0 : getBase().getValue(worldInfo, random, position, limitedRegion);
24 |
25 | WorldGenLevel level = ((CraftLimitedRegion) limitedRegion).getHandle();
26 | ChunkGenerator chunkGenerator = level.getLevel().getChunkSource().chunkMap.generator;
27 |
28 | return Math.min(level.getHeight(), chunkGenerator.getGenDepth()) - 1 + Math.max(level.getMinBuildHeight(), chunkGenerator.getMinY()) - baseValue;
29 | }
30 |
31 | @Override
32 | public NMSBelowTopOffsetIntegerValue clone() {
33 | return new NMSBelowTopOffsetIntegerValue(getBase() == null ? null : getBase().clone());
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/impl/v1_20_R1/src/main/java/de/derfrzocker/ore/control/impl/v1_20_R1/NMSReflectionNames.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.ore.control.impl.v1_20_R1;
2 |
3 | public final class NMSReflectionNames {
4 |
5 | public final static String BIOME_GENERATION_SETTINGS_FEATURES = "e";
6 | public final static String BIOME_GENERATION_SETTINGS_FEATURE_SET = "g";
7 | public final static String WEIGHTED_LIST_INT_DISTRIBUTION = "b";
8 | public final static String COUNT_PLACEMENT_COUNT = "c";
9 | public final static String HEIGHT_RANGE_PLACEMENT_HEIGHT = "c";
10 | public final static String RARITY_FILTER_CHANCE = "c";
11 | public final static String SURFACE_RELATIVE_THRESHOLD_FILTER_HEIGHTMAP = "c";
12 | public final static String SURFACE_RELATIVE_THRESHOLD_FILTER_MIN_INCLUSIVE = "d";
13 | public final static String SURFACE_RELATIVE_THRESHOLD_FILTER_MAX_INCLUSIVE = "e";
14 | public final static String SURFACE_WATER_DEPTH_FILTER_MAX_WATER_DEPTH = "c";
15 | public static final String CLAMPED_INT_SOURCE = "b";
16 | public static final String CLAMPED_INT_MIN_INCLUSIVE = "f";
17 | public static final String CLAMPED_INT_MAX_INCLUSIVE = "g";
18 | public static final String CLAMPED_NORMAL_INT_MEAN = "b";
19 | public static final String CLAMPED_NORMAL_INT_DEVIATION = "f";
20 | public static final String CHUNK_MAP_GENERATOR = "t";
21 | public static final String NOISE_GENERATOR_SETTINGS = "e";
22 |
23 | private NMSReflectionNames() {
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/impl/v1_20_R1/src/main/java/de/derfrzocker/ore/control/impl/v1_20_R1/feature/generator/EmptyConfigurationGeneratorHook.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.ore.control.impl.v1_20_R1.feature.generator;
2 |
3 | import de.derfrzocker.feature.common.feature.generator.configuration.EmptyFeatureConfiguration;
4 | import de.derfrzocker.ore.control.api.Biome;
5 | import de.derfrzocker.ore.control.api.OreControlManager;
6 | import net.minecraft.world.level.levelgen.feature.Feature;
7 | import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration;
8 | import org.bukkit.NamespacedKey;
9 | import org.bukkit.generator.LimitedRegion;
10 | import org.bukkit.generator.WorldInfo;
11 | import org.bukkit.util.BlockVector;
12 | import org.jetbrains.annotations.NotNull;
13 |
14 | import java.util.Random;
15 |
16 | public class EmptyConfigurationGeneratorHook extends MinecraftFeatureGeneratorHook {
17 |
18 | private EmptyConfigurationGeneratorHook(Feature feature, @NotNull OreControlManager oreControlManager, @NotNull String name, Biome biome, NamespacedKey namespacedKey) {
19 | super(NoneFeatureConfiguration.CODEC, feature, oreControlManager, name, biome, namespacedKey);
20 | }
21 |
22 | public static EmptyConfigurationGeneratorHook createGlowstoneBlobHook(@NotNull OreControlManager oreControlManager, @NotNull NamespacedKey namespacedKey, @NotNull Biome biome) {
23 | return new EmptyConfigurationGeneratorHook(GLOWSTONE_BLOB, oreControlManager, "glowstone_blob", biome, namespacedKey);
24 | }
25 |
26 | @Override
27 | public NoneFeatureConfiguration createConfig(@NotNull NoneFeatureConfiguration defaultConfiguration, @NotNull WorldInfo worldInfo, @NotNull Random random, @NotNull BlockVector position, @NotNull LimitedRegion limitedRegion, @NotNull EmptyFeatureConfiguration configuration) {
28 | return defaultConfiguration;
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/impl/v1_20_R2/src/main/java/de/derfrzocker/feature/impl/v1_20_R2/value/heightmap/HeightmapType.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.impl.v1_20_R2.value.heightmap;
2 |
3 | import de.derfrzocker.feature.api.ValueType;
4 | import net.minecraft.world.level.levelgen.Heightmap;
5 |
6 | public abstract class HeightmapType implements ValueType {
7 | }
8 |
--------------------------------------------------------------------------------
/impl/v1_20_R2/src/main/java/de/derfrzocker/feature/impl/v1_20_R2/value/heightmap/HeightmapValue.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.impl.v1_20_R2.value.heightmap;
2 |
3 | import de.derfrzocker.feature.common.AbstractValue;
4 | import net.minecraft.world.level.levelgen.Heightmap;
5 |
6 | public abstract class HeightmapValue extends AbstractValue {
7 |
8 | @Override
9 | public abstract HeightmapValue clone();
10 | }
11 |
--------------------------------------------------------------------------------
/impl/v1_20_R2/src/main/java/de/derfrzocker/feature/impl/v1_20_R2/value/offset/NMSAboveBottomOffsetIntegerValue.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.impl.v1_20_R2.value.offset;
2 |
3 | import de.derfrzocker.feature.common.value.number.IntegerValue;
4 | import de.derfrzocker.feature.common.value.offset.AboveBottomOffsetIntegerValue;
5 | import net.minecraft.world.level.WorldGenLevel;
6 | import org.bukkit.craftbukkit.v1_20_R2.generator.CraftLimitedRegion;
7 | import org.bukkit.generator.LimitedRegion;
8 | import org.bukkit.generator.WorldInfo;
9 | import org.bukkit.util.BlockVector;
10 | import org.jetbrains.annotations.NotNull;
11 |
12 | import java.util.Random;
13 |
14 | public class NMSAboveBottomOffsetIntegerValue extends AboveBottomOffsetIntegerValue {
15 |
16 | public NMSAboveBottomOffsetIntegerValue(IntegerValue base) {
17 | super(base);
18 | }
19 |
20 | @Override
21 | public Integer getValue(@NotNull WorldInfo worldInfo, @NotNull Random random, @NotNull BlockVector position, @NotNull LimitedRegion limitedRegion) {
22 | int baseValue = getBase() == null ? 0 : getBase().getValue(worldInfo, random, position, limitedRegion);
23 |
24 | WorldGenLevel level = ((CraftLimitedRegion) limitedRegion).getHandle();
25 |
26 | return Math.max(level.getMinBuildHeight(), level.getLevel().getChunkSource().chunkMap.generator.getMinY()) + baseValue;
27 | }
28 |
29 | @Override
30 | public AboveBottomOffsetIntegerValue clone() {
31 | return new NMSAboveBottomOffsetIntegerValue(getBase() == null ? null : getBase().clone());
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/impl/v1_20_R2/src/main/java/de/derfrzocker/feature/impl/v1_20_R2/value/offset/NMSBelowTopOffsetIntegerValue.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.impl.v1_20_R2.value.offset;
2 |
3 | import de.derfrzocker.feature.common.value.number.IntegerValue;
4 | import de.derfrzocker.feature.common.value.offset.BelowTopOffsetIntegerValue;
5 | import net.minecraft.world.level.WorldGenLevel;
6 | import net.minecraft.world.level.chunk.ChunkGenerator;
7 | import org.bukkit.craftbukkit.v1_20_R2.generator.CraftLimitedRegion;
8 | import org.bukkit.generator.LimitedRegion;
9 | import org.bukkit.generator.WorldInfo;
10 | import org.bukkit.util.BlockVector;
11 | import org.jetbrains.annotations.NotNull;
12 |
13 | import java.util.Random;
14 |
15 | public class NMSBelowTopOffsetIntegerValue extends BelowTopOffsetIntegerValue {
16 |
17 | public NMSBelowTopOffsetIntegerValue(IntegerValue base) {
18 | super(base);
19 | }
20 |
21 | @Override
22 | public Integer getValue(@NotNull WorldInfo worldInfo, @NotNull Random random, @NotNull BlockVector position, @NotNull LimitedRegion limitedRegion) {
23 | int baseValue = getBase() == null ? 0 : getBase().getValue(worldInfo, random, position, limitedRegion);
24 |
25 | WorldGenLevel level = ((CraftLimitedRegion) limitedRegion).getHandle();
26 | ChunkGenerator chunkGenerator = level.getLevel().getChunkSource().chunkMap.generator;
27 |
28 | return Math.min(level.getHeight(), chunkGenerator.getGenDepth()) - 1 + Math.max(level.getMinBuildHeight(), chunkGenerator.getMinY()) - baseValue;
29 | }
30 |
31 | @Override
32 | public NMSBelowTopOffsetIntegerValue clone() {
33 | return new NMSBelowTopOffsetIntegerValue(getBase() == null ? null : getBase().clone());
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/impl/v1_20_R2/src/main/java/de/derfrzocker/ore/control/impl/v1_20_R2/NMSReflectionNames.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.ore.control.impl.v1_20_R2;
2 |
3 | public final class NMSReflectionNames {
4 |
5 | public final static String BIOME_GENERATION_SETTINGS_FEATURES = "e";
6 | public final static String BIOME_GENERATION_SETTINGS_FEATURE_SET = "g";
7 | public final static String WEIGHTED_LIST_INT_DISTRIBUTION = "b";
8 | public final static String COUNT_PLACEMENT_COUNT = "c";
9 | public final static String HEIGHT_RANGE_PLACEMENT_HEIGHT = "c";
10 | public final static String RARITY_FILTER_CHANCE = "c";
11 | public final static String SURFACE_RELATIVE_THRESHOLD_FILTER_HEIGHTMAP = "c";
12 | public final static String SURFACE_RELATIVE_THRESHOLD_FILTER_MIN_INCLUSIVE = "d";
13 | public final static String SURFACE_RELATIVE_THRESHOLD_FILTER_MAX_INCLUSIVE = "e";
14 | public final static String SURFACE_WATER_DEPTH_FILTER_MAX_WATER_DEPTH = "c";
15 | public static final String CLAMPED_INT_SOURCE = "b";
16 | public static final String CLAMPED_INT_MIN_INCLUSIVE = "f";
17 | public static final String CLAMPED_INT_MAX_INCLUSIVE = "g";
18 | public static final String CLAMPED_NORMAL_INT_MEAN = "b";
19 | public static final String CLAMPED_NORMAL_INT_DEVIATION = "f";
20 | public static final String CHUNK_MAP_GENERATOR = "t";
21 | public static final String NOISE_GENERATOR_SETTINGS = "e";
22 |
23 | private NMSReflectionNames() {
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/impl/v1_20_R2/src/main/java/de/derfrzocker/ore/control/impl/v1_20_R2/feature/generator/EmptyConfigurationGeneratorHook.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.ore.control.impl.v1_20_R2.feature.generator;
2 |
3 | import de.derfrzocker.feature.common.feature.generator.configuration.EmptyFeatureConfiguration;
4 | import de.derfrzocker.ore.control.api.Biome;
5 | import de.derfrzocker.ore.control.api.OreControlManager;
6 | import net.minecraft.world.level.levelgen.feature.Feature;
7 | import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration;
8 | import org.bukkit.NamespacedKey;
9 | import org.bukkit.generator.LimitedRegion;
10 | import org.bukkit.generator.WorldInfo;
11 | import org.bukkit.util.BlockVector;
12 | import org.jetbrains.annotations.NotNull;
13 |
14 | import java.util.Random;
15 |
16 | public class EmptyConfigurationGeneratorHook extends MinecraftFeatureGeneratorHook {
17 |
18 | private EmptyConfigurationGeneratorHook(Feature feature, @NotNull OreControlManager oreControlManager, @NotNull String name, Biome biome, NamespacedKey namespacedKey) {
19 | super(NoneFeatureConfiguration.CODEC, feature, oreControlManager, name, biome, namespacedKey);
20 | }
21 |
22 | public static EmptyConfigurationGeneratorHook createGlowstoneBlobHook(@NotNull OreControlManager oreControlManager, @NotNull NamespacedKey namespacedKey, @NotNull Biome biome) {
23 | return new EmptyConfigurationGeneratorHook(GLOWSTONE_BLOB, oreControlManager, "glowstone_blob", biome, namespacedKey);
24 | }
25 |
26 | @Override
27 | public NoneFeatureConfiguration createConfig(@NotNull NoneFeatureConfiguration defaultConfiguration, @NotNull WorldInfo worldInfo, @NotNull Random random, @NotNull BlockVector position, @NotNull LimitedRegion limitedRegion, @NotNull EmptyFeatureConfiguration configuration) {
28 | return defaultConfiguration;
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/impl/v1_20_R3/src/main/java/de/derfrzocker/feature/impl/v1_20_R3/value/heightmap/HeightmapType.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.impl.v1_20_R3.value.heightmap;
2 |
3 | import de.derfrzocker.feature.api.ValueType;
4 | import net.minecraft.world.level.levelgen.Heightmap;
5 |
6 | public abstract class HeightmapType implements ValueType {
7 | }
8 |
--------------------------------------------------------------------------------
/impl/v1_20_R3/src/main/java/de/derfrzocker/feature/impl/v1_20_R3/value/heightmap/HeightmapValue.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.impl.v1_20_R3.value.heightmap;
2 |
3 | import de.derfrzocker.feature.common.AbstractValue;
4 | import net.minecraft.world.level.levelgen.Heightmap;
5 |
6 | public abstract class HeightmapValue extends AbstractValue {
7 |
8 | @Override
9 | public abstract HeightmapValue clone();
10 | }
11 |
--------------------------------------------------------------------------------
/impl/v1_20_R3/src/main/java/de/derfrzocker/feature/impl/v1_20_R3/value/offset/NMSAboveBottomOffsetIntegerValue.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.impl.v1_20_R3.value.offset;
2 |
3 | import de.derfrzocker.feature.common.value.number.IntegerValue;
4 | import de.derfrzocker.feature.common.value.offset.AboveBottomOffsetIntegerValue;
5 | import net.minecraft.world.level.WorldGenLevel;
6 | import org.bukkit.craftbukkit.v1_20_R3.generator.CraftLimitedRegion;
7 | import org.bukkit.generator.LimitedRegion;
8 | import org.bukkit.generator.WorldInfo;
9 | import org.bukkit.util.BlockVector;
10 | import org.jetbrains.annotations.NotNull;
11 |
12 | import java.util.Random;
13 |
14 | public class NMSAboveBottomOffsetIntegerValue extends AboveBottomOffsetIntegerValue {
15 |
16 | public NMSAboveBottomOffsetIntegerValue(IntegerValue base) {
17 | super(base);
18 | }
19 |
20 | @Override
21 | public Integer getValue(@NotNull WorldInfo worldInfo, @NotNull Random random, @NotNull BlockVector position, @NotNull LimitedRegion limitedRegion) {
22 | int baseValue = getBase() == null ? 0 : getBase().getValue(worldInfo, random, position, limitedRegion);
23 |
24 | WorldGenLevel level = ((CraftLimitedRegion) limitedRegion).getHandle();
25 |
26 | return Math.max(level.getMinBuildHeight(), level.getLevel().getChunkSource().chunkMap.generator.getMinY()) + baseValue;
27 | }
28 |
29 | @Override
30 | public AboveBottomOffsetIntegerValue clone() {
31 | return new NMSAboveBottomOffsetIntegerValue(getBase() == null ? null : getBase().clone());
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/impl/v1_20_R3/src/main/java/de/derfrzocker/feature/impl/v1_20_R3/value/offset/NMSBelowTopOffsetIntegerValue.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.impl.v1_20_R3.value.offset;
2 |
3 | import de.derfrzocker.feature.common.value.number.IntegerValue;
4 | import de.derfrzocker.feature.common.value.offset.BelowTopOffsetIntegerValue;
5 | import net.minecraft.world.level.WorldGenLevel;
6 | import net.minecraft.world.level.chunk.ChunkGenerator;
7 | import org.bukkit.craftbukkit.v1_20_R3.generator.CraftLimitedRegion;
8 | import org.bukkit.generator.LimitedRegion;
9 | import org.bukkit.generator.WorldInfo;
10 | import org.bukkit.util.BlockVector;
11 | import org.jetbrains.annotations.NotNull;
12 |
13 | import java.util.Random;
14 |
15 | public class NMSBelowTopOffsetIntegerValue extends BelowTopOffsetIntegerValue {
16 |
17 | public NMSBelowTopOffsetIntegerValue(IntegerValue base) {
18 | super(base);
19 | }
20 |
21 | @Override
22 | public Integer getValue(@NotNull WorldInfo worldInfo, @NotNull Random random, @NotNull BlockVector position, @NotNull LimitedRegion limitedRegion) {
23 | int baseValue = getBase() == null ? 0 : getBase().getValue(worldInfo, random, position, limitedRegion);
24 |
25 | WorldGenLevel level = ((CraftLimitedRegion) limitedRegion).getHandle();
26 | ChunkGenerator chunkGenerator = level.getLevel().getChunkSource().chunkMap.generator;
27 |
28 | return Math.min(level.getHeight(), chunkGenerator.getGenDepth()) - 1 + Math.max(level.getMinBuildHeight(), chunkGenerator.getMinY()) - baseValue;
29 | }
30 |
31 | @Override
32 | public NMSBelowTopOffsetIntegerValue clone() {
33 | return new NMSBelowTopOffsetIntegerValue(getBase() == null ? null : getBase().clone());
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/impl/v1_20_R3/src/main/java/de/derfrzocker/ore/control/impl/v1_20_R3/NMSReflectionNames.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.ore.control.impl.v1_20_R3;
2 |
3 | public final class NMSReflectionNames {
4 |
5 | public final static String BIOME_GENERATION_SETTINGS_FEATURES = "e";
6 | public final static String BIOME_GENERATION_SETTINGS_FEATURE_SET = "g";
7 | public final static String WEIGHTED_LIST_INT_DISTRIBUTION = "b";
8 | public final static String COUNT_PLACEMENT_COUNT = "c";
9 | public final static String HEIGHT_RANGE_PLACEMENT_HEIGHT = "c";
10 | public final static String RARITY_FILTER_CHANCE = "c";
11 | public final static String SURFACE_RELATIVE_THRESHOLD_FILTER_HEIGHTMAP = "c";
12 | public final static String SURFACE_RELATIVE_THRESHOLD_FILTER_MIN_INCLUSIVE = "d";
13 | public final static String SURFACE_RELATIVE_THRESHOLD_FILTER_MAX_INCLUSIVE = "e";
14 | public final static String SURFACE_WATER_DEPTH_FILTER_MAX_WATER_DEPTH = "c";
15 | public static final String CLAMPED_INT_SOURCE = "b";
16 | public static final String CLAMPED_INT_MIN_INCLUSIVE = "f";
17 | public static final String CLAMPED_INT_MAX_INCLUSIVE = "g";
18 | public static final String CLAMPED_NORMAL_INT_MEAN = "b";
19 | public static final String CLAMPED_NORMAL_INT_DEVIATION = "f";
20 | public static final String CHUNK_MAP_GENERATOR = "t";
21 | public static final String NOISE_GENERATOR_SETTINGS = "e";
22 |
23 | private NMSReflectionNames() {
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/impl/v1_20_R3/src/main/java/de/derfrzocker/ore/control/impl/v1_20_R3/feature/generator/EmptyConfigurationGeneratorHook.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.ore.control.impl.v1_20_R3.feature.generator;
2 |
3 | import de.derfrzocker.feature.common.feature.generator.configuration.EmptyFeatureConfiguration;
4 | import de.derfrzocker.ore.control.api.Biome;
5 | import de.derfrzocker.ore.control.api.OreControlManager;
6 | import net.minecraft.world.level.levelgen.feature.Feature;
7 | import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration;
8 | import org.bukkit.NamespacedKey;
9 | import org.bukkit.generator.LimitedRegion;
10 | import org.bukkit.generator.WorldInfo;
11 | import org.bukkit.util.BlockVector;
12 | import org.jetbrains.annotations.NotNull;
13 |
14 | import java.util.Random;
15 |
16 | public class EmptyConfigurationGeneratorHook extends MinecraftFeatureGeneratorHook {
17 |
18 | private EmptyConfigurationGeneratorHook(Feature feature, @NotNull OreControlManager oreControlManager, @NotNull String name, Biome biome, NamespacedKey namespacedKey) {
19 | super(NoneFeatureConfiguration.CODEC, feature, oreControlManager, name, biome, namespacedKey);
20 | }
21 |
22 | public static EmptyConfigurationGeneratorHook createGlowstoneBlobHook(@NotNull OreControlManager oreControlManager, @NotNull NamespacedKey namespacedKey, @NotNull Biome biome) {
23 | return new EmptyConfigurationGeneratorHook(GLOWSTONE_BLOB, oreControlManager, "glowstone_blob", biome, namespacedKey);
24 | }
25 |
26 | @Override
27 | public NoneFeatureConfiguration createConfig(@NotNull NoneFeatureConfiguration defaultConfiguration, @NotNull WorldInfo worldInfo, @NotNull Random random, @NotNull BlockVector position, @NotNull LimitedRegion limitedRegion, @NotNull EmptyFeatureConfiguration configuration) {
28 | return defaultConfiguration;
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/impl/v1_20_R4/src/main/java/de/derfrzocker/feature/impl/v1_20_R4/value/heightmap/HeightmapType.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.impl.v1_20_R4.value.heightmap;
2 |
3 | import de.derfrzocker.feature.api.ValueType;
4 | import net.minecraft.world.level.levelgen.Heightmap;
5 |
6 | public abstract class HeightmapType implements ValueType {
7 | }
8 |
--------------------------------------------------------------------------------
/impl/v1_20_R4/src/main/java/de/derfrzocker/feature/impl/v1_20_R4/value/heightmap/HeightmapValue.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.impl.v1_20_R4.value.heightmap;
2 |
3 | import de.derfrzocker.feature.common.AbstractValue;
4 | import net.minecraft.world.level.levelgen.Heightmap;
5 |
6 | public abstract class HeightmapValue extends AbstractValue {
7 |
8 | @Override
9 | public abstract HeightmapValue clone();
10 | }
11 |
--------------------------------------------------------------------------------
/impl/v1_20_R4/src/main/java/de/derfrzocker/feature/impl/v1_20_R4/value/offset/NMSAboveBottomOffsetIntegerValue.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.impl.v1_20_R4.value.offset;
2 |
3 | import de.derfrzocker.feature.common.value.number.IntegerValue;
4 | import de.derfrzocker.feature.common.value.offset.AboveBottomOffsetIntegerValue;
5 | import java.util.Random;
6 | import net.minecraft.world.level.WorldGenLevel;
7 | import org.bukkit.craftbukkit.v1_20_R4.generator.CraftLimitedRegion;
8 | import org.bukkit.generator.LimitedRegion;
9 | import org.bukkit.generator.WorldInfo;
10 | import org.bukkit.util.BlockVector;
11 | import org.jetbrains.annotations.NotNull;
12 |
13 | public class NMSAboveBottomOffsetIntegerValue extends AboveBottomOffsetIntegerValue {
14 |
15 | public NMSAboveBottomOffsetIntegerValue(IntegerValue base) {
16 | super(base);
17 | }
18 |
19 | @Override
20 | public Integer getValue(@NotNull WorldInfo worldInfo, @NotNull Random random, @NotNull BlockVector position, @NotNull LimitedRegion limitedRegion) {
21 | int baseValue = getBase() == null ? 0 : getBase().getValue(worldInfo, random, position, limitedRegion);
22 |
23 | WorldGenLevel level = ((CraftLimitedRegion) limitedRegion).getHandle();
24 |
25 | return Math.max(level.getMinBuildHeight(), level.getLevel().getChunkSource().chunkMap.generator.getMinY()) + baseValue;
26 | }
27 |
28 | @Override
29 | public AboveBottomOffsetIntegerValue clone() {
30 | return new NMSAboveBottomOffsetIntegerValue(getBase() == null ? null : getBase().clone());
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/impl/v1_20_R4/src/main/java/de/derfrzocker/feature/impl/v1_20_R4/value/offset/NMSBelowTopOffsetIntegerValue.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.impl.v1_20_R4.value.offset;
2 |
3 | import de.derfrzocker.feature.common.value.number.IntegerValue;
4 | import de.derfrzocker.feature.common.value.offset.BelowTopOffsetIntegerValue;
5 | import java.util.Random;
6 | import net.minecraft.world.level.WorldGenLevel;
7 | import net.minecraft.world.level.chunk.ChunkGenerator;
8 | import org.bukkit.craftbukkit.v1_20_R4.generator.CraftLimitedRegion;
9 | import org.bukkit.generator.LimitedRegion;
10 | import org.bukkit.generator.WorldInfo;
11 | import org.bukkit.util.BlockVector;
12 | import org.jetbrains.annotations.NotNull;
13 |
14 | public class NMSBelowTopOffsetIntegerValue extends BelowTopOffsetIntegerValue {
15 |
16 | public NMSBelowTopOffsetIntegerValue(IntegerValue base) {
17 | super(base);
18 | }
19 |
20 | @Override
21 | public Integer getValue(@NotNull WorldInfo worldInfo, @NotNull Random random, @NotNull BlockVector position, @NotNull LimitedRegion limitedRegion) {
22 | int baseValue = getBase() == null ? 0 : getBase().getValue(worldInfo, random, position, limitedRegion);
23 |
24 | WorldGenLevel level = ((CraftLimitedRegion) limitedRegion).getHandle();
25 | ChunkGenerator chunkGenerator = level.getLevel().getChunkSource().chunkMap.generator;
26 |
27 | return Math.min(level.getHeight(), chunkGenerator.getGenDepth()) - 1 + Math.max(level.getMinBuildHeight(), chunkGenerator.getMinY()) - baseValue;
28 | }
29 |
30 | @Override
31 | public NMSBelowTopOffsetIntegerValue clone() {
32 | return new NMSBelowTopOffsetIntegerValue(getBase() == null ? null : getBase().clone());
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/impl/v1_20_R4/src/main/java/de/derfrzocker/ore/control/impl/v1_20_R4/NMSReflectionNames.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.ore.control.impl.v1_20_R4;
2 |
3 | public final class NMSReflectionNames {
4 |
5 | public final static String BIOME_GENERATION_SETTINGS_FEATURES = "e";
6 | public final static String BIOME_GENERATION_SETTINGS_FEATURE_SET = "g";
7 | public final static String WEIGHTED_LIST_INT_DISTRIBUTION = "b";
8 | public final static String COUNT_PLACEMENT_COUNT = "c";
9 | public final static String HEIGHT_RANGE_PLACEMENT_HEIGHT = "c";
10 | public final static String RARITY_FILTER_CHANCE = "c";
11 | public final static String SURFACE_RELATIVE_THRESHOLD_FILTER_HEIGHTMAP = "c";
12 | public final static String SURFACE_RELATIVE_THRESHOLD_FILTER_MIN_INCLUSIVE = "d";
13 | public final static String SURFACE_RELATIVE_THRESHOLD_FILTER_MAX_INCLUSIVE = "e";
14 | public final static String SURFACE_WATER_DEPTH_FILTER_MAX_WATER_DEPTH = "c";
15 | public static final String CLAMPED_INT_SOURCE = "b";
16 | public static final String CLAMPED_INT_MIN_INCLUSIVE = "f";
17 | public static final String CLAMPED_INT_MAX_INCLUSIVE = "g";
18 | public static final String CLAMPED_NORMAL_INT_MEAN = "b";
19 | public static final String CLAMPED_NORMAL_INT_DEVIATION = "f";
20 | public static final String CHUNK_MAP_GENERATOR = "t";
21 | public static final String NOISE_GENERATOR_SETTINGS = "e";
22 |
23 | private NMSReflectionNames() {
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/impl/v1_20_R4/src/main/java/de/derfrzocker/ore/control/impl/v1_20_R4/feature/generator/EmptyConfigurationGeneratorHook.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.ore.control.impl.v1_20_R4.feature.generator;
2 |
3 | import de.derfrzocker.feature.common.feature.generator.configuration.EmptyFeatureConfiguration;
4 | import de.derfrzocker.ore.control.api.Biome;
5 | import de.derfrzocker.ore.control.api.OreControlManager;
6 | import java.util.Random;
7 | import net.minecraft.world.level.levelgen.feature.Feature;
8 | import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration;
9 | import org.bukkit.NamespacedKey;
10 | import org.bukkit.generator.LimitedRegion;
11 | import org.bukkit.generator.WorldInfo;
12 | import org.bukkit.util.BlockVector;
13 | import org.jetbrains.annotations.NotNull;
14 |
15 | public class EmptyConfigurationGeneratorHook extends MinecraftFeatureGeneratorHook {
16 |
17 | private EmptyConfigurationGeneratorHook(Feature feature, @NotNull OreControlManager oreControlManager, @NotNull String name, Biome biome, NamespacedKey namespacedKey) {
18 | super(NoneFeatureConfiguration.CODEC, feature, oreControlManager, name, biome, namespacedKey);
19 | }
20 |
21 | public static EmptyConfigurationGeneratorHook createGlowstoneBlobHook(@NotNull OreControlManager oreControlManager, @NotNull NamespacedKey namespacedKey, @NotNull Biome biome) {
22 | return new EmptyConfigurationGeneratorHook(GLOWSTONE_BLOB, oreControlManager, "glowstone_blob", biome, namespacedKey);
23 | }
24 |
25 | @Override
26 | public NoneFeatureConfiguration createConfig(@NotNull NoneFeatureConfiguration defaultConfiguration, @NotNull WorldInfo worldInfo, @NotNull Random random, @NotNull BlockVector position, @NotNull LimitedRegion limitedRegion, @NotNull EmptyFeatureConfiguration configuration) {
27 | return defaultConfiguration;
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/impl/v1_21_R1/src/main/java/de/derfrzocker/feature/impl/v1_21_R1/value/heightmap/HeightmapType.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.impl.v1_21_R1.value.heightmap;
2 |
3 | import de.derfrzocker.feature.api.ValueType;
4 | import net.minecraft.world.level.levelgen.Heightmap;
5 |
6 | public abstract class HeightmapType implements ValueType {
7 | }
8 |
--------------------------------------------------------------------------------
/impl/v1_21_R1/src/main/java/de/derfrzocker/feature/impl/v1_21_R1/value/heightmap/HeightmapValue.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.impl.v1_21_R1.value.heightmap;
2 |
3 | import de.derfrzocker.feature.common.AbstractValue;
4 | import net.minecraft.world.level.levelgen.Heightmap;
5 |
6 | public abstract class HeightmapValue extends AbstractValue {
7 |
8 | @Override
9 | public abstract HeightmapValue clone();
10 | }
11 |
--------------------------------------------------------------------------------
/impl/v1_21_R1/src/main/java/de/derfrzocker/feature/impl/v1_21_R1/value/offset/NMSAboveBottomOffsetIntegerValue.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.impl.v1_21_R1.value.offset;
2 |
3 | import de.derfrzocker.feature.common.value.number.IntegerValue;
4 | import de.derfrzocker.feature.common.value.offset.AboveBottomOffsetIntegerValue;
5 | import java.util.Random;
6 | import net.minecraft.world.level.WorldGenLevel;
7 | import org.bukkit.craftbukkit.v1_21_R1.generator.CraftLimitedRegion;
8 | import org.bukkit.generator.LimitedRegion;
9 | import org.bukkit.generator.WorldInfo;
10 | import org.bukkit.util.BlockVector;
11 | import org.jetbrains.annotations.NotNull;
12 |
13 | public class NMSAboveBottomOffsetIntegerValue extends AboveBottomOffsetIntegerValue {
14 |
15 | public NMSAboveBottomOffsetIntegerValue(IntegerValue base) {
16 | super(base);
17 | }
18 |
19 | @Override
20 | public Integer getValue(@NotNull WorldInfo worldInfo, @NotNull Random random, @NotNull BlockVector position, @NotNull LimitedRegion limitedRegion) {
21 | int baseValue = getBase() == null ? 0 : getBase().getValue(worldInfo, random, position, limitedRegion);
22 |
23 | WorldGenLevel level = ((CraftLimitedRegion) limitedRegion).getHandle();
24 |
25 | return Math.max(level.getMinBuildHeight(), level.getLevel().getChunkSource().getGenerator().getMinY()) + baseValue;
26 | }
27 |
28 | @Override
29 | public AboveBottomOffsetIntegerValue clone() {
30 | return new NMSAboveBottomOffsetIntegerValue(getBase() == null ? null : getBase().clone());
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/impl/v1_21_R1/src/main/java/de/derfrzocker/feature/impl/v1_21_R1/value/offset/NMSBelowTopOffsetIntegerValue.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.impl.v1_21_R1.value.offset;
2 |
3 | import de.derfrzocker.feature.common.value.number.IntegerValue;
4 | import de.derfrzocker.feature.common.value.offset.BelowTopOffsetIntegerValue;
5 | import java.util.Random;
6 | import net.minecraft.world.level.WorldGenLevel;
7 | import net.minecraft.world.level.chunk.ChunkGenerator;
8 | import org.bukkit.craftbukkit.v1_21_R1.generator.CraftLimitedRegion;
9 | import org.bukkit.generator.LimitedRegion;
10 | import org.bukkit.generator.WorldInfo;
11 | import org.bukkit.util.BlockVector;
12 | import org.jetbrains.annotations.NotNull;
13 |
14 | public class NMSBelowTopOffsetIntegerValue extends BelowTopOffsetIntegerValue {
15 |
16 | public NMSBelowTopOffsetIntegerValue(IntegerValue base) {
17 | super(base);
18 | }
19 |
20 | @Override
21 | public Integer getValue(@NotNull WorldInfo worldInfo, @NotNull Random random, @NotNull BlockVector position, @NotNull LimitedRegion limitedRegion) {
22 | int baseValue = getBase() == null ? 0 : getBase().getValue(worldInfo, random, position, limitedRegion);
23 |
24 | WorldGenLevel level = ((CraftLimitedRegion) limitedRegion).getHandle();
25 | ChunkGenerator chunkGenerator = level.getLevel().getChunkSource().getGenerator();
26 |
27 | return Math.min(level.getHeight(), chunkGenerator.getGenDepth()) - 1 + Math.max(level.getMinBuildHeight(), chunkGenerator.getMinY()) - baseValue;
28 | }
29 |
30 | @Override
31 | public NMSBelowTopOffsetIntegerValue clone() {
32 | return new NMSBelowTopOffsetIntegerValue(getBase() == null ? null : getBase().clone());
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/impl/v1_21_R1/src/main/java/de/derfrzocker/ore/control/impl/v1_21_R1/NMSReflectionNames.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.ore.control.impl.v1_21_R1;
2 |
3 | public final class NMSReflectionNames {
4 |
5 | public final static String BIOME_GENERATION_SETTINGS_FEATURES = "e";
6 | public final static String BIOME_GENERATION_SETTINGS_FEATURE_SET = "g";
7 | public final static String WEIGHTED_LIST_INT_DISTRIBUTION = "b";
8 | public final static String COUNT_PLACEMENT_COUNT = "c";
9 | public final static String HEIGHT_RANGE_PLACEMENT_HEIGHT = "c";
10 | public final static String RARITY_FILTER_CHANCE = "c";
11 | public final static String SURFACE_RELATIVE_THRESHOLD_FILTER_HEIGHTMAP = "c";
12 | public final static String SURFACE_RELATIVE_THRESHOLD_FILTER_MIN_INCLUSIVE = "d";
13 | public final static String SURFACE_RELATIVE_THRESHOLD_FILTER_MAX_INCLUSIVE = "e";
14 | public final static String SURFACE_WATER_DEPTH_FILTER_MAX_WATER_DEPTH = "c";
15 | public static final String CLAMPED_INT_SOURCE = "b";
16 | public static final String CLAMPED_INT_MIN_INCLUSIVE = "f";
17 | public static final String CLAMPED_INT_MAX_INCLUSIVE = "g";
18 | public static final String CLAMPED_NORMAL_INT_MEAN = "b";
19 | public static final String CLAMPED_NORMAL_INT_DEVIATION = "f";
20 | public static final String CHUNK_MAP_WORLD_GEN_CONTEXT = "P";
21 | public static final String NOISE_GENERATOR_SETTINGS = "e";
22 |
23 | private NMSReflectionNames() {
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/impl/v1_21_R1/src/main/java/de/derfrzocker/ore/control/impl/v1_21_R1/feature/generator/EmptyConfigurationGeneratorHook.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.ore.control.impl.v1_21_R1.feature.generator;
2 |
3 | import de.derfrzocker.feature.common.feature.generator.configuration.EmptyFeatureConfiguration;
4 | import de.derfrzocker.ore.control.api.Biome;
5 | import de.derfrzocker.ore.control.api.OreControlManager;
6 | import java.util.Random;
7 | import net.minecraft.world.level.levelgen.feature.Feature;
8 | import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration;
9 | import org.bukkit.NamespacedKey;
10 | import org.bukkit.generator.LimitedRegion;
11 | import org.bukkit.generator.WorldInfo;
12 | import org.bukkit.util.BlockVector;
13 | import org.jetbrains.annotations.NotNull;
14 |
15 | public class EmptyConfigurationGeneratorHook extends MinecraftFeatureGeneratorHook {
16 |
17 | private EmptyConfigurationGeneratorHook(Feature feature, @NotNull OreControlManager oreControlManager, @NotNull String name, Biome biome, NamespacedKey namespacedKey) {
18 | super(NoneFeatureConfiguration.CODEC, feature, oreControlManager, name, biome, namespacedKey);
19 | }
20 |
21 | public static EmptyConfigurationGeneratorHook createGlowstoneBlobHook(@NotNull OreControlManager oreControlManager, @NotNull NamespacedKey namespacedKey, @NotNull Biome biome) {
22 | return new EmptyConfigurationGeneratorHook(GLOWSTONE_BLOB, oreControlManager, "glowstone_blob", biome, namespacedKey);
23 | }
24 |
25 | @Override
26 | public NoneFeatureConfiguration createConfig(@NotNull NoneFeatureConfiguration defaultConfiguration, @NotNull WorldInfo worldInfo, @NotNull Random random, @NotNull BlockVector position, @NotNull LimitedRegion limitedRegion, @NotNull EmptyFeatureConfiguration configuration) {
27 | return defaultConfiguration;
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/impl/v1_21_R2/src/main/java/de/derfrzocker/feature/impl/v1_21_R2/value/heightmap/HeightmapType.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.impl.v1_21_R2.value.heightmap;
2 |
3 | import de.derfrzocker.feature.api.ValueType;
4 | import net.minecraft.world.level.levelgen.Heightmap;
5 |
6 | public abstract class HeightmapType implements ValueType {
7 | }
8 |
--------------------------------------------------------------------------------
/impl/v1_21_R2/src/main/java/de/derfrzocker/feature/impl/v1_21_R2/value/heightmap/HeightmapValue.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.impl.v1_21_R2.value.heightmap;
2 |
3 | import de.derfrzocker.feature.common.AbstractValue;
4 | import net.minecraft.world.level.levelgen.Heightmap;
5 |
6 | public abstract class HeightmapValue extends AbstractValue {
7 |
8 | @Override
9 | public abstract HeightmapValue clone();
10 | }
11 |
--------------------------------------------------------------------------------
/impl/v1_21_R2/src/main/java/de/derfrzocker/feature/impl/v1_21_R2/value/offset/NMSAboveBottomOffsetIntegerValue.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.impl.v1_21_R2.value.offset;
2 |
3 | import de.derfrzocker.feature.common.value.number.IntegerValue;
4 | import de.derfrzocker.feature.common.value.offset.AboveBottomOffsetIntegerValue;
5 | import java.util.Random;
6 | import net.minecraft.world.level.WorldGenLevel;
7 | import org.bukkit.craftbukkit.v1_21_R2.generator.CraftLimitedRegion;
8 | import org.bukkit.generator.LimitedRegion;
9 | import org.bukkit.generator.WorldInfo;
10 | import org.bukkit.util.BlockVector;
11 | import org.jetbrains.annotations.NotNull;
12 |
13 | public class NMSAboveBottomOffsetIntegerValue extends AboveBottomOffsetIntegerValue {
14 |
15 | public NMSAboveBottomOffsetIntegerValue(IntegerValue base) {
16 | super(base);
17 | }
18 |
19 | @Override
20 | public Integer getValue(@NotNull WorldInfo worldInfo, @NotNull Random random, @NotNull BlockVector position, @NotNull LimitedRegion limitedRegion) {
21 | int baseValue = getBase() == null ? 0 : getBase().getValue(worldInfo, random, position, limitedRegion);
22 |
23 | WorldGenLevel level = ((CraftLimitedRegion) limitedRegion).getHandle();
24 |
25 | return Math.max(level.getMinY(), level.getLevel().getChunkSource().getGenerator().getMinY()) + baseValue;
26 | }
27 |
28 | @Override
29 | public AboveBottomOffsetIntegerValue clone() {
30 | return new NMSAboveBottomOffsetIntegerValue(getBase() == null ? null : getBase().clone());
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/impl/v1_21_R2/src/main/java/de/derfrzocker/feature/impl/v1_21_R2/value/offset/NMSBelowTopOffsetIntegerValue.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.impl.v1_21_R2.value.offset;
2 |
3 | import de.derfrzocker.feature.common.value.number.IntegerValue;
4 | import de.derfrzocker.feature.common.value.offset.BelowTopOffsetIntegerValue;
5 | import java.util.Random;
6 | import net.minecraft.world.level.WorldGenLevel;
7 | import net.minecraft.world.level.chunk.ChunkGenerator;
8 | import org.bukkit.craftbukkit.v1_21_R2.generator.CraftLimitedRegion;
9 | import org.bukkit.generator.LimitedRegion;
10 | import org.bukkit.generator.WorldInfo;
11 | import org.bukkit.util.BlockVector;
12 | import org.jetbrains.annotations.NotNull;
13 |
14 | public class NMSBelowTopOffsetIntegerValue extends BelowTopOffsetIntegerValue {
15 |
16 | public NMSBelowTopOffsetIntegerValue(IntegerValue base) {
17 | super(base);
18 | }
19 |
20 | @Override
21 | public Integer getValue(@NotNull WorldInfo worldInfo, @NotNull Random random, @NotNull BlockVector position, @NotNull LimitedRegion limitedRegion) {
22 | int baseValue = getBase() == null ? 0 : getBase().getValue(worldInfo, random, position, limitedRegion);
23 |
24 | WorldGenLevel level = ((CraftLimitedRegion) limitedRegion).getHandle();
25 | ChunkGenerator chunkGenerator = level.getLevel().getChunkSource().getGenerator();
26 |
27 | return Math.min(level.getHeight(), chunkGenerator.getGenDepth()) - 1 + Math.max(level.getMinY(), chunkGenerator.getMinY()) - baseValue;
28 | }
29 |
30 | @Override
31 | public NMSBelowTopOffsetIntegerValue clone() {
32 | return new NMSBelowTopOffsetIntegerValue(getBase() == null ? null : getBase().clone());
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/impl/v1_21_R2/src/main/java/de/derfrzocker/ore/control/impl/v1_21_R2/NMSReflectionNames.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.ore.control.impl.v1_21_R2;
2 |
3 | public final class NMSReflectionNames {
4 |
5 | public final static String BIOME_GENERATION_SETTINGS_FEATURES = "e";
6 | public final static String BIOME_GENERATION_SETTINGS_FEATURE_SET = "g";
7 | public final static String WEIGHTED_LIST_INT_DISTRIBUTION = "b";
8 | public final static String COUNT_PLACEMENT_COUNT = "c";
9 | public final static String HEIGHT_RANGE_PLACEMENT_HEIGHT = "c";
10 | public final static String RARITY_FILTER_CHANCE = "c";
11 | public final static String SURFACE_RELATIVE_THRESHOLD_FILTER_HEIGHTMAP = "c";
12 | public final static String SURFACE_RELATIVE_THRESHOLD_FILTER_MIN_INCLUSIVE = "d";
13 | public final static String SURFACE_RELATIVE_THRESHOLD_FILTER_MAX_INCLUSIVE = "e";
14 | public final static String SURFACE_WATER_DEPTH_FILTER_MAX_WATER_DEPTH = "c";
15 | public static final String CLAMPED_INT_SOURCE = "b";
16 | public static final String CLAMPED_INT_MIN_INCLUSIVE = "f";
17 | public static final String CLAMPED_INT_MAX_INCLUSIVE = "g";
18 | public static final String CLAMPED_NORMAL_INT_MEAN = "b";
19 | public static final String CLAMPED_NORMAL_INT_DEVIATION = "f";
20 | public static final String CHUNK_MAP_WORLD_GEN_CONTEXT = "R";
21 | public static final String NOISE_GENERATOR_SETTINGS = "e";
22 |
23 | private NMSReflectionNames() {
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/impl/v1_21_R2/src/main/java/de/derfrzocker/ore/control/impl/v1_21_R2/feature/generator/EmptyConfigurationGeneratorHook.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.ore.control.impl.v1_21_R2.feature.generator;
2 |
3 | import de.derfrzocker.feature.common.feature.generator.configuration.EmptyFeatureConfiguration;
4 | import de.derfrzocker.ore.control.api.Biome;
5 | import de.derfrzocker.ore.control.api.OreControlManager;
6 | import java.util.Random;
7 | import net.minecraft.world.level.levelgen.feature.Feature;
8 | import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration;
9 | import org.bukkit.NamespacedKey;
10 | import org.bukkit.generator.LimitedRegion;
11 | import org.bukkit.generator.WorldInfo;
12 | import org.bukkit.util.BlockVector;
13 | import org.jetbrains.annotations.NotNull;
14 |
15 | public class EmptyConfigurationGeneratorHook extends MinecraftFeatureGeneratorHook {
16 |
17 | private EmptyConfigurationGeneratorHook(Feature feature, @NotNull OreControlManager oreControlManager, @NotNull String name, Biome biome, NamespacedKey namespacedKey) {
18 | super(NoneFeatureConfiguration.CODEC, feature, oreControlManager, name, biome, namespacedKey);
19 | }
20 |
21 | public static EmptyConfigurationGeneratorHook createGlowstoneBlobHook(@NotNull OreControlManager oreControlManager, @NotNull NamespacedKey namespacedKey, @NotNull Biome biome) {
22 | return new EmptyConfigurationGeneratorHook(GLOWSTONE_BLOB, oreControlManager, "glowstone_blob", biome, namespacedKey);
23 | }
24 |
25 | @Override
26 | public NoneFeatureConfiguration createConfig(@NotNull NoneFeatureConfiguration defaultConfiguration, @NotNull WorldInfo worldInfo, @NotNull Random random, @NotNull BlockVector position, @NotNull LimitedRegion limitedRegion, @NotNull EmptyFeatureConfiguration configuration) {
27 | return defaultConfiguration;
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/impl/v1_21_R3/src/main/java/de/derfrzocker/feature/impl/v1_21_R3/value/heightmap/HeightmapType.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.impl.v1_21_R3.value.heightmap;
2 |
3 | import de.derfrzocker.feature.api.ValueType;
4 | import net.minecraft.world.level.levelgen.Heightmap;
5 |
6 | public abstract class HeightmapType implements ValueType {
7 | }
8 |
--------------------------------------------------------------------------------
/impl/v1_21_R3/src/main/java/de/derfrzocker/feature/impl/v1_21_R3/value/heightmap/HeightmapValue.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.impl.v1_21_R3.value.heightmap;
2 |
3 | import de.derfrzocker.feature.common.AbstractValue;
4 | import net.minecraft.world.level.levelgen.Heightmap;
5 |
6 | public abstract class HeightmapValue extends AbstractValue {
7 |
8 | @Override
9 | public abstract HeightmapValue clone();
10 | }
11 |
--------------------------------------------------------------------------------
/impl/v1_21_R3/src/main/java/de/derfrzocker/feature/impl/v1_21_R3/value/offset/NMSAboveBottomOffsetIntegerValue.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.impl.v1_21_R3.value.offset;
2 |
3 | import de.derfrzocker.feature.common.value.number.IntegerValue;
4 | import de.derfrzocker.feature.common.value.offset.AboveBottomOffsetIntegerValue;
5 | import java.util.Random;
6 | import net.minecraft.world.level.WorldGenLevel;
7 | import org.bukkit.craftbukkit.v1_21_R3.generator.CraftLimitedRegion;
8 | import org.bukkit.generator.LimitedRegion;
9 | import org.bukkit.generator.WorldInfo;
10 | import org.bukkit.util.BlockVector;
11 | import org.jetbrains.annotations.NotNull;
12 |
13 | public class NMSAboveBottomOffsetIntegerValue extends AboveBottomOffsetIntegerValue {
14 |
15 | public NMSAboveBottomOffsetIntegerValue(IntegerValue base) {
16 | super(base);
17 | }
18 |
19 | @Override
20 | public Integer getValue(@NotNull WorldInfo worldInfo, @NotNull Random random, @NotNull BlockVector position, @NotNull LimitedRegion limitedRegion) {
21 | int baseValue = getBase() == null ? 0 : getBase().getValue(worldInfo, random, position, limitedRegion);
22 |
23 | WorldGenLevel level = ((CraftLimitedRegion) limitedRegion).getHandle();
24 |
25 | return Math.max(level.getMinY(), level.getLevel().getChunkSource().getGenerator().getMinY()) + baseValue;
26 | }
27 |
28 | @Override
29 | public AboveBottomOffsetIntegerValue clone() {
30 | return new NMSAboveBottomOffsetIntegerValue(getBase() == null ? null : getBase().clone());
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/impl/v1_21_R3/src/main/java/de/derfrzocker/feature/impl/v1_21_R3/value/offset/NMSBelowTopOffsetIntegerValue.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.impl.v1_21_R3.value.offset;
2 |
3 | import de.derfrzocker.feature.common.value.number.IntegerValue;
4 | import de.derfrzocker.feature.common.value.offset.BelowTopOffsetIntegerValue;
5 | import java.util.Random;
6 | import net.minecraft.world.level.WorldGenLevel;
7 | import net.minecraft.world.level.chunk.ChunkGenerator;
8 | import org.bukkit.craftbukkit.v1_21_R3.generator.CraftLimitedRegion;
9 | import org.bukkit.generator.LimitedRegion;
10 | import org.bukkit.generator.WorldInfo;
11 | import org.bukkit.util.BlockVector;
12 | import org.jetbrains.annotations.NotNull;
13 |
14 | public class NMSBelowTopOffsetIntegerValue extends BelowTopOffsetIntegerValue {
15 |
16 | public NMSBelowTopOffsetIntegerValue(IntegerValue base) {
17 | super(base);
18 | }
19 |
20 | @Override
21 | public Integer getValue(@NotNull WorldInfo worldInfo, @NotNull Random random, @NotNull BlockVector position, @NotNull LimitedRegion limitedRegion) {
22 | int baseValue = getBase() == null ? 0 : getBase().getValue(worldInfo, random, position, limitedRegion);
23 |
24 | WorldGenLevel level = ((CraftLimitedRegion) limitedRegion).getHandle();
25 | ChunkGenerator chunkGenerator = level.getLevel().getChunkSource().getGenerator();
26 |
27 | return Math.min(level.getHeight(), chunkGenerator.getGenDepth()) - 1 + Math.max(level.getMinY(), chunkGenerator.getMinY()) - baseValue;
28 | }
29 |
30 | @Override
31 | public NMSBelowTopOffsetIntegerValue clone() {
32 | return new NMSBelowTopOffsetIntegerValue(getBase() == null ? null : getBase().clone());
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/impl/v1_21_R3/src/main/java/de/derfrzocker/ore/control/impl/v1_21_R3/NMSReflectionNames.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.ore.control.impl.v1_21_R3;
2 |
3 | public final class NMSReflectionNames {
4 |
5 | public final static String BIOME_GENERATION_SETTINGS_FEATURES = "e";
6 | public final static String BIOME_GENERATION_SETTINGS_FEATURE_SET = "g";
7 | public final static String WEIGHTED_LIST_INT_DISTRIBUTION = "b";
8 | public final static String COUNT_PLACEMENT_COUNT = "c";
9 | public final static String HEIGHT_RANGE_PLACEMENT_HEIGHT = "c";
10 | public final static String RARITY_FILTER_CHANCE = "c";
11 | public final static String SURFACE_RELATIVE_THRESHOLD_FILTER_HEIGHTMAP = "c";
12 | public final static String SURFACE_RELATIVE_THRESHOLD_FILTER_MIN_INCLUSIVE = "d";
13 | public final static String SURFACE_RELATIVE_THRESHOLD_FILTER_MAX_INCLUSIVE = "e";
14 | public final static String SURFACE_WATER_DEPTH_FILTER_MAX_WATER_DEPTH = "c";
15 | public static final String CLAMPED_INT_SOURCE = "b";
16 | public static final String CLAMPED_INT_MIN_INCLUSIVE = "f";
17 | public static final String CLAMPED_INT_MAX_INCLUSIVE = "g";
18 | public static final String CLAMPED_NORMAL_INT_MEAN = "b";
19 | public static final String CLAMPED_NORMAL_INT_DEVIATION = "f";
20 | public static final String CHUNK_MAP_WORLD_GEN_CONTEXT = "R";
21 | public static final String NOISE_GENERATOR_SETTINGS = "e";
22 |
23 | private NMSReflectionNames() {
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/impl/v1_21_R3/src/main/java/de/derfrzocker/ore/control/impl/v1_21_R3/feature/generator/EmptyConfigurationGeneratorHook.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.ore.control.impl.v1_21_R3.feature.generator;
2 |
3 | import de.derfrzocker.feature.common.feature.generator.configuration.EmptyFeatureConfiguration;
4 | import de.derfrzocker.ore.control.api.Biome;
5 | import de.derfrzocker.ore.control.api.OreControlManager;
6 | import java.util.Random;
7 | import net.minecraft.world.level.levelgen.feature.Feature;
8 | import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration;
9 | import org.bukkit.NamespacedKey;
10 | import org.bukkit.generator.LimitedRegion;
11 | import org.bukkit.generator.WorldInfo;
12 | import org.bukkit.util.BlockVector;
13 | import org.jetbrains.annotations.NotNull;
14 |
15 | public class EmptyConfigurationGeneratorHook extends MinecraftFeatureGeneratorHook {
16 |
17 | private EmptyConfigurationGeneratorHook(Feature feature, @NotNull OreControlManager oreControlManager, @NotNull String name, Biome biome, NamespacedKey namespacedKey) {
18 | super(NoneFeatureConfiguration.CODEC, feature, oreControlManager, name, biome, namespacedKey);
19 | }
20 |
21 | public static EmptyConfigurationGeneratorHook createGlowstoneBlobHook(@NotNull OreControlManager oreControlManager, @NotNull NamespacedKey namespacedKey, @NotNull Biome biome) {
22 | return new EmptyConfigurationGeneratorHook(GLOWSTONE_BLOB, oreControlManager, "glowstone_blob", biome, namespacedKey);
23 | }
24 |
25 | @Override
26 | public NoneFeatureConfiguration createConfig(@NotNull NoneFeatureConfiguration defaultConfiguration, @NotNull WorldInfo worldInfo, @NotNull Random random, @NotNull BlockVector position, @NotNull LimitedRegion limitedRegion, @NotNull EmptyFeatureConfiguration configuration) {
27 | return defaultConfiguration;
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/impl/v1_21_R4/src/main/java/de/derfrzocker/feature/impl/v1_21_R4/value/heightmap/HeightmapType.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.impl.v1_21_R4.value.heightmap;
2 |
3 | import de.derfrzocker.feature.api.ValueType;
4 | import net.minecraft.world.level.levelgen.Heightmap;
5 |
6 | public abstract class HeightmapType implements ValueType {
7 | }
8 |
--------------------------------------------------------------------------------
/impl/v1_21_R4/src/main/java/de/derfrzocker/feature/impl/v1_21_R4/value/heightmap/HeightmapValue.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.impl.v1_21_R4.value.heightmap;
2 |
3 | import de.derfrzocker.feature.common.AbstractValue;
4 | import net.minecraft.world.level.levelgen.Heightmap;
5 |
6 | public abstract class HeightmapValue extends AbstractValue {
7 |
8 | @Override
9 | public abstract HeightmapValue clone();
10 | }
11 |
--------------------------------------------------------------------------------
/impl/v1_21_R4/src/main/java/de/derfrzocker/feature/impl/v1_21_R4/value/offset/NMSAboveBottomOffsetIntegerValue.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.impl.v1_21_R4.value.offset;
2 |
3 | import de.derfrzocker.feature.common.value.number.IntegerValue;
4 | import de.derfrzocker.feature.common.value.offset.AboveBottomOffsetIntegerValue;
5 | import java.util.Random;
6 | import net.minecraft.world.level.WorldGenLevel;
7 | import org.bukkit.craftbukkit.v1_21_R4.generator.CraftLimitedRegion;
8 | import org.bukkit.generator.LimitedRegion;
9 | import org.bukkit.generator.WorldInfo;
10 | import org.bukkit.util.BlockVector;
11 | import org.jetbrains.annotations.NotNull;
12 |
13 | public class NMSAboveBottomOffsetIntegerValue extends AboveBottomOffsetIntegerValue {
14 |
15 | public NMSAboveBottomOffsetIntegerValue(IntegerValue base) {
16 | super(base);
17 | }
18 |
19 | @Override
20 | public Integer getValue(@NotNull WorldInfo worldInfo, @NotNull Random random, @NotNull BlockVector position, @NotNull LimitedRegion limitedRegion) {
21 | int baseValue = getBase() == null ? 0 : getBase().getValue(worldInfo, random, position, limitedRegion);
22 |
23 | WorldGenLevel level = ((CraftLimitedRegion) limitedRegion).getHandle();
24 |
25 | return Math.max(level.getMinY(), level.getLevel().getChunkSource().getGenerator().getMinY()) + baseValue;
26 | }
27 |
28 | @Override
29 | public AboveBottomOffsetIntegerValue clone() {
30 | return new NMSAboveBottomOffsetIntegerValue(getBase() == null ? null : getBase().clone());
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/impl/v1_21_R4/src/main/java/de/derfrzocker/feature/impl/v1_21_R4/value/offset/NMSBelowTopOffsetIntegerValue.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.feature.impl.v1_21_R4.value.offset;
2 |
3 | import de.derfrzocker.feature.common.value.number.IntegerValue;
4 | import de.derfrzocker.feature.common.value.offset.BelowTopOffsetIntegerValue;
5 | import java.util.Random;
6 | import net.minecraft.world.level.WorldGenLevel;
7 | import net.minecraft.world.level.chunk.ChunkGenerator;
8 | import org.bukkit.craftbukkit.v1_21_R4.generator.CraftLimitedRegion;
9 | import org.bukkit.generator.LimitedRegion;
10 | import org.bukkit.generator.WorldInfo;
11 | import org.bukkit.util.BlockVector;
12 | import org.jetbrains.annotations.NotNull;
13 |
14 | public class NMSBelowTopOffsetIntegerValue extends BelowTopOffsetIntegerValue {
15 |
16 | public NMSBelowTopOffsetIntegerValue(IntegerValue base) {
17 | super(base);
18 | }
19 |
20 | @Override
21 | public Integer getValue(@NotNull WorldInfo worldInfo, @NotNull Random random, @NotNull BlockVector position, @NotNull LimitedRegion limitedRegion) {
22 | int baseValue = getBase() == null ? 0 : getBase().getValue(worldInfo, random, position, limitedRegion);
23 |
24 | WorldGenLevel level = ((CraftLimitedRegion) limitedRegion).getHandle();
25 | ChunkGenerator chunkGenerator = level.getLevel().getChunkSource().getGenerator();
26 |
27 | return Math.min(level.getHeight(), chunkGenerator.getGenDepth()) - 1 + Math.max(level.getMinY(), chunkGenerator.getMinY()) - baseValue;
28 | }
29 |
30 | @Override
31 | public NMSBelowTopOffsetIntegerValue clone() {
32 | return new NMSBelowTopOffsetIntegerValue(getBase() == null ? null : getBase().clone());
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/impl/v1_21_R4/src/main/java/de/derfrzocker/ore/control/impl/v1_21_R4/NMSReflectionNames.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.ore.control.impl.v1_21_R4;
2 |
3 | public final class NMSReflectionNames {
4 |
5 | public final static String BIOME_GENERATION_SETTINGS_FEATURES = "e";
6 | public final static String BIOME_GENERATION_SETTINGS_FEATURE_SET = "g";
7 | public final static String WEIGHTED_LIST_INT_DISTRIBUTION = "b";
8 | public final static String COUNT_PLACEMENT_COUNT = "c";
9 | public final static String HEIGHT_RANGE_PLACEMENT_HEIGHT = "c";
10 | public final static String RARITY_FILTER_CHANCE = "c";
11 | public final static String SURFACE_RELATIVE_THRESHOLD_FILTER_HEIGHTMAP = "c";
12 | public final static String SURFACE_RELATIVE_THRESHOLD_FILTER_MIN_INCLUSIVE = "d";
13 | public final static String SURFACE_RELATIVE_THRESHOLD_FILTER_MAX_INCLUSIVE = "e";
14 | public final static String SURFACE_WATER_DEPTH_FILTER_MAX_WATER_DEPTH = "c";
15 | public static final String CLAMPED_INT_SOURCE = "b";
16 | public static final String CLAMPED_INT_MIN_INCLUSIVE = "f";
17 | public static final String CLAMPED_INT_MAX_INCLUSIVE = "g";
18 | public static final String CLAMPED_NORMAL_INT_MEAN = "b";
19 | public static final String CLAMPED_NORMAL_INT_DEVIATION = "f";
20 | public static final String CHUNK_MAP_WORLD_GEN_CONTEXT = "S";
21 | public static final String NOISE_GENERATOR_SETTINGS = "e";
22 |
23 | private NMSReflectionNames() {
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/impl/v1_21_R4/src/main/java/de/derfrzocker/ore/control/impl/v1_21_R4/feature/generator/EmptyConfigurationGeneratorHook.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.ore.control.impl.v1_21_R4.feature.generator;
2 |
3 | import de.derfrzocker.feature.common.feature.generator.configuration.EmptyFeatureConfiguration;
4 | import de.derfrzocker.ore.control.api.Biome;
5 | import de.derfrzocker.ore.control.api.OreControlManager;
6 | import java.util.Random;
7 | import net.minecraft.world.level.levelgen.feature.Feature;
8 | import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration;
9 | import org.bukkit.NamespacedKey;
10 | import org.bukkit.generator.LimitedRegion;
11 | import org.bukkit.generator.WorldInfo;
12 | import org.bukkit.util.BlockVector;
13 | import org.jetbrains.annotations.NotNull;
14 |
15 | public class EmptyConfigurationGeneratorHook extends MinecraftFeatureGeneratorHook {
16 |
17 | private EmptyConfigurationGeneratorHook(Feature feature, @NotNull OreControlManager oreControlManager, @NotNull String name, Biome biome, NamespacedKey namespacedKey) {
18 | super(NoneFeatureConfiguration.CODEC, feature, oreControlManager, name, biome, namespacedKey);
19 | }
20 |
21 | public static EmptyConfigurationGeneratorHook createGlowstoneBlobHook(@NotNull OreControlManager oreControlManager, @NotNull NamespacedKey namespacedKey, @NotNull Biome biome) {
22 | return new EmptyConfigurationGeneratorHook(GLOWSTONE_BLOB, oreControlManager, "glowstone_blob", biome, namespacedKey);
23 | }
24 |
25 | @Override
26 | public NoneFeatureConfiguration createConfig(@NotNull NoneFeatureConfiguration defaultConfiguration, @NotNull WorldInfo worldInfo, @NotNull Random random, @NotNull BlockVector position, @NotNull LimitedRegion limitedRegion, @NotNull EmptyFeatureConfiguration configuration) {
27 | return defaultConfiguration;
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/ore-control/src/main/java/de/derfrzocker/ore/control/cache/config/BiomeConfigCacheSlice.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.ore.control.cache.config;
2 |
3 | import de.derfrzocker.ore.control.api.Biome;
4 | import de.derfrzocker.ore.control.api.config.Config;
5 | import de.derfrzocker.ore.control.api.config.ConfigInfo;
6 | import de.derfrzocker.ore.control.cache.config.part.BiomeConfigCachePart;
7 | import org.bukkit.NamespacedKey;
8 |
9 | import java.util.Map;
10 | import java.util.Optional;
11 | import java.util.concurrent.ConcurrentHashMap;
12 |
13 | public class BiomeConfigCacheSlice {
14 | private final Map cache = new ConcurrentHashMap<>();
15 |
16 | public void forEachFlatMap(QuadConsumer> consumer) { // Add and use Spigot Utils
17 | cache.forEach((configInfo, part) -> part.forEachFlatMap((biome, featureKey, config) -> consumer.accept(configInfo, biome, featureKey, config)));
18 | }
19 |
20 | public BiomeConfigCachePart getOrCreate(ConfigInfo configInfo) {
21 | return cache.computeIfAbsent(configInfo, ignore -> new BiomeConfigCachePart());
22 | }
23 |
24 | public Optional get(ConfigInfo configInfo) {
25 | return Optional.ofNullable(cache.get(configInfo));
26 | }
27 |
28 | public void clear() {
29 | cache.clear();
30 | }
31 |
32 | @FunctionalInterface
33 | public interface QuadConsumer {
34 | void accept(F first, S second, T third, Q fourth);
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/ore-control/src/main/java/de/derfrzocker/ore/control/cache/config/ConfigCacheSlice.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.ore.control.cache.config;
2 |
3 | import de.derfrzocker.ore.control.api.config.Config;
4 | import de.derfrzocker.ore.control.api.config.ConfigInfo;
5 | import de.derfrzocker.ore.control.cache.config.part.FeatureConfigCachePart;
6 | import de.derfrzocker.spigot.utils.function.TripleConsumer;
7 | import org.bukkit.NamespacedKey;
8 |
9 | import java.util.Map;
10 | import java.util.Optional;
11 | import java.util.concurrent.ConcurrentHashMap;
12 |
13 | public class ConfigCacheSlice {
14 |
15 | private final Map cache = new ConcurrentHashMap<>();
16 |
17 | public void clear() {
18 | cache.clear();
19 | }
20 |
21 | public void forEachFlatMap(TripleConsumer> consumer) {
22 | cache.forEach((configInfo, part) -> part.forEach((featureKey, config) -> consumer.accept(configInfo, featureKey, config)));
23 | }
24 |
25 | public FeatureConfigCachePart getOrCreate(ConfigInfo configInfo) {
26 | return cache.computeIfAbsent(configInfo, ignore -> new FeatureConfigCachePart());
27 | }
28 |
29 | public Optional get(ConfigInfo configInfo) {
30 | return Optional.ofNullable(cache.get(configInfo));
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/ore-control/src/main/java/de/derfrzocker/ore/control/cache/config/DefaultConfigCache.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.ore.control.cache.config;
2 |
3 | import de.derfrzocker.ore.control.api.Biome;
4 | import de.derfrzocker.ore.control.api.config.Config;
5 | import de.derfrzocker.ore.control.cache.config.part.BiomeConfigCachePart;
6 | import de.derfrzocker.ore.control.cache.config.part.FeatureConfigCachePart;
7 | import org.bukkit.NamespacedKey;
8 |
9 | import java.util.Optional;
10 |
11 | public class DefaultConfigCache {
12 | private final BiomeConfigCachePart biomeCache = new BiomeConfigCachePart();
13 | private final FeatureConfigCachePart cache = new FeatureConfigCachePart();
14 |
15 | public Optional getDefault(NamespacedKey featureKey) {
16 | return cache.getOrCompute(featureKey, Optional::empty);
17 | }
18 |
19 | public Optional getDefault(Biome biome, NamespacedKey featureKey) {
20 | return biomeCache.getOrCreate(biome).getOrCompute(featureKey, Optional::empty);
21 | }
22 |
23 | public void setDefault(NamespacedKey featureKey, Config config) {
24 | cache.set(featureKey, Optional.ofNullable(config));
25 | }
26 |
27 | public void setDefault(Biome biome, NamespacedKey featureKey, Config config) {
28 | biomeCache.getOrCreate(biome).set(featureKey, Optional.ofNullable(config));
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/ore-control/src/main/java/de/derfrzocker/ore/control/cache/config/GenerationConfigCache.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.ore.control.cache.config;
2 |
3 | import de.derfrzocker.ore.control.api.Biome;
4 | import de.derfrzocker.ore.control.api.config.Config;
5 | import de.derfrzocker.ore.control.api.config.ConfigInfo;
6 | import org.bukkit.NamespacedKey;
7 |
8 | import java.util.Optional;
9 |
10 | import static de.derfrzocker.ore.control.cache.config.ConfigCache.combineConfig;
11 |
12 | public class GenerationConfigCache {
13 | private final BiomeConfigCacheSlice biomeCache = new BiomeConfigCacheSlice();
14 | private final StandardConfigCache standardConfigCache;
15 |
16 | public GenerationConfigCache(StandardConfigCache standardConfigCache) {
17 | this.standardConfigCache = standardConfigCache;
18 | }
19 |
20 | public Optional getGeneration(ConfigInfo configInfo, Biome biome, NamespacedKey featureKey) {
21 | return biomeCache.getOrCreate(configInfo).getOrCreate(biome).getOrCompute(featureKey, () -> loadGenerationConfig(configInfo, biome, featureKey));
22 | }
23 |
24 | public void clear() {
25 | biomeCache.clear();
26 | }
27 |
28 | private Optional loadGenerationConfig(ConfigInfo configInfo, Biome biome, NamespacedKey featureKey) {
29 | Optional globalWorldConfig = standardConfigCache.getGlobal(featureKey);
30 | Optional globalBiomeConfig = standardConfigCache.getGlobal(biome, featureKey);
31 | Optional worldConfig = standardConfigCache.get(configInfo, featureKey);
32 | Optional biomeConfig = standardConfigCache.get(configInfo, biome, featureKey);
33 |
34 | return combineConfig(combineConfig(combineConfig(biomeConfig, worldConfig), globalBiomeConfig), globalWorldConfig);
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/ore-control/src/main/java/de/derfrzocker/ore/control/cache/config/part/BiomeConfigCachePart.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.ore.control.cache.config.part;
2 |
3 | import de.derfrzocker.ore.control.api.Biome;
4 | import de.derfrzocker.ore.control.api.config.Config;
5 | import de.derfrzocker.spigot.utils.function.TripleConsumer;
6 | import org.bukkit.NamespacedKey;
7 |
8 | import java.util.Map;
9 | import java.util.Optional;
10 | import java.util.concurrent.ConcurrentHashMap;
11 |
12 | public class BiomeConfigCachePart {
13 | private final Map cache = new ConcurrentHashMap<>();
14 |
15 | public void forEachFlatMap(TripleConsumer> consumer) {
16 | cache.forEach((biome, part) -> part.forEach((featureKey, config) -> consumer.accept(biome, featureKey, config)));
17 | }
18 |
19 | public FeatureConfigCachePart getOrCreate(Biome biome) {
20 | return cache.computeIfAbsent(biome, ignore -> new FeatureConfigCachePart());
21 | }
22 |
23 | public Optional get(Biome biome) {
24 | return Optional.ofNullable(cache.get(biome));
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/ore-control/src/main/java/de/derfrzocker/ore/control/cache/config/part/FeatureConfigCachePart.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.ore.control.cache.config.part;
2 |
3 | import de.derfrzocker.ore.control.api.config.Config;
4 | import org.bukkit.NamespacedKey;
5 |
6 | import java.util.Map;
7 | import java.util.Optional;
8 | import java.util.concurrent.ConcurrentHashMap;
9 | import java.util.function.BiConsumer;
10 | import java.util.function.Supplier;
11 |
12 | public class FeatureConfigCachePart {
13 | private final Map> cache = new ConcurrentHashMap<>();
14 |
15 | public void forEach(BiConsumer> consumer) {
16 | cache.forEach(consumer);
17 | }
18 |
19 | public Optional getOrCompute(NamespacedKey featureKey, Supplier> supplier) {
20 | return cache.computeIfAbsent(featureKey, ignore -> supplier.get());
21 | }
22 |
23 | public Config getOrCreate(NamespacedKey featureKey) {
24 | Optional optional = cache.getOrDefault(featureKey, Optional.empty());
25 |
26 | if (optional.isPresent()) {
27 | return optional.get();
28 | }
29 |
30 | Config config = new Config();
31 | cache.put(featureKey, Optional.of(config));
32 |
33 | return config;
34 | }
35 |
36 | public void set(NamespacedKey featureKey, Optional config) {
37 | cache.put(featureKey, config);
38 | }
39 |
40 | public void clear(NamespacedKey featureKey) {
41 | cache.remove(featureKey);
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/ore-control/src/main/java/de/derfrzocker/ore/control/cache/extra/ExtraValueCacheSlice.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.ore.control.cache.extra;
2 |
3 | import de.derfrzocker.feature.api.ExtraValues;
4 | import de.derfrzocker.ore.control.api.config.ConfigInfo;
5 |
6 | import java.util.Map;
7 | import java.util.Optional;
8 | import java.util.concurrent.ConcurrentHashMap;
9 | import java.util.function.BiConsumer;
10 | import java.util.function.Supplier;
11 |
12 | public class ExtraValueCacheSlice {
13 | private final Map> cache = new ConcurrentHashMap<>();
14 |
15 | public void forEach(BiConsumer> consumer) {
16 | cache.forEach(consumer);
17 | }
18 |
19 | public Optional getOrCompute(ConfigInfo configInfo, Supplier> supplier) {
20 | return cache.computeIfAbsent(configInfo, ignore -> supplier.get());
21 | }
22 |
23 | public ExtraValues getOrCreate(ConfigInfo configInfo) {
24 | Optional value = cache.getOrDefault(configInfo, Optional.empty());
25 |
26 | if (value.isPresent()) {
27 | return value.get();
28 | }
29 |
30 | ExtraValues values = new ExtraValues();
31 | cache.put(configInfo, Optional.of(values));
32 |
33 | return values;
34 | }
35 |
36 | public void clear(ConfigInfo configInfo) {
37 | cache.remove(configInfo);
38 | }
39 |
40 | public void clear() {
41 | cache.clear();
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/ore-control/src/main/java/de/derfrzocker/ore/control/gui/GuiValuesHolder.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.ore.control.gui;
2 |
3 | import de.derfrzocker.ore.control.Stats;
4 | import de.derfrzocker.ore.control.api.OreControlManager;
5 | import de.derfrzocker.ore.control.api.config.ConfigManager;
6 | import de.derfrzocker.ore.control.interactions.BlockInteractionManager;
7 | import de.derfrzocker.ore.control.traverser.ValueTraverser;
8 | import de.derfrzocker.spigot.utils.language.LanguageManager;
9 | import de.derfrzocker.spigot.utils.setting.ConfigSetting;
10 | import org.bukkit.plugin.Plugin;
11 |
12 | import java.util.function.Function;
13 |
14 | public record GuiValuesHolder(Plugin plugin, OreControlManager oreControlManager, OreControlGuiManager guiManager,
15 | ConfigManager configManager, LanguageManager languageManager,
16 | Function settingFunction, ValueTraverser valueTraverser,
17 | Stats stats, BlockInteractionManager blockInteractionManager) {
18 | }
19 |
--------------------------------------------------------------------------------
/ore-control/src/main/java/de/derfrzocker/ore/control/gui/SettingWrapper.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.ore.control.gui;
2 |
3 | import de.derfrzocker.feature.api.ConfigurationAble;
4 | import de.derfrzocker.feature.api.Setting;
5 |
6 | public class SettingWrapper {
7 |
8 | private final Setting setting;
9 | private final ConfigurationAble settingOwner;
10 |
11 | public SettingWrapper(Setting setting, ConfigurationAble settingOwner) {
12 | this.setting = setting;
13 | this.settingOwner = settingOwner;
14 | }
15 |
16 | public Setting getSetting() {
17 | return setting;
18 | }
19 |
20 | public ConfigurationAble getSettingOwner() {
21 | return settingOwner;
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/ore-control/src/main/java/de/derfrzocker/ore/control/gui/info/InfoLinkData.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.ore.control.gui.info;
2 |
3 | import de.derfrzocker.ore.control.gui.PlayerGuiData;
4 | import de.derfrzocker.spigot.utils.message.MessageValue;
5 |
6 | public record InfoLinkData(InfoLink infoLink, String[] data) {
7 |
8 | public static InfoLinkData of(InfoLink infoLink, String... data) {
9 | return new InfoLinkData(infoLink, data);
10 | }
11 |
12 | public String url(PlayerGuiData playerGuiData) {
13 | return infoLink().getUrl().apply(playerGuiData, data());
14 | }
15 |
16 | public MessageValue[] messageValues(PlayerGuiData playerGuiData) {
17 | return infoLink().getMessageValues().apply(playerGuiData, data());
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/ore-control/src/main/java/de/derfrzocker/ore/control/gui/info/InfoUtil.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.ore.control.gui.info;
2 |
3 | import de.derfrzocker.ore.control.OreControl;
4 | import org.bukkit.NamespacedKey;
5 |
6 | public final class InfoUtil {
7 |
8 | public static String fromKey(String base, NamespacedKey key) {
9 | return OreControl.BASE_WIKI_URL + base + ":-" + key.getNamespace().replace("_", "-") + ":-" + key.getKey().replace("_", "-");
10 | }
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/ore-control/src/main/java/de/derfrzocker/ore/control/gui/screen/ExtraValuesScreen.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.ore.control.gui.screen;
2 |
3 | import de.derfrzocker.ore.control.gui.GuiValuesHolder;
4 | import de.derfrzocker.ore.control.gui.ScreenUtil;
5 | import de.derfrzocker.ore.control.gui.Screens;
6 | import de.derfrzocker.spigot.utils.gui.InventoryGui;
7 | import de.derfrzocker.spigot.utils.gui.builders.Builders;
8 |
9 | public class ExtraValuesScreen {
10 |
11 | public static InventoryGui getGui(GuiValuesHolder guiValuesHolder) {
12 | return Builders
13 | .single()
14 | .identifier(Screens.EXTRA_VALUES_SCREEN)
15 | .languageManager(guiValuesHolder.languageManager())
16 | .withSetting(guiValuesHolder.settingFunction().apply("design.yml"))
17 | .withSetting(guiValuesHolder.settingFunction().apply("extra_values_screen.yml"))
18 | .addButtonContext(Builders
19 | .buttonContext()
20 | .identifier("big_ore_veins")
21 | .button(
22 | Builders
23 | .button()
24 | .identifier("big_ore_veins")
25 | .withAction(clickAction -> clickAction.getClickEvent().setCancelled(true))
26 | .withAction(clickAction -> guiValuesHolder.guiManager().openScreen(Screens.EXTRA_BIG_ORE_VEIN_SCREEN, clickAction.getPlayer()))
27 | )
28 | )
29 | .addButtonContext(ScreenUtil.getBackButton(guiValuesHolder.guiManager()))
30 | .build();
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/ore-control/src/main/java/de/derfrzocker/ore/control/gui/screen/value/BiasedToBottomIntegerScreen.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.ore.control.gui.screen.value;
2 |
3 | import de.derfrzocker.feature.common.value.number.integer.biased.BiasedToBottomIntegerValue;
4 | import de.derfrzocker.ore.control.gui.GuiValuesHolder;
5 | import de.derfrzocker.ore.control.gui.ScreenUtil;
6 | import de.derfrzocker.ore.control.gui.Screens;
7 | import de.derfrzocker.spigot.utils.gui.InventoryGui;
8 | import de.derfrzocker.spigot.utils.gui.builders.Builders;
9 | import org.bukkit.entity.Player;
10 |
11 | public class BiasedToBottomIntegerScreen {
12 |
13 | public static InventoryGui getGui(GuiValuesHolder guiValuesHolder) {
14 | return Builders
15 | .single()
16 | .identifier(Screens.VALUE_BIASED_TO_BOTTOM_INTEGER_SCREEN)
17 | .languageManager(guiValuesHolder.languageManager())
18 | .withSetting(guiValuesHolder.settingFunction().apply("design.yml"))
19 | .withSetting(guiValuesHolder.settingFunction().apply("value/biased_to_bottom_integer_screen.yml"))
20 | .addButtonContext(ScreenUtil.getPassthroughButton(guiValuesHolder, "min-inclusive", BiasedToBottomIntegerValue.class, BiasedToBottomIntegerValue::getMinInclusive))
21 | .addButtonContext(ScreenUtil.getPassthroughButton(guiValuesHolder, "max-inclusive", BiasedToBottomIntegerValue.class, BiasedToBottomIntegerValue::getMaxInclusive))
22 | .withBackAction((setting, guiInfo) -> guiValuesHolder.guiManager().getPlayerGuiData((Player) guiInfo.getEntity()).setPreviousToEditValue())
23 | .addButtonContext(ScreenUtil.getBackButton(guiValuesHolder.guiManager()))
24 | .build();
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/ore-control/src/main/java/de/derfrzocker/ore/control/gui/screen/value/TrapezoidIntegerScreen.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.ore.control.gui.screen.value;
2 |
3 | import de.derfrzocker.feature.common.value.number.integer.trapezoid.TrapezoidIntegerValue;
4 | import de.derfrzocker.ore.control.gui.GuiValuesHolder;
5 | import de.derfrzocker.ore.control.gui.ScreenUtil;
6 | import de.derfrzocker.ore.control.gui.Screens;
7 | import de.derfrzocker.spigot.utils.gui.InventoryGui;
8 | import de.derfrzocker.spigot.utils.gui.builders.Builders;
9 | import org.bukkit.entity.Player;
10 |
11 | public class TrapezoidIntegerScreen {
12 |
13 | public static InventoryGui getGui(GuiValuesHolder guiValuesHolder) {
14 | return Builders
15 | .single()
16 | .identifier(Screens.VALUE_TRAPEZOID_INTEGER_SCREEN)
17 | .languageManager(guiValuesHolder.languageManager())
18 | .withSetting(guiValuesHolder.settingFunction().apply("design.yml"))
19 | .withSetting(guiValuesHolder.settingFunction().apply("value/trapezoid_integer_screen.yml"))
20 | .addButtonContext(ScreenUtil.getPassthroughButton(guiValuesHolder, "min-inclusive", TrapezoidIntegerValue.class, TrapezoidIntegerValue::getMinInclusive))
21 | .addButtonContext(ScreenUtil.getPassthroughButton(guiValuesHolder, "max-inclusive", TrapezoidIntegerValue.class, TrapezoidIntegerValue::getMaxInclusive))
22 | .addButtonContext(ScreenUtil.getPassthroughButton(guiValuesHolder, "plateau", TrapezoidIntegerValue.class, TrapezoidIntegerValue::getPlateau))
23 | .withBackAction((setting, guiInfo) -> guiValuesHolder.guiManager().getPlayerGuiData((Player) guiInfo.getEntity()).setPreviousToEditValue())
24 | .addButtonContext(ScreenUtil.getBackButton(guiValuesHolder.guiManager()))
25 | .build();
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/ore-control/src/main/java/de/derfrzocker/ore/control/gui/screen/value/UniformIntegerScreen.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.ore.control.gui.screen.value;
2 |
3 | import de.derfrzocker.feature.common.value.number.integer.uniform.UniformIntegerValue;
4 | import de.derfrzocker.ore.control.gui.GuiValuesHolder;
5 | import de.derfrzocker.ore.control.gui.ScreenUtil;
6 | import de.derfrzocker.ore.control.gui.Screens;
7 | import de.derfrzocker.spigot.utils.gui.InventoryGui;
8 | import de.derfrzocker.spigot.utils.gui.builders.Builders;
9 | import org.bukkit.entity.Player;
10 |
11 | public class UniformIntegerScreen {
12 |
13 | public static InventoryGui getGui(GuiValuesHolder guiValuesHolder) {
14 | return Builders
15 | .single()
16 | .identifier(Screens.VALUE_UNIFORM_INTEGER_SCREEN)
17 | .languageManager(guiValuesHolder.languageManager())
18 | .withSetting(guiValuesHolder.settingFunction().apply("design.yml"))
19 | .withSetting(guiValuesHolder.settingFunction().apply("value/uniform_integer_screen.yml"))
20 | .addButtonContext(ScreenUtil.getPassthroughButton(guiValuesHolder, "min-inclusive", UniformIntegerValue.class, UniformIntegerValue::getMinInclusive))
21 | .addButtonContext(ScreenUtil.getPassthroughButton(guiValuesHolder, "max-inclusive", UniformIntegerValue.class, UniformIntegerValue::getMaxInclusive))
22 | .withBackAction((setting, guiInfo) -> guiValuesHolder.guiManager().getPlayerGuiData((Player) guiInfo.getEntity()).setPreviousToEditValue())
23 | .addButtonContext(ScreenUtil.getBackButton(guiValuesHolder.guiManager()))
24 | .build();
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/ore-control/src/main/java/de/derfrzocker/ore/control/interactions/BlockInteractionListener.java:
--------------------------------------------------------------------------------
1 | package de.derfrzocker.ore.control.interactions;
2 |
3 | import org.bukkit.block.BlockState;
4 | import org.bukkit.entity.Player;
5 |
6 | public interface BlockInteractionListener {
7 |
8 | boolean onBlockShiftLeftClick(Player player, BlockState blockState);
9 |
10 | boolean onBlockLeftClick(Player player, BlockState blockState);
11 |
12 | boolean onAirShiftLeftClick(Player player);
13 |
14 | boolean onAirLeftClick(Player player);
15 | }
16 |
--------------------------------------------------------------------------------
/ore-control/src/main/resources/gui/default/all_settings_screen.yml:
--------------------------------------------------------------------------------
1 | name: "%%translation:[all_settings_screen.name]%"
2 | default-icon:
3 | item-stack:
4 | ==: org.bukkit.inventory.ItemStack
5 | v: 2865
6 | type: COAL
7 | meta:
8 | ==: ItemMeta
9 | meta-type: UNSPECIFIC
10 | display-name: "&f%%translation:[settings.%setting%.name]%"
11 | lore:
12 | - " "
13 | - "%value-settings%"
14 | - " "
15 | - "&7>> &b%%translation:[all_settings_screen.default-icon.lore.left-click]% &7<<"
--------------------------------------------------------------------------------
/ore-control/src/main/resources/gui/default/biome_screen.yml:
--------------------------------------------------------------------------------
1 | name: "%%translation:[biome_screen.name]%"
2 | default-icon:
3 | item-stack:
4 | ==: org.bukkit.inventory.ItemStack
5 | v: 2865
6 | type: BARRIER
7 | meta:
8 | ==: ItemMeta
9 | meta-type: UNSPECIFIC
10 | display-name: "&f%%translation:[namespaces.%biome-namespace%.name]%: %%translation:[biomes.%biome-namespace%.%biome-key%.name]%"
11 | lore:
12 | - " "
13 | - "&7>> &b%%translation:[biome_screen.default-icon.lore.left-click]% &7<<"
--------------------------------------------------------------------------------
/ore-control/src/main/resources/gui/default/config_info_screen.yml:
--------------------------------------------------------------------------------
1 | name: "%%translation:[config_info_screen.name]%"
2 | whole-world:
3 | slot: 23
4 | item-stack:
5 | ==: org.bukkit.inventory.ItemStack
6 | v: 2865
7 | type: STONE
8 | meta:
9 | ==: ItemMeta
10 | meta-type: UNSPECIFIC
11 | display-name: "&f%%translation:[config_info_screen.whole-world.name]%"
12 | lore:
13 | - " "
14 | - "&7>> &b%%translation:[config_info_screen.whole-world.lore.left-click]% &7<<"
15 | biome:
16 | slot: 21
17 | item-stack:
18 | ==: org.bukkit.inventory.ItemStack
19 | v: 2865
20 | type: GRASS_BLOCK
21 | meta:
22 | ==: ItemMeta
23 | meta-type: UNSPECIFIC
24 | display-name: "&f%%translation:[config_info_screen.biome.name]%"
25 | lore:
26 | - " "
27 | - "&7>> &b%%translation:[config_info_screen.biome.lore.left-click]% &7<<"
28 | extra-values:
29 | slot: 4
30 | item-stack:
31 | ==: org.bukkit.inventory.ItemStack
32 | v: 2865
33 | type: COMPARATOR
34 | meta:
35 | ==: ItemMeta
36 | meta-type: UNSPECIFIC
37 | display-name: "&f%%translation:[config_info_screen.extra-values.name]%"
38 | lore:
39 | - " "
40 | - "&7>> &b%%translation:[config_info_screen.extra-values.lore.left-click]% &7<<"
--------------------------------------------------------------------------------
/ore-control/src/main/resources/gui/default/extra/big_ore_vein_screen.yml:
--------------------------------------------------------------------------------
1 | name: "%%translation:[big_ore_vein_screen.name]%"
2 | activation:
3 | slot: 20
4 | item-stack:
5 | ==: org.bukkit.inventory.ItemStack
6 | v: 2865
7 | type: LIME_TERRACOTTA
8 | meta:
9 | ==: ItemMeta
10 | meta-type: UNSPECIFIC
11 | display-name: "&f%%translation:[big_ore_vein_screen.true.name]%"
12 | lore:
13 | - " "
14 | - "&7>> &b%%translation:[big_ore_vein_screen.true.lore.left-click]% &7<<"
15 | deactivation:
16 | slot: 24
17 | item-stack:
18 | ==: org.bukkit.inventory.ItemStack
19 | v: 2865
20 | type: RED_TERRACOTTA
21 | meta:
22 | ==: ItemMeta
23 | meta-type: UNSPECIFIC
24 | display-name: "&f%%translation:[big_ore_vein_screen.false.name]%"
25 | lore:
26 | - " "
27 | - "&7>> &b%%translation:[big_ore_vein_screen.false.lore.left-click]% &7<<"
28 | reset:
29 | slot: 22
30 | item-stack:
31 | ==: org.bukkit.inventory.ItemStack
32 | v: 2865
33 | type: GRAY_TERRACOTTA
34 | meta:
35 | ==: ItemMeta
36 | meta-type: UNSPECIFIC
37 | display-name: "&f%%translation:[big_ore_vein_screen.reset.name]%"
38 | lore:
39 | - " "
40 | - "&7>> &b%%translation:[big_ore_vein_screen.reset.lore.left-click]% &7<<"
--------------------------------------------------------------------------------
/ore-control/src/main/resources/gui/default/extra_values_screen.yml:
--------------------------------------------------------------------------------
1 | name: "%%translation:[extra_values_screen.name]%"
2 | big_ore_veins:
3 | slot: 22
4 | item-stack:
5 | ==: org.bukkit.inventory.ItemStack
6 | v: 2865
7 | type: RAW_IRON_BLOCK
8 | meta:
9 | ==: ItemMeta
10 | meta-type: UNSPECIFIC
11 | display-name: "&f%%translation:[extra_values_screen.big_ore_veins.name]%"
12 | lore:
13 | - " "
14 | - "&7>> &b%%translation:[extra_values_screen.big_ore_veins.lore.left-click]% &7<<"
--------------------------------------------------------------------------------
/ore-control/src/main/resources/gui/default/feature_selection_screen.yml:
--------------------------------------------------------------------------------
1 | name: "%%translation:[feature_selection_screen.name]%"
2 | default-icon:
3 | item-stack:
4 | ==: org.bukkit.inventory.ItemStack
5 | v: 2865
6 | type: BARRIER
7 | meta:
8 | ==: ItemMeta
9 | meta-type: UNSPECIFIC
10 | display-name: "&f%%translation:[namespaces.%feature-namespace%.name]%: %%translation:[features.%feature-namespace%.%feature-key%.name]%"
11 | lore:
12 | - " "
13 | - "%generator-settings%"
14 | - " "
15 | - "%placement-modifier-settings%"
16 | - " "
17 | - "&7>> &b%%translation:[feature_selection_screen.default-icon.lore.left-click]% &7<<"
--------------------------------------------------------------------------------
/ore-control/src/main/resources/gui/default/generator_icons.yml:
--------------------------------------------------------------------------------
1 | icons:
2 | minecraft:
3 | ore:
4 | type: "DIAMOND_BLOCK"
5 | scattered_ore:
6 | type: "NETHERITE_BLOCK"
7 | glowstone_blob:
8 | type: "GLOWSTONE"
--------------------------------------------------------------------------------
/ore-control/src/main/resources/gui/default/language_screen.yml:
--------------------------------------------------------------------------------
1 | name: "%%translation:[language_screen.name]%"
2 | finished:
3 | slot: 4
4 | item-stack:
5 | ==: org.bukkit.inventory.ItemStack
6 | v: 2865
7 | type: WARPED_SIGN
8 | meta:
9 | ==: ItemMeta
10 | meta-type: UNSPECIFIC
11 | display-name: "&f%%translation:[language_screen.finished.name]%"
12 | lore:
13 | - " "
14 | - "&7>> &b%%translation:[language_screen.finished.lore.left-click]% &7<<"
--------------------------------------------------------------------------------
/ore-control/src/main/resources/gui/default/other/block_tag_screen.yml:
--------------------------------------------------------------------------------
1 | name: "%%translation:[block_tag_screen.name]%"
2 | default-icon:
3 | item-stack:
4 | ==: org.bukkit.inventory.ItemStack
5 | v: 2865
6 | type: NAME_TAG
7 | meta:
8 | ==: ItemMeta
9 | meta-type: UNSPECIFIC
10 | display-name: "&f%tag%"
11 | lore:
12 | - " "
13 | - "&7>> &b%%translation:[block_tag_screen.default-icon.lore.left-click]% &7<<"
--------------------------------------------------------------------------------
/ore-control/src/main/resources/gui/default/other/target_block_state_screen.yml:
--------------------------------------------------------------------------------
1 | name: "%%translation:[target_block_state_screen.name]%"
2 | target:
3 | slot: 21
4 | item-stack:
5 | ==: org.bukkit.inventory.ItemStack
6 | v: 2865
7 | type: COAL
8 | meta:
9 | ==: ItemMeta
10 | meta-type: UNSPECIFIC
11 | display-name: "&f%%translation:[target_block_state_screen.target.name]%"
12 | lore:
13 | - " "
14 | - "%value-settings%"
15 | - " "
16 | - "&7>> &b%%translation:[target_block_state_screen.target.lore.left-click]% &7<<"
17 | state:
18 | slot: 23
19 | item-stack:
20 | ==: org.bukkit.inventory.ItemStack
21 | v: 2865
22 | type: COAL
23 | meta:
24 | ==: ItemMeta
25 | meta-type: UNSPECIFIC
26 | display-name: "&f%%translation:[target_block_state_screen.state.name]%"
27 | lore:
28 | - " "
29 | - "&r&b%%translation:[target_block_state_screen.state.lore.state]%: %state%"
30 | - " "
31 | - "&7>> &b%%translation:[target_block_state_screen.state.lore.left-click]% &7<<"
--------------------------------------------------------------------------------
/ore-control/src/main/resources/gui/default/rule_test/block_match_screen.yml:
--------------------------------------------------------------------------------
1 | name: "%%translation:[block_match_screen.name]%"
2 | target:
3 | slot: 22
4 | item-stack:
5 | ==: org.bukkit.inventory.ItemStack
6 | v: 2865
7 | type: COAL
8 | meta:
9 | ==: ItemMeta
10 | meta-type: UNSPECIFIC
11 | display-name: "&f%%translation:[block_match_screen.block.name]%"
12 | lore:
13 | - " "
14 | - "&r&b%%translation:[block_match_screen.block.lore.block]%: %block%"
15 | - " "
16 | - "&7>> &b%%translation:[block_match_screen.block.lore.left-click]% &7<<"
--------------------------------------------------------------------------------
/ore-control/src/main/resources/gui/default/rule_test/block_state_match_screen.yml:
--------------------------------------------------------------------------------
1 | name: "%%translation:[block_state_match_screen.name]%"
2 | target:
3 | slot: 22
4 | item-stack:
5 | ==: org.bukkit.inventory.ItemStack
6 | v: 2865
7 | type: COAL
8 | meta:
9 | ==: ItemMeta
10 | meta-type: UNSPECIFIC
11 | display-name: "&f%%translation:[block_state_match_screen.block-state.name]%"
12 | lore:
13 | - " "
14 | - "&r&b%%translation:[block_state_match_screen.block-state.lore.block-state]%: %block-state%"
15 | - " "
16 | - "&7>> &b%%translation:[block_state_match_screen.block-state.lore.left-click]% &7<<"
--------------------------------------------------------------------------------
/ore-control/src/main/resources/gui/default/rule_test/tag_match_screen.yml:
--------------------------------------------------------------------------------
1 | name: "%%translation:[tag_match_screen.name]%"
2 | tag:
3 | slot: 22
4 | item-stack:
5 | ==: org.bukkit.inventory.ItemStack
6 | v: 2865
7 | type: NAME_TAG
8 | meta:
9 | ==: ItemMeta
10 | meta-type: UNSPECIFIC
11 | display-name: "&f%%translation:[tag_match_screen.tag.name]%"
12 | lore:
13 | - " "
14 | - "&r&b%%translation:[tag_match_screen.tag.lore.tag]%: %tag%"
15 | - " "
16 | - "&7>> &b%%translation:[tag_match_screen.tag.lore.left-click]% &7<<"
--------------------------------------------------------------------------------
/ore-control/src/main/resources/gui/default/value/above_bottom_offset_integer_screen.yml:
--------------------------------------------------------------------------------
1 | name: "%%translation:[above_bottom_offset_integer_screen.name]%"
2 | base:
3 | slot: 22
4 | item-stack:
5 | ==: org.bukkit.inventory.ItemStack
6 | v: 2865
7 | type: COAL
8 | meta:
9 | ==: ItemMeta
10 | meta-type: UNSPECIFIC
11 | display-name: "&f%%translation:[above_bottom_offset_integer_screen.base.name]%"
12 | lore:
13 | - " "
14 | - "%value-settings%"
15 | - " "
16 | - "&7>> &b%%translation:[above_bottom_offset_integer_screen.base.lore.left-click]% &7<<"
--------------------------------------------------------------------------------
/ore-control/src/main/resources/gui/default/value/below_top_offset_integer_screen.yml:
--------------------------------------------------------------------------------
1 | name: "%%translation:[below_top_offset_integer_screen.name]%"
2 | base:
3 | slot: 22
4 | item-stack:
5 | ==: org.bukkit.inventory.ItemStack
6 | v: 2865
7 | type: COAL
8 | meta:
9 | ==: ItemMeta
10 | meta-type: UNSPECIFIC
11 | display-name: "&f%%translation:[below_top_offset_integer_screen.base.name]%"
12 | lore:
13 | - " "
14 | - "%value-settings%"
15 | - " "
16 | - "&7>> &b%%translation:[below_top_offset_integer_screen.base.lore.left-click]% &7<<"
--------------------------------------------------------------------------------
/ore-control/src/main/resources/gui/default/value/biased_to_bottom_integer_screen.yml:
--------------------------------------------------------------------------------
1 | name: "%%translation:[biased_to_bottom_integer_screen.name]%"
2 | min-inclusive:
3 | slot: 21
4 | item-stack:
5 | ==: org.bukkit.inventory.ItemStack
6 | v: 2865
7 | type: COAL
8 | meta:
9 | ==: ItemMeta
10 | meta-type: UNSPECIFIC
11 | display-name: "&f%%translation:[biased_to_bottom_integer_screen.min-inclusive.name]%"
12 | lore:
13 | - " "
14 | - "%value-settings%"
15 | - " "
16 | - "&7>> &b%%translation:[biased_to_bottom_integer_screen.min-inclusive.lore.left-click]% &7<<"
17 | max-inclusive:
18 | slot: 23
19 | item-stack:
20 | ==: org.bukkit.inventory.ItemStack
21 | v: 2865
22 | type: COAL
23 | meta:
24 | ==: ItemMeta
25 | meta-type: UNSPECIFIC
26 | display-name: "&f%%translation:[biased_to_bottom_integer_screen.max-inclusive.name]%"
27 | lore:
28 | - " "
29 | - "%value-settings%"
30 | - " "
31 | - "&7>> &b%%translation:[biased_to_bottom_integer_screen.max-inclusive.lore.left-click]% &7<<"
--------------------------------------------------------------------------------
/ore-control/src/main/resources/gui/default/value/boolean_screen.yml:
--------------------------------------------------------------------------------
1 | name: "%%translation:[boolean_screen.name]%"
2 | true:
3 | slot: 20
4 | item-stack:
5 | ==: org.bukkit.inventory.ItemStack
6 | v: 2865
7 | type: LIME_TERRACOTTA
8 | meta:
9 | ==: ItemMeta
10 | meta-type: UNSPECIFIC
11 | display-name: "&f%%translation:[boolean_screen.true.name]%"
12 | lore:
13 | - " "
14 | - "&7>> &b%%translation:[boolean_screen.true.lore.left-click]% &7<<"
15 | false:
16 | slot: 24
17 | item-stack:
18 | ==: org.bukkit.inventory.ItemStack
19 | v: 2865
20 | type: RED_TERRACOTTA
21 | meta:
22 | ==: ItemMeta
23 | meta-type: UNSPECIFIC
24 | display-name: "&f%%translation:[boolean_screen.false.name]%"
25 | lore:
26 | - " "
27 | - "&7>> &b%%translation:[boolean_screen.false.lore.left-click]% &7<<"
--------------------------------------------------------------------------------
/ore-control/src/main/resources/gui/default/value/clamped_integer_screen.yml:
--------------------------------------------------------------------------------
1 | name: "%%translation:[clamped_integer_screen.name]%"
2 | source:
3 | slot: 20
4 | item-stack:
5 | ==: org.bukkit.inventory.ItemStack
6 | v: 2865
7 | type: COAL
8 | meta:
9 | ==: ItemMeta
10 | meta-type: UNSPECIFIC
11 | display-name: "&f%%translation:[clamped_integer_screen.source.name]%"
12 | lore:
13 | - " "
14 | - "%value-settings%"
15 | - " "
16 | - "&7>> &b%%translation:[clamped_integer_screen.source.lore.left-click]% &7<<"
17 | min-inclusive:
18 | slot: 22
19 | item-stack:
20 | ==: org.bukkit.inventory.ItemStack
21 | v: 2865
22 | type: COAL
23 | meta:
24 | ==: ItemMeta
25 | meta-type: UNSPECIFIC
26 | display-name: "&f%%translation:[clamped_integer_screen.min-inclusive.name]%"
27 | lore:
28 | - " "
29 | - "%value-settings%"
30 | - " "
31 | - "&7>> &b%%translation:[clamped_integer_screen.min-inclusive.lore.left-click]% &7<<"
32 | max-inclusive:
33 | slot: 24
34 | item-stack:
35 | ==: org.bukkit.inventory.ItemStack
36 | v: 2865
37 | type: COAL
38 | meta:
39 | ==: ItemMeta
40 | meta-type: UNSPECIFIC
41 | display-name: "&f%%translation:[clamped_integer_screen.max-inclusive.name]%"
42 | lore:
43 | - " "
44 | - "%value-settings%"
45 | - " "
46 | - "&7>> &b%%translation:[clamped_integer_screen.max-inclusive.lore.left-click]% &7<<"
--------------------------------------------------------------------------------
/ore-control/src/main/resources/gui/default/value/fixed_target_list_screen.yml:
--------------------------------------------------------------------------------
1 | name: "%%translation:[fixed_target_list_screen.name]%"
2 | default-icon:
3 | ==: org.bukkit.inventory.ItemStack
4 | v: 2865
5 | type: COAL
6 | meta:
7 | ==: ItemMeta
8 | meta-type: UNSPECIFIC
9 | display-name: "&f%%translation:[fixed_target_list_screen.default-icon.name]%"
10 | lore:
11 | - " "
12 | - "%value-settings%"
13 | - " "
14 | - "&7>> &b%%translation:[fixed_target_list_screen.default-icon.lore.left-click]% &7<<"
--------------------------------------------------------------------------------
/ore-control/src/main/resources/gui/default/value/trapezoid_integer_screen.yml:
--------------------------------------------------------------------------------
1 | name: "%%translation:[trapezoid_integer_screen.name]%"
2 | min-inclusive:
3 | slot: 20
4 | item-stack:
5 | ==: org.bukkit.inventory.ItemStack
6 | v: 2865
7 | type: COAL
8 | meta:
9 | ==: ItemMeta
10 | meta-type: UNSPECIFIC
11 | display-name: "&f%%translation:[trapezoid_integer_screen.min-inclusive.name]%"
12 | lore:
13 | - " "
14 | - "%value-settings%"
15 | - " "
16 | - "&7>> &b%%translation:[trapezoid_integer_screen.min-inclusive.lore.left-click]% &7<<"
17 | max-inclusive:
18 | slot: 24
19 | item-stack:
20 | ==: org.bukkit.inventory.ItemStack
21 | v: 2865
22 | type: COAL
23 | meta:
24 | ==: ItemMeta
25 | meta-type: UNSPECIFIC
26 | display-name: "&f%%translation:[trapezoid_integer_screen.max-inclusive.name]%"
27 | lore:
28 | - " "
29 | - "%value-settings%"
30 | - " "
31 | - "&7>> &b%%translation:[trapezoid_integer_screen.max-inclusive.lore.left-click]% &7<<"
32 | plateau:
33 | slot: 22
34 | item-stack:
35 | ==: org.bukkit.inventory.ItemStack
36 | v: 2865
37 | type: COAL
38 | meta:
39 | ==: ItemMeta
40 | meta-type: UNSPECIFIC
41 | display-name: "&f%%translation:[trapezoid_integer_screen.plateau.name]%"
42 | lore:
43 | - " "
44 | - "%value-settings%"
45 | - " "
46 | - "&7>> &b%%translation:[trapezoid_integer_screen.plateau.lore.left-click]% &7<<"
--------------------------------------------------------------------------------
/ore-control/src/main/resources/gui/default/value/uniform_integer_screen.yml:
--------------------------------------------------------------------------------
1 | name: "%%translation:[uniform_integer_screen.name]%"
2 | min-inclusive:
3 | slot: 21
4 | item-stack:
5 | ==: org.bukkit.inventory.ItemStack
6 | v: 2865
7 | type: COAL
8 | meta:
9 | ==: ItemMeta
10 | meta-type: UNSPECIFIC
11 | display-name: "&f%%translation:[uniform_integer_screen.min-inclusive.name]%"
12 | lore:
13 | - " "
14 | - "%value-settings%"
15 | - " "
16 | - "&7>> &b%%translation:[uniform_integer_screen.min-inclusive.lore.left-click]% &7<<"
17 | max-inclusive:
18 | slot: 23
19 | item-stack:
20 | ==: org.bukkit.inventory.ItemStack
21 | v: 2865
22 | type: COAL
23 | meta:
24 | ==: ItemMeta
25 | meta-type: UNSPECIFIC
26 | display-name: "&f%%translation:[uniform_integer_screen.max-inclusive.name]%"
27 | lore:
28 | - " "
29 | - "%value-settings%"
30 | - " "
31 | - "&7>> &b%%translation:[uniform_integer_screen.max-inclusive.lore.left-click]% &7<<"
--------------------------------------------------------------------------------
/ore-control/src/main/resources/gui/default/value/weighted_list_integer_screen.yml:
--------------------------------------------------------------------------------
1 | name: "%%translation:[weighted_list_integer_screen.name]%"
2 | default-icon:
3 | ==: org.bukkit.inventory.ItemStack
4 | v: 2865
5 | type: COAL
6 | meta:
7 | ==: ItemMeta
8 | meta-type: UNSPECIFIC
9 | display-name: "&f%%translation:[weighted_list_integer_screen.default-icon.name]%"
10 | lore:
11 | - " "
12 | - "%value-settings%"
13 | - " "
14 | - "&7>> &b%%translation:[weighted_list_integer_screen.default-icon.lore.left-click]% &7<<"
--------------------------------------------------------------------------------
/ore-control/src/main/resources/gui/default/value/weighted_list_sub_integer_screen.yml:
--------------------------------------------------------------------------------
1 | name: "%%translation:[weighted_list_sub_integer_screen.name]%"
2 | data:
3 | slot: 21
4 | item-stack:
5 | ==: org.bukkit.inventory.ItemStack
6 | v: 2865
7 | type: COAL
8 | meta:
9 | ==: ItemMeta
10 | meta-type: UNSPECIFIC
11 | display-name: "&f%%translation:[weighted_list_sub_integer_screen.data.name]%"
12 | lore:
13 | - " "
14 | - "%value-settings%"
15 | - " "
16 | - "&7>> &b%%translation:[weighted_list_sub_integer_screen.data.lore.left-click]% &7<<"
17 | weight:
18 | slot: 23
19 | item-stack:
20 | ==: org.bukkit.inventory.ItemStack
21 | v: 2865
22 | type: COAL
23 | meta:
24 | ==: ItemMeta
25 | meta-type: UNSPECIFIC
26 | display-name: "&f%%translation:[weighted_list_sub_integer_screen.weight.name]%"
27 | lore:
28 | - " "
29 | - "%value-settings%"
30 | - " "
31 | - "&7>> &b%%translation:[weighted_list_sub_integer_screen.weight.lore.left-click]% &7<<"
--------------------------------------------------------------------------------
/ore-control/src/main/resources/lang/README.txt:
--------------------------------------------------------------------------------
1 | The default language files present in this directory should not be modified directly.
2 | They will be overridden on every plugin start. They are only references for adding your own language files.
3 |
4 | How to add own language files:
5 |
6 | 1: Make a copy of one of the existing language directories in this directory.
7 |
8 | 2: Rename the copied directory to the name of the language you want to add.
9 | Note: To avoid collisions with further added languages it is recommended to prefix your directory. For example: custom_ch.
10 |
11 | 3: In the directory of your language you find a file called info.yml. This file contains some basic information about the
12 | language, such as the names of the authors and an icon which is shown in the selection gui. Modify those values accordingly.
13 |
14 | 4: Now you can start translating the files. Once you start the server again the language files will show in the selecting screen.
15 |
16 | 5: Share your language files!
17 | You can help bringing this plugin to more languages by contributing your custom language files back to the plugin,
18 | they don't need to be completed every bit is helpful.
19 | You can do this by either making a PR (https://github.com/DerFrZocker/Ore-Control) or by sending the language files,
20 | via a discussion post https://github.com/DerFrZocker/Ore-Control/discussions.
--------------------------------------------------------------------------------
/ore-control/src/main/resources/lang/de/feature_generators.yml:
--------------------------------------------------------------------------------
1 | feature-generators:
2 | minecraft:
3 | ore:
4 | name: "Erz"
5 | scattered_ore:
6 | name: "Verstreut Erz"
7 | glowstone_blob:
8 | name: "Leuchtstein Klecks"
--------------------------------------------------------------------------------
/ore-control/src/main/resources/lang/de/info.yml:
--------------------------------------------------------------------------------
1 | authors: [DerFrZocker]
2 | icon:
3 | ==: org.bukkit.inventory.ItemStack
4 | v: 2865
5 | type: PLAYER_HEAD
6 | meta:
7 | ==: ItemMeta
8 | meta-type: SKULL
9 | display-name: '{"text":"Deutsch"}'
10 | skull-owner:
11 | ==: PlayerProfile
12 | uniqueId: be211c23-d8aa-4119-bd0d-7f50fd115d9f
13 | properties:
14 | - name: textures
15 | value: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNWU3ODk5YjQ4MDY4NTg2OTdlMjgzZjA4NGQ5MTczZmU0ODc4ODY0NTM3NzQ2MjZiMjRiZDhjZmVjYzc3YjNmIn19fQ==
--------------------------------------------------------------------------------
/ore-control/src/main/resources/lang/de/namespaces.yml:
--------------------------------------------------------------------------------
1 | namespaces:
2 | minecraft:
3 | name: "Minecraft"
4 | feature:
5 | name: "Feature"
6 | terralith:
7 | name: "Terralith"
--------------------------------------------------------------------------------
/ore-control/src/main/resources/lang/de/placement_modifiers.yml:
--------------------------------------------------------------------------------
1 | placement-modifiers:
2 | minecraft:
3 | rarity_filter:
4 | name: "Raritätsfilter"
5 | surface_relative_threshold_filter:
6 | name: "Relativer Oberflächenschwellenwertfilter"
7 | surface_water_depth_filter:
8 | name: "Oberflächenwasser Tiefenfilter"
9 | count:
10 | name: "Anzahl"
11 | height_range:
12 | name: "Höhenbereich"
13 | feature:
14 | activation:
15 | name: "Aktivierung"
--------------------------------------------------------------------------------
/ore-control/src/main/resources/lang/de/rule_tests.yml:
--------------------------------------------------------------------------------
1 | rule-tests:
2 | minecraft:
3 | always_true:
4 | name: "Immer Wahr"
5 | block_match:
6 | name: "Block Übereinstimmung"
7 | blockstate_match:
8 | name: "Blockzustand Übereinstimmung"
9 | random_block_match:
10 | name: "Zufällige Block Übereinstimmung"
11 | random_blockstate_match:
12 | name: "Zufällige Blockzustand Übereinstimmung"
13 | tag_match:
14 | name: "Tag Übereinstimmung"
--------------------------------------------------------------------------------
/ore-control/src/main/resources/lang/de/settings.yml:
--------------------------------------------------------------------------------
1 | settings:
2 | size:
3 | name: "Größe"
4 | discard-chance-on-air-exposure:
5 | name: "Stop Chance Bei Luft Berührung"
6 | count:
7 | name: "Anzahl"
8 | height:
9 | name: "Höhe"
10 | chance:
11 | name: "Chance"
12 | min-inclusive:
13 | name: "Min Inklusive"
14 | max-inclusive:
15 | name: "Max Inklusive"
16 | max-water-depth:
17 | name: "Max Wasser Tiefe"
18 | activate:
19 | name: "Aktivieren"
20 | targets:
21 | name: "Ziele"
22 | value-settings:
23 | min-inclusive:
24 | name: "Min Inklusive"
25 | max-inclusive:
26 | name: "Max Inklusive"
27 | plateau:
28 | name: "Plateau"
29 | base:
30 | name: "Basis"
31 | data:
32 | name: "Daten"
33 | weight:
34 | name: "Gewicht"
35 | target-block-state:
36 | name: "Ziel Blockzustand"
37 | state:
38 | name: "Zustand"
39 | target:
40 | name: "Ziel"
41 | entry:
42 | name: "Eintrag"
43 | block:
44 | name: "Block"
45 | block-state:
46 | name: "Blockzustand"
47 | probability:
48 | name: "Wahrscheinlichkeit"
49 | tag:
50 | name: "Tag"
--------------------------------------------------------------------------------
/ore-control/src/main/resources/lang/de/useful_links.yml:
--------------------------------------------------------------------------------
1 | useful-links:
2 | header: "&7~~~~~~~~~~~~~~~~~&bNützliche Links&7~~~~~~~~~~~~~~~~~"
3 | prefix: "&bOre Control &7>>&f "
4 | footer: "&7~~~~~~~~~~~~~~~~~&bNützliche Links&7~~~~~~~~~~~~~~~~~"
5 | hover: "Klicke Mich!"
6 | questions:
7 | GENERATOR_INFO: "Was ist %%translation:[namespaces.%generator-namespace%.name]% %%translation:[feature-generators.%generator-namespace%.%generator-key%.name]% für ein Generator?"
8 | PLACEMENT_MODIFIER_INFO: "Was ist %%translation:[namespaces.%placement-modifier-namespace%.name]% %%translation:[placement-modifiers.%placement-modifier-namespace%.%placement-modifier-key%.name]% für ein Plaziermodifikator?"
9 | INVENTORY_GUI_SCREENS_EXPLAINED: "Was kann ich setzen / machen in der '%%translation:[%screen-name-key%.name]%' gui screen?"
10 | COMMON_QUESTIONS: "%%translation:[useful-links.common-questions.%common-question-key%]%"
11 | common-questions:
12 | why-are-there-multiple-features-with-the-same-ore: "Warum gibt es mehrere features mit dem selben Erz?"
--------------------------------------------------------------------------------
/ore-control/src/main/resources/lang/de/value_types.yml:
--------------------------------------------------------------------------------
1 | value-types:
2 | feature:
3 | fixed_integer:
4 | name: "Feste Zahl"
5 | fixed_double_to_integer:
6 | name: "Feste Gleitkommazahl"
7 | uniform_integer:
8 | name: "Uniform"
9 | trapezoid_integer:
10 | name: "Trapezförmig"
11 | above_bottom_offset_integer:
12 | name: "Oberhalb Des Unteren Offsets"
13 | below_top_offset_integer:
14 | name: "Unterhalb Des Oberen Offsets"
15 | fixed_float:
16 | name: "Feste Gleitkommazahl"
17 | weighted_list_integer:
18 | name: "Gewichtet"
19 | biased_to_bottom_integer:
20 | name: "Verzerrt Nach Unten"
21 | fixed_boolean:
22 | name: "Fester Boolean"
23 | clamped_integer:
24 | name: "Geklemmt"
25 | clamped_normal_integer:
26 | name: "Normal Geklemmt"
27 | fixed_target_list:
28 | name: "Feste Zielliste"
--------------------------------------------------------------------------------
/ore-control/src/main/resources/lang/en/feature_generators.yml:
--------------------------------------------------------------------------------
1 | feature-generators:
2 | minecraft:
3 | ore:
4 | name: "Ore"
5 | scattered_ore:
6 | name: "Scattered Ore"
7 | glowstone_blob:
8 | name: "Glowstone Blob"
--------------------------------------------------------------------------------
/ore-control/src/main/resources/lang/en/info.yml:
--------------------------------------------------------------------------------
1 | authors: [DerFrZocker]
2 | icon:
3 | ==: org.bukkit.inventory.ItemStack
4 | v: 2865
5 | type: PLAYER_HEAD
6 | meta:
7 | ==: ItemMeta
8 | meta-type: SKULL
9 | display-name: '{"text":"English"}'
10 | skull-owner:
11 | ==: PlayerProfile
12 | uniqueId: d4c559ed-72c4-43bc-a775-a19cd470824a
13 | properties:
14 | - name: textures
15 | value: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYmVlNWM4NTBhZmJiN2Q4ODQzMjY1YTE0NjIxMWFjOWM2MTVmNzMzZGNjNWE4ZTIxOTBlNWMyNDdkZWEzMiJ9fX0=
--------------------------------------------------------------------------------
/ore-control/src/main/resources/lang/en/namespaces.yml:
--------------------------------------------------------------------------------
1 | namespaces:
2 | minecraft:
3 | name: "Minecraft"
4 | feature:
5 | name: "Feature"
6 | terralith:
7 | name: "Terralith"
--------------------------------------------------------------------------------
/ore-control/src/main/resources/lang/en/placement_modifiers.yml:
--------------------------------------------------------------------------------
1 | placement-modifiers:
2 | minecraft:
3 | rarity_filter:
4 | name: "Rarity Filter"
5 | surface_relative_threshold_filter:
6 | name: "Surface Relative Threshold Filter"
7 | surface_water_depth_filter:
8 | name: "Surface Water Depth Filter"
9 | count:
10 | name: "Count"
11 | height_range:
12 | name: "Height Range"
13 | feature:
14 | activation:
15 | name: "Activation"
--------------------------------------------------------------------------------
/ore-control/src/main/resources/lang/en/rule_tests.yml:
--------------------------------------------------------------------------------
1 | rule-tests:
2 | minecraft:
3 | always_true:
4 | name: "Always True"
5 | block_match:
6 | name: "Block Match"
7 | blockstate_match:
8 | name: "Block State Match"
9 | random_block_match:
10 | name: "Random Block Match"
11 | random_blockstate_match:
12 | name: "Random Blockstate Match"
13 | tag_match:
14 | name: "Tag Match"
--------------------------------------------------------------------------------
/ore-control/src/main/resources/lang/en/settings.yml:
--------------------------------------------------------------------------------
1 | settings:
2 | size:
3 | name: "Size"
4 | discard-chance-on-air-exposure:
5 | name: "Discard Chance On Air Exposure"
6 | count:
7 | name: "Count"
8 | height:
9 | name: "Height"
10 | chance:
11 | name: "Chance"
12 | min-inclusive:
13 | name: "Min Inclusive"
14 | max-inclusive:
15 | name: "Max Inclusive"
16 | max-water-depth:
17 | name: "Max Water Depth"
18 | activate:
19 | name: "Activate"
20 | targets:
21 | name: "Targets"
22 | value-settings:
23 | min-inclusive:
24 | name: "Min Inclusive"
25 | max-inclusive:
26 | name: "Max Inclusive"
27 | plateau:
28 | name: "Plateau"
29 | base:
30 | name: "Base"
31 | data:
32 | name: "Data"
33 | weight:
34 | name: "Weight"
35 | target-block-state:
36 | name: "Target Block State"
37 | state:
38 | name: "State"
39 | target:
40 | name: "Target"
41 | entry:
42 | name: "Entry"
43 | block:
44 | name: "Block"
45 | block-state:
46 | name: "Block State"
47 | probability:
48 | name: "Probability"
49 | tag:
50 | name: "Tag"
--------------------------------------------------------------------------------
/ore-control/src/main/resources/lang/en/useful_links.yml:
--------------------------------------------------------------------------------
1 | useful-links:
2 | header: "&7~~~~~~~~~~~~~~~~~~&bUseful Links&7~~~~~~~~~~~~~~~~~~"
3 | prefix: "&bOre Control &7>>&f "
4 | footer: "&7~~~~~~~~~~~~~~~~~~&bUseful Links&7~~~~~~~~~~~~~~~~~~"
5 | hover: "Click Me!"
6 | questions:
7 | GENERATOR_INFO: "What is %%translation:[namespaces.%generator-namespace%.name]% %%translation:[feature-generators.%generator-namespace%.%generator-key%.name]% for a generator?"
8 | PLACEMENT_MODIFIER_INFO: "What is %%translation:[namespaces.%placement-modifier-namespace%.name]% %%translation:[placement-modifiers.%placement-modifier-namespace%.%placement-modifier-key%.name]% for a placement modifier?"
9 | INVENTORY_GUI_SCREENS_EXPLAINED: "What can I set / make in the '%%translation:[%screen-name-key%.name]%' gui screen?"
10 | COMMON_QUESTIONS: "%%translation:[useful-links.common-questions.%common-question-key%]%"
11 | common-questions:
12 | why-are-there-multiple-features-with-the-same-ore: "Why are there multiple features with the same ore?"
--------------------------------------------------------------------------------
/ore-control/src/main/resources/lang/en/value_types.yml:
--------------------------------------------------------------------------------
1 | value-types:
2 | feature:
3 | fixed_integer:
4 | name: "Fixed Integer"
5 | fixed_double_to_integer:
6 | name: "Fixed Double"
7 | uniform_integer:
8 | name: "Uniform"
9 | trapezoid_integer:
10 | name: "Trapezoid"
11 | above_bottom_offset_integer:
12 | name: "Above Bottom Offset"
13 | below_top_offset_integer:
14 | name: "Below Top Offset"
15 | fixed_float:
16 | name: "Fixed Float"
17 | weighted_list_integer:
18 | name: "Weighted"
19 | biased_to_bottom_integer:
20 | name: "Biased To Bottom"
21 | fixed_boolean:
22 | name: "Fixed Boolean"
23 | clamped_integer:
24 | name: "Clamped"
25 | clamped_normal_integer:
26 | name: "Normal Clamped"
27 | fixed_target_list:
28 | name: "Fixed Target List"
--------------------------------------------------------------------------------
/ore-control/src/main/resources/plugin.yml:
--------------------------------------------------------------------------------
1 | name: ${parent.name}
2 | version: ${project.version}
3 | description: ${project.description}
4 | author: ${project.author}
5 | main: de.derfrzocker.ore.control.OreControl
6 | api-version: "1.13"
7 | load: STARTUP
8 | libraries:
9 | - net.objecthunter:exp4j:0.4.8
10 | commands:
11 | ore-control:
12 | permission: "ore.control"
13 | description: "Open the ore control gui"
14 | usage: "Usage: /"
15 |
--------------------------------------------------------------------------------