Class GameRuleBuilder<T>

java.lang.Object
net.fabricmc.fabric.api.gamerule.v1.GameRuleBuilder<T>
Direct Known Subclasses:
GameRuleBuilder.BooleanRuleBuilder, GameRuleBuilder.EnumRuleBuilder, GameRuleBuilder.NumberRuleBuilder

@NonExtendable public class GameRuleBuilder<T> extends Object
A utility class containing classes and methods for building GameRules. A game rule is a persisted, per server data value which may control gameplay aspects.

To register a game rule, you can use buildAndRegister(Identifier). For example, to register a game rule that is an integer where the default value is 1 and the acceptable values are between 0 and 10, one would use the following:

public static final GameRule<Integer> EXAMPLE_INT_RULE = GameRuleBuilder.forInteger(1).range(0, 10).buildAndRegister(Identifier.fromNamespaceAndPath("modid", "custom_int_gamerule"));
  • Field Details

    • defaultValue

      protected final T defaultValue
    • category

      protected net.minecraft.world.level.gamerules.GameRuleCategory category
    • type

      protected net.minecraft.world.level.gamerules.GameRuleType type
    • fabricType

      protected @Nullable net.fabricmc.fabric.impl.gamerule.rpc.FabricGameRuleType fabricType
    • argumentType

      protected @Nullable com.mojang.brigadier.arguments.ArgumentType<T> argumentType
    • acceptor

      protected net.minecraft.world.level.gamerules.GameRules.VisitorCaller<T> acceptor
    • codec

      protected com.mojang.serialization.Codec<T> codec
    • commandResultSupplier

      protected ToIntFunction<T> commandResultSupplier
    • requiredFeatures

      protected net.minecraft.world.flag.FeatureFlagSet requiredFeatures
  • Constructor Details

    • GameRuleBuilder

      protected GameRuleBuilder(T defaultValue)
  • Method Details

    • forBoolean

      public static GameRuleBuilder.BooleanRuleBuilder forBoolean(boolean defaultValue)
    • forInteger

      public static GameRuleBuilder.IntegerRuleBuilder forInteger(int defaultValue)
    • forDouble

      public static GameRuleBuilder.DoubleRuleBuilder forDouble(double defaultValue)
    • forEnum

      public static <E extends Enum<E>> GameRuleBuilder.EnumRuleBuilder<E> forEnum(E defaultValue)
    • category

      public GameRuleBuilder<T> category(net.minecraft.world.level.gamerules.GameRuleCategory category)
    • codec

      public GameRuleBuilder<T> codec(com.mojang.serialization.Codec<T> codec)
    • argumentType

      public GameRuleBuilder<T> argumentType(com.mojang.brigadier.arguments.ArgumentType<T> argumentType)
      Specifies the ArgumentType for the builder. Please note that this is specified by default and is usually not necessary.
      Parameters:
      argumentType - the ArgumentType
      Returns:
      the builder, for chaining
    • commandResultSupplier

      public GameRuleBuilder<T> commandResultSupplier(ToIntFunction<T> commandResultSupplier)
    • requiredFeatures

      public GameRuleBuilder<T> requiredFeatures(net.minecraft.world.flag.FeatureFlagSet requiredFeatures)
    • build

      public net.minecraft.world.level.gamerules.GameRule<T> build()
    • buildAndRegister

      public net.minecraft.world.level.gamerules.GameRule<T> buildAndRegister(net.minecraft.resources.Identifier id)
      Builds and registers a GameRule.
      Parameters:
      id - the id
      Returns:
      the built GameRule