Помогите Сделать предмет отличным от остальных

Статус
Закрыто для дальнейших ответов.

Energy warrior

Активный участник
Пользователь
Баллы
76
Я хочу сделать, чтобы предмет был отличным от остальных. Я создал класс со всеми вещами предмета и, когда я провожу манипуляции с предметом который уже был использован он всё ровно поддаётся манипуляциям. Помогите мне это исправить.
 
Ну вот в классе и придумай что то.
Да не могу. Я не знаю что туда запихнуть чтобы предметы отличить от других. Я бы уже всё что угодно туда бы напихал. Но хочу чтобы подделать нельзя было. Я бы хотел чтобы этот атрибут был легко доставаемым. Чтобы я мог проверить есть ли на нём этот атрибут я бы тогда создал объект этого предмета.
 
Да не могу. Я не знаю что туда запихнуть чтобы предметы отличить от других. Я бы уже всё что угодно туда бы напихал. Но хочу чтобы подделать нельзя было. Я бы хотел чтобы этот атрибут был легко доставаемым. Чтобы я мог проверить есть ли на нём этот атрибут я бы тогда создал объект этого предмета.
Гетеры сетеры не не слышал?
 
Какой напишешь тот и будет. Странный ты.
Я вот думаю. Может определённому предмету у меня присвоить UUID и проверять есть ли у предметов такой параметр и если он будет буду создавать объект нужного класса? Но вот думаю как это сделать.
 
Я вот думаю. Может определённому предмету у меня присвоить UUID и проверять есть ли у предметов такой параметр и если он будет буду создавать объект нужного класса? Но вот думаю как это сделать.
Чет дичь несешь.
 
Вот же есть у стака 2 метода

Код:
  public void load(NBTTagCompound nbttagcompound)
  {
    this.item = Item.b(nbttagcompound.getString("id"));
    this.count = nbttagcompound.getByte("Count");
  
    setData(nbttagcompound.getShort("Damage"));
    if (nbttagcompound.hasKeyOfType("tag", 10))
    {
      this.tag = ((NBTTagCompound)nbttagcompound.getCompound("tag").clone());
      if (this.item != null) {
        this.item.a(this.tag);
      }
    }
  }
Код:
  public NBTTagCompound save(NBTTagCompound nbttagcompound)
  {
    MinecraftKey minecraftkey = (MinecraftKey)Item.REGISTRY.b(this.item);
 
    nbttagcompound.setString("id", minecraftkey == null ? "minecraft:air" : minecraftkey.toString());
    nbttagcompound.setByte("Count", (byte)this.count);
    nbttagcompound.setShort("Damage", (short)this.damage);
    if (this.tag != null) {
      nbttagcompound.set("tag", this.tag.clone());
    }
    return nbttagcompound;
Добавляешь кастом и гетер сетер для него. Потом заврапить в ведроапи, если нужно.
 
Чет дичь несешь.
Вот же есть у стака 2 метода

Код:
  public void load(NBTTagCompound nbttagcompound)
  {
    this.item = Item.b(nbttagcompound.getString("id"));
    this.count = nbttagcompound.getByte("Count");
 
    setData(nbttagcompound.getShort("Damage"));
    if (nbttagcompound.hasKeyOfType("tag", 10))
    {
      this.tag = ((NBTTagCompound)nbttagcompound.getCompound("tag").clone());
      if (this.item != null) {
        this.item.a(this.tag);
      }
    }
  }
Код:
  public NBTTagCompound save(NBTTagCompound nbttagcompound)
  {
    MinecraftKey minecraftkey = (MinecraftKey)Item.REGISTRY.b(this.item);
 
    nbttagcompound.setString("id", minecraftkey == null ? "minecraft:air" : minecraftkey.toString());
    nbttagcompound.setByte("Count", (byte)this.count);
    nbttagcompound.setShort("Damage", (short)this.damage);
    if (this.tag != null) {
      nbttagcompound.set("tag", this.tag.clone());
    }
    return nbttagcompound;
Добавляешь кастом и гетер сетер для него. Потом заврапить в ведроапи, если нужно.

Чего ты ждёшь от говнокодера. И тот вариант был проще и лучше. Я с NBT не очень знаком. И пока в Java не разберусь буду лорами кастылить. Иначе я просто запутаюсь во всём этом.
 
Можно в лоре записывать нужную инфу. Есть метод чтобы сделать невидимую строку

https://github.com/RypoFalem/ArmorS...thub/rypofalem/armorstandeditor/Util.java#L29
Ещё раз спасибо огромное, всё робит, и ещё есть ли такой ивент, который отлавливает обновление инвентаря или когда игрок получает предмет, не поднимает а получает.
 
Чего ты ждёшь от говнокодера. И тот вариант был проще и лучше. Я с NBT не очень знаком. И пока в Java не разберусь буду лорами кастылить. Иначе я просто запутаюсь во всём этом.
Есть еще один варик. Тоже без модинга.
https://github.com/alexandrage/Example/blob/master/src/Example/ench/FaceEnchantment.java
FaceEnchantment ench = new FaceEnchantment(120);
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх