Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём некорректно. Вам необходимо обновить браузер или попробовать использовать другой.
Просто оставлю это здесь...
public void addEnchantment(Enchantment ench, int level) {
if (this.stackTagCompound == null) {
this.setTagCompound(new NBTTagCompound());
}
if (!this.stackTagCompound.hasKey("ench", 9)) {...
Сохранять int в NBT игрока: EntityPlayer#getEntityData().setInteger("key", value). Но слишком часто делать это не следует.
При выходе из игры тоже требуется сохранение:
@SubscribeEvent
public void onPlayerLogOut(PlayerLoggedOutEvent event) {...
Можно ещё через DataManager (автоматическая синхронизация) или напрямую добавлять теги в NBT получая данные игрока с помощью EntityPlayer#getEntityData()(быстро и просто). В любом случае нужно обеспечить сохранение и загрузку данных между сессиями.
Этот клиентский мод дает возможность полного управления биндами, стандартными и из модов, через удобный json конфиг и некоторые другие возможности.
Возможности
Изменение названия
Изменение категории
Изменение клавиши по умолчанию (возможно создание комбинации с клавишами ALT, SHIFT и CONTROL)...
Ну с java тут никаких проблем, в данном случае требуется для проекта задать совместимость с версией java 1.8. Такая ошибка может выскочить к примеру при компиляции если в коде содержатся элементы не доступные в прежних версиях (стримы, лямбда-выражения и пр.).
if (worldIn.isAirBlock(pos))
{
worldIn.setBlockState(pos, Blocksmy.testBlock.getDefaultState());
}
@vixtor, в этом моменте при установке блока нужно задавать блокстейт с рандомным Property (свойством), а у тебя всегда задан по умолчанию. Можешь...
Это всего лишь имя аргумента, оно может быть любым и тебе важно понять какой объект оно представляет. В данном случае это интерфейс IInventory, я назвал переменную inventory, а ты inventoryCustom, но разницы нет никакой.
В putStack() добавлямый стак может быть null, добавь проверку...
Ок. Пример с добавлением ночного видения при надевании кольчужного шлема.
Это слот:
public class CustomSlot extends Slot {
private final EntityPlayer player;
public CustomSlot(EntityPlayer player, IInventory inventory, int slotIndex, int xPos, int yPos) {
super(inventory...
Чувак, ты замахнулся на сложную тему для твоего текущего уровня, но я могу подсказать неплохой вариант.
Я предлагаю все проверки и действия делать прямо в твоем Slot в методах putStack() и onTake() (в 1.7.10 не помню как называется), раз он у тебя все равно свой. Тебе понадобится в конструктор...
Спасибо всем за высокие оценки моих туториалов! Впереди еще много интересных тем и я обещаю вам, что гайды будут не менее интересными и информативными.
Если вешаешь эффект самостоятельно, то что бы не спавнились частицы достаточно в полной версии конструктора PotionEffect последним аргументом поставить false.
А так спаун частиц происходит в методе EntityLivingBase#updatePotionEffects() в самом конце - можно хуком прервать это для всех эффектов.
Тем не менее при загрузке плагина в стороннём клиенте всё обфусцировано как показывает лог. Может деобфускация происходит позже загрузки кормодов?
Учту, спасибо.