Не работает серверный мод

Версия Minecraft
1.12.2
API
Forge
183
8
16
Вот я написал мод, который по событию спавнит моба делал так:
EventHandler.java:
@SubscribeEvent
public static void onItemCrafted(PlayerEvent.ItemCraftedEvent e) {
    if (Math.random() < ConfigHandler.chance) {
        if (!e.player.world.isRemote) {
            EntityHusk husk = new EntityHusk(e.player.world);
            husk.posX = e.player.posX;
            husk.posY = e.player.posY;
            husk.posZ = e.player.posZ;
            e.player.world.spawnEntity(husk);
        }
    }
}
и решил поиграть в него с друзьями. ConfigHandler.chance допустим был равен 0.05. Почему-то у них всё работало, а у меня сколько бы я не крафтил не спавнится моб. Но запуская его не на сервере, а не клиенте всё работает
 
Последнее редактирование:
7,099
324
1,510
Используй рандом из мира
e.player.world.rand.nextDouble()
 
7,099
324
1,510
Вообще никакой разницы.
Получения очередного случайного значения ведь изменяет состояние псевдослучайного генератора чисел.
Если форкнуть вселенную,
в первом форке запускать
Java:
val first = Math.random()
val second = e.player.world.rand.nextDouble()
во втором форке запускать
Java:
val first =  e.player.world.rand.nextDouble()
val second = e.player.world.rand.nextDouble()
Значение переменной second из первого форка будет отличаться от значения second из второго форка.
Но только если у Math.random и отдельного экземпляра Random из мира не одно и то же состояние.
Оно у них всегда одно?
 
7,099
324
1,510
А потом кто-нить с киркой на удачу 3 не досчитается своих алмазов)
 
Сверху