Рюкзак на 1.14+

Рюкзак на 1.14+

1,560
86
204
MaximPixel добавил(а) новый ресурс:

Рюкзак на 1.14+ - Код предмета, который имеет свой инвентарь

Хочу поделиться своим вариантом создания предмета с инвентарём.
Этот вариант создания таких предметов я не видел ещё нигде, по крайней мере, не нашёл на просторах GitHub. Этот вариант использует напрямую IItemHandler, вместо создания нового экземляра IInventory.

ВНИМАНИЕ!
Не спешить добавлять этот код в свой проект, так как в этом коде нету необходимых проверок для исправления некоторых багов и недоработок.

[CODE...

Узнать больше об этом ресурсе...
 

Icosider

Kotliner
Администратор
3,600
99
663
Реализации есть, но мало. Сериализацию и десеарилизация можно упростить, вроде как InventoryHelper'om если такой остался. Помимо этого у тебя нет защиты от пакет-хака и нет защиты от дюпов.
 
1,560
86
204
вроде как InventoryHelper'om если такой остался
ItemStackHelper'ом. Те кто в курсе, те поправят. Это не самое главное.
нет защиты от пакет-хака и нет защиты от дюпов
Бродил по исходникам Useful Backpacks, Backpacked и Inmis, и никаких защит от дюпов я не увидел.
Про пакет-хак, вроде это невозможно, так как инвентарь создаётся на сервере. Или я что-то не так понял?
 

Eifel

Модератор
1,623
78
608
1611237053820.png
Обычно вызывает боль и страдания, особенно когда такое стоит в чем-то, что может хранить в себе предметы...
 

Eifel

Модератор
1,623
78
608
Хотелось бы увидеть как это ломает что-то
Самое простое, что приходит в голову: выкидывание/выкидывание с заменой(в том числе и через сторонний софт)/перестановка/обычная подмена/и прочее. Не знаю как работает в 1.14, но скорее всего так же как и в прежних версиях, инвентарь не закрывается и делай что душа пожелает
 
Последнее редактирование:
1,560
86
204
Я же писал что этого нету в коде) Это просто "макет" для создания подобных предметов методом, который я сам нашёл.
 

Eifel

Модератор
1,623
78
608
Ну мы какраз и обсуждаем кейсы для тех, кто захочет юзать. И к тому же ты сам захотел посмотреть)
 
7,099
324
1,509
А какой именно? Что за магический пакет такой и почему с серверной стороны он не валидируется по дефолту?
~~~
Посмотрел ресурс...
Провайдер капабилити и хранимая структура данных является одной и той же сущностью. Как по мне, это нарушение принципа единой ответственности.
Почему вместо использования стандартных средств сериализации капабилити используются свои велосипеды-костыли? Чем они лучше, чем IStorage и ICapabilitySerializable?
 

Icosider

Kotliner
Администратор
3,600
99
663
Что за магический пакет такой и почему с серверной стороны он не валидируется по дефолту?
Не скажу, свой хлеб разбазаривать не собираюсь) На счёт "он не валидируется по дефолту", вопросы к mojang. Валидация конечно есть, но не там где надо(подсказка: на клиенте). Ручками править один метод нужно
 
Сверху