Interface Random

All Known Subinterfaces:
BaseRandom
All Known Implementing Classes:
CheckedRandom, ChunkRandom, LocalRandom, ThreadSafeRandom, Xoroshiro128PlusPlusRandom

public interface Random
A reimplementation of Random.

There are four built-in implementations, three based on the classic Java algorithm and one using Xoroshiro128++ algorithm.

See Also:
Implementation Note:
Note that due to MC-239059, this is not an exact reimplementation of the Java random number generator algorithm.
Mappings:
Namespace Name
official apo
intermediary net/minecraft/class_5819
named net/minecraft/util/math/random/Random
  • Field Details

    • field_38930

      @Deprecated static final double field_38930
      Deprecated.
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official a Lapo;a:D
      intermediary field_38930 Lnet/minecraft/class_5819;field_38930:D
      named field_38930 Lnet/minecraft/util/math/random/Random;field_38930:D
  • Method Details

    • create

      static Random create()
      Returns a random. The returned random actively detects concurrent usage and fails on detection.
      Returns:
      a random
      Mappings:
      Namespace Name Mixin selector
      official a Lapo;a()Lapo;
      intermediary method_43047 Lnet/minecraft/class_5819;method_43047()Lnet/minecraft/class_5819;
      named create Lnet/minecraft/util/math/random/Random;create()Lnet/minecraft/util/math/random/Random;
    • createThreadSafe

      @Deprecated static Random createThreadSafe()
      Deprecated.
      This one is hard to ensure deterministic behavior compared to the non-thread-safe one.
      Returns a random, suitable for multithreaded scenarios.
      Returns:
      a random, suitable for multithreaded scenarios
      Mappings:
      Namespace Name Mixin selector
      official b Lapo;b()Lapo;
      intermediary method_43050 Lnet/minecraft/class_5819;method_43050()Lnet/minecraft/class_5819;
      named createThreadSafe Lnet/minecraft/util/math/random/Random;createThreadSafe()Lnet/minecraft/util/math/random/Random;
    • create

      static Random create(long seed)
      Returns a random with the given seed. The returned random actively detects concurrent usage and fails on detection.
      Returns:
      a random with the given seed
      Mappings:
      Namespace Name Mixin selector
      official a Lapo;a(J)Lapo;
      intermediary method_43049 Lnet/minecraft/class_5819;method_43049(J)Lnet/minecraft/class_5819;
      named create Lnet/minecraft/util/math/random/Random;create(J)Lnet/minecraft/util/math/random/Random;
    • createLocal

      static Random createLocal()
      Returns a random split from the thread local random. Users must ensure this random is not used concurrently.
      Returns:
      a random split from the thread local random
      Mappings:
      Namespace Name Mixin selector
      official c Lapo;c()Lapo;
      intermediary method_43053 Lnet/minecraft/class_5819;method_43053()Lnet/minecraft/class_5819;
      named createLocal Lnet/minecraft/util/math/random/Random;createLocal()Lnet/minecraft/util/math/random/Random;
    • split

      Random split()
      Mappings:
      Namespace Name Mixin selector
      official d Lapo;d()Lapo;
      intermediary method_38420 Lnet/minecraft/class_5819;method_38420()Lnet/minecraft/class_5819;
      named split Lnet/minecraft/util/math/random/Random;split()Lnet/minecraft/util/math/random/Random;
    • nextSplitter

      RandomSplitter nextSplitter()
      Mappings:
      Namespace Name Mixin selector
      official e Lapo;e()Ldhm;
      intermediary method_38421 Lnet/minecraft/class_5819;method_38421()Lnet/minecraft/class_6574;
      named nextSplitter Lnet/minecraft/util/math/random/Random;nextSplitter()Lnet/minecraft/util/math/random/RandomSplitter;
    • setSeed

      void setSeed(long seed)
      Mappings:
      Namespace Name Mixin selector
      official b Lapo;b(J)V
      intermediary method_43052 Lnet/minecraft/class_5819;method_43052(J)V
      named setSeed Lnet/minecraft/util/math/random/Random;setSeed(J)V
    • nextInt

      int nextInt()
      Mappings:
      Namespace Name Mixin selector
      official f Lapo;f()I
      intermediary method_43054 Lnet/minecraft/class_5819;method_43054()I
      named nextInt Lnet/minecraft/util/math/random/Random;nextInt()I
    • nextInt

      int nextInt(int bound)
      Mappings:
      Namespace Name Mixin selector
      official a Lapo;a(I)I
      intermediary method_43048 Lnet/minecraft/class_5819;method_43048(I)I
      named nextInt Lnet/minecraft/util/math/random/Random;nextInt(I)I
    • nextBetween

      default int nextBetween(int min, int max)
      Mappings:
      Namespace Name Mixin selector
      official a Lapo;a(II)I
      intermediary method_39332 Lnet/minecraft/class_5819;method_39332(II)I
      named nextBetween Lnet/minecraft/util/math/random/Random;nextBetween(II)I
    • nextLong

      long nextLong()
      Mappings:
      Namespace Name Mixin selector
      official g Lapo;g()J
      intermediary method_43055 Lnet/minecraft/class_5819;method_43055()J
      named nextLong Lnet/minecraft/util/math/random/Random;nextLong()J
    • nextBoolean

      boolean nextBoolean()
      Mappings:
      Namespace Name Mixin selector
      official h Lapo;h()Z
      intermediary method_43056 Lnet/minecraft/class_5819;method_43056()Z
      named nextBoolean Lnet/minecraft/util/math/random/Random;nextBoolean()Z
    • nextFloat

      float nextFloat()
      Mappings:
      Namespace Name Mixin selector
      official i Lapo;i()F
      intermediary method_43057 Lnet/minecraft/class_5819;method_43057()F
      named nextFloat Lnet/minecraft/util/math/random/Random;nextFloat()F
    • nextDouble

      double nextDouble()
      Mappings:
      Namespace Name Mixin selector
      official j Lapo;j()D
      intermediary method_43058 Lnet/minecraft/class_5819;method_43058()D
      named nextDouble Lnet/minecraft/util/math/random/Random;nextDouble()D
    • nextGaussian

      double nextGaussian()
      Mappings:
      Namespace Name Mixin selector
      official k Lapo;k()D
      intermediary method_43059 Lnet/minecraft/class_5819;method_43059()D
      named nextGaussian Lnet/minecraft/util/math/random/Random;nextGaussian()D
    • nextTriangular

      default double nextTriangular(double mode, double deviation)
      Returns a random double between mode - deviation and mode + deviation (both inclusive) with mode mode.

      Because the return value follows a symmetric triangular distribution, the distribution's mean and median are equal to mode.

      Returns:
      a random double between mode - deviation and mode + deviation (both inclusive) with mode mode
      Mappings:
      Namespace Name Mixin selector
      official a Lapo;a(DD)D
      intermediary method_43385 Lnet/minecraft/class_5819;method_43385(DD)D
      named nextTriangular Lnet/minecraft/util/math/random/Random;nextTriangular(DD)D
    • skip

      default void skip(int count)
      Mappings:
      Namespace Name Mixin selector
      official b Lapo;b(I)V
      intermediary method_33650 Lnet/minecraft/class_5819;method_33650(I)V
      named skip Lnet/minecraft/util/math/random/Random;skip(I)V
    • nextBetweenExclusive

      default int nextBetweenExclusive(int min, int max)
      Mappings:
      Namespace Name Mixin selector
      official b Lapo;b(II)I
      intermediary method_43051 Lnet/minecraft/class_5819;method_43051(II)I
      named nextBetweenExclusive Lnet/minecraft/util/math/random/Random;nextBetweenExclusive(II)I