-
Notifications
You must be signed in to change notification settings - Fork 1
Best Practice (лучше подходы)
Помните, что ваша система веса - не единственная доступная на сервере. Могут присутствовать другие. В том числе - наследники вашей. Старайтесь не использовать приватные поля и методы (лучше используйте protected
) и конечно же не помечайте вашу систему веса как final
класс. Именно через классы-наследники другие моддеры смогу расширять вашу систему веса.
Скорее всего вместе с вашей системой веса вы предоставляете и собственную обработку перегруза: замедление, неподвижность, периодический урон и пр. В этом случае эти алгоритмы должны работать и для наследников вашей системы веса. В этом случае проверка на активную систему веса должна выглядеть так:
@SubscribeEvent
public void onOverload(WeightChangedEvent event) {
// Плохой способ (не будет работать для наследников YourWeightProvider)
// WeightRegistry.getActiveWeightProvider() == yourWeightProviderInstance
// Хороший способ
if (WeightRegistry.getActiveWeightProvider() instanceof YourWeightProvider) {
// your code here
}
}
При изменении системы веса на сервере, вы самостоятельно должны изменить ее и на клиентах. Делать это нужно как минимум в двух случаях: при подключении игрока и при срабатывании WeightProviderChangedEvent
.
Пример уведомления клиентов о