Прокси

Версия Minecraft
1.16.5
API
Forge
250
12
24
Что можно использовать вместо прокси для 1.16.5, для разделения клиентского и серверного кода?
А то костылить 2 варианта мода для сервера и клиента - ну такое себе
 
219
12
119
 
36
3
9
Есть класс DistExecutor. Пример использования:
Java:
//Вычисляет значение на конкретной стороне
String dist = DistExecutor.safeRunForDist(() -> () -> "Some client calculations", () -> () -> "Some server calculations");

//Возвратит либо результат вычисления, если сторона - клиент, иначе вернёт null
String maybeString = DistExecutor.safeCallWhenOn(Dist.CLIENT, () -> () -> "Only client calculations");


DistExecutor.safeRunWhenOn(Dist.DEDICATED_SERVER, () -> () -> {
    //Код, который выполянется на сервере и ничего не возвращает.
});
 
36
3
9
Чем прокси плох? Хочется в if код оборачивать, вместо использования достоинств ООП?
Как я поняла, он имеет в вижу встроенный механизм прокси для разных сторон в фордже, который в 1.13+ удалили.
 
1,074
72
372
Почти тоже самое что обёртка в if. Не очень красиво.
Сделать прокси руками проще простого:
Java:
// Не знаком как в последних версиях определяется Side. Чисто пример.
CommonProxy proxy = side == SERVER ? new CommonProxy() : new ClientProxy();
 
36
3
9
Не красиво! Обёртка в if! Тернартик лучше!
------------------------------------------------------------------
А если серьёзно, то лучше использовать события. Их достаточно в 99% случаев. Но даже, если делать свой прокси, логичнее было бы не изобретать велосипед, для проверки стороны, а так же использовать встроенное решение.
 
Сверху