UltraHardcore

UltraHardcore 1.1

Нет прав для скачивания

7isenko

Разработчик
Пользователь
Сообщения
35
Решения
1
Веб-сайт
github.com
7isenko добавил(а) новый ресурс:

- Новая сложность Майнкрафта

Я сделал плагин, который добавляет новую сложность в Майнкрафт.
По своей сути, он является неким челенджем.

Список того, что он изменяет:
  • Теперь все снаряды(стрелы, фаерболы) противников самонаводятся в игроков.
  • Стрелы имеют случайные эффекты зелий.
  • При получении урона вы роняете предметы из инвентаря.
  • Разливание ведра не ставит бесконечный источник жидкости.
  • Пауки всегда спаунятся со скелетом-наездником. А ещё они стали ядовитыми, как пещерные.
  • Когда вы ломаете...

 
Круто, а будут еще какие нибудь усложнения? И можно их предлагать?
 
7isenko обновил(а) ресурс новой записью:



С ними был связан один небольшой баг, который теперь больше не будет появляться.

 
Почему бы все настройки и сообщения не вынести в конфиг?

По поводу кода некоторые замечания:
1) Зачем делать отдельный класс, где 1 метод, и то костыльный?
Для Player есть метод sendTitle:

2) Зачем всё держать в static'ах, даже если ты это не используешь в других классах?

3) В классе ArrowPotionAffecter некоторые методы можно объединить в одни:
Вам необходимо зарегистрироваться для просмотра изображений-вложений


4) В классе MiningFatigue шедуляр можно запустить и асинхронно, ничего опасного для майнкрафта он не делает.

5) Не храни Player в мапах и подобном как ключ. Используй для этого их UUID или ники. (Сам кстати не понимаю, почему так надо, но мне советовали когда-то)

6) MobTargetingRunnable: if (player.getGameMode() != GameMode.SURVIVAL)
Получается, если у админа в планах сделать, чтобы игроки были в режиме приключения и могли ломать блоки только определёнными инструментами, то не будет работать этот метод.
 
Почему бы все настройки и сообщения не вынести в конфиг?

По поводу кода некоторые замечания:
1) Зачем делать отдельный класс, где 1 метод, и то костыльный?
Для Player есть метод sendTitle:

2) Зачем всё держать в static'ах, даже если ты это не используешь в других классах?

3) В классе ArrowPotionAffecter некоторые методы можно объединить в одни:
Вам необходимо зарегистрироваться для просмотра изображений-вложений


4) В классе MiningFatigue шедуляр можно запустить и асинхронно, ничего опасного для майнкрафта он не делает.

5) Не храни Player в мапах и подобном как ключ. Используй для этого их UUID или ники. (Сам кстати не понимаю, почему так надо, но мне советовали когда-то)

6) MobTargetingRunnable: if (player.getGameMode() != GameMode.SURVIVAL)
Получается, если у админа в планах сделать, чтобы игроки были в режиме приключения и могли ломать блоки только определёнными инструментами, то не будет работать этот метод.
1) Я сделал этот костыль для цветных тайтлов, т.к., если не ошибаюсь, ChatColor не работает в #sendTitle().
5) Player не хранят в мапах из-за того, что это может привести к утечке памяти, но в моем случае мапа довольно быстро самоочищается, так что об этом не стоит беспокоиться.
6) Это плагин для выживания с друзьями или в соло, о чём речь, хаха.
С 2 и 3 согласен, это стало последствием моей мании к повторному использованию кода, т.к. я хотел их потом еще для чего-то использовать. 4 -справедливо, по фактам.

Спасибо большое за ревью, но всё же лучше такое писать в Issues в гх.
 
ChatColor не работает в #sendTitle().

;)
Java:
public String format(String message) {
    return ChatColor.translateAlternateColorCodes('&', message);
}

@Override
public void onEnable() {
    System.out.println(format("&aЛаймовый цвет &cКрасный &9Синий"));
}

Ещё можно использовать знак параграфа § (alt + 21).
 
7isenko обновил(а) ресурс новой записью:



Изменил немного систему тайтлов и убрал ограничение на версию

 
Не храни Player в мапах и подобном как ключ. Используй для этого их UUID или ники. (Сам кстати не понимаю, почему так надо, но мне советовали когда-то)
Потому что как игрок выходит с сервера - ссылка на него становиться null. У null хешкод всегда 0, короче сброситься значение.
 
Потому что как игрок выходит с сервера - ссылка на него становиться null. У null хешкод всегда 0, короче сброситься значение.
Я решил проверить. Ссылка не становится null, иначе зачем же тогда метод #isOnline?
Вам необходимо зарегистрироваться для просмотра изображений-вложений
 
Последнее редактирование:
Странно. Однако, иногда делают проверки != null && isOnline, но то что я могу сказать точно - значение в мапе сбрасывается
 
Не то, чтобы сбрасывается, но, похоже, сервер создаёт новый объект вместо использования старого после каждого перезахода.
А может и нет, надо поковыряться и нормально исследовать это.
 
Назад
Сверху Снизу