Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

Идея Плагин на атрибуты

Тема в разделе "Запросы на разработку плагинов", создана пользователем Grides, 4 сен 2014.

  1. Автор темы
    Grides

    Grides Участник Пользователь

    Баллы:
    36
    Имя в Minecraft:
    6paTuwKa
    Здравствуйте! Мне нужен плагин...
    Суть плагина:
    Все вы знаете, что с версии 1.6+ под мечами и инструментами пишет такой атрибут "+Х Damage Attack". Так вот, мне нужно как-то скрыть эту надпись. Я знаю, что она на стороне клиента, но, можно сделать так, чтобы эта надпись пропадала, например, только для нужной вещи а не для всех сразу. Допустим, взяв в руку нужную вещь с надписью и набрав команду /attribute hide. После этого надпись будет скрыта у данного предмета. Вот в принципе и всё...
    P.S.: Плагин нужен под Cauldron 1.7.2
     
  2. Хостинг MineCraft
    <
  3. serega6531

    serega6531 Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    shkurovs
    Как?
     
  4. Carsengan

    Carsengan Активный участник Пользователь

    Баллы:
    88
    Имя в Minecraft:
    Carsengan
    Плагин называется AtributeHider
    Не благодари)
     
  5. Автор темы
    Grides

    Grides Участник Пользователь

    Баллы:
    36
    Имя в Minecraft:
    6paTuwKa
    Кхм... этот плагин !@# НЕ РАБОТАЕТ на Cauldron, только на CraftBukkit
     
  6. undust4able

    undust4able Активный участник Пользователь

    Баллы:
    88
    Имя в Minecraft:
    undust4able
    А баккита на 1.8 больше не будет.
     
  7. Автор темы
    Grides

    Grides Участник Пользователь

    Баллы:
    36
    Имя в Minecraft:
    6paTuwKa
    А зачем мне баккит на 1.8? Вы вообще читали тему? Мне нужен плагин под ядро Cauldron 1.7.2[DOUBLEPOST=1409842428,1409838947][/DOUBLEPOST]Я узнал, что надпись можно затереть через MCP 1.7.2. Надпись находится в ItemStack.class файле, но я немогу найти строку с кодом!
     
  8. makssof

    makssof Старожил Девелопер Пользователь

    Баллы:
    103
    Skype:
    makssofez
    Сори за оффтоп, но всё же...
    С какого, такого перепуга?..
     
  9. serega6531

    serega6531 Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    shkurovs
    Моджанги, авторские права.
     
  10. makssof

    makssof Старожил Девелопер Пользователь

    Баллы:
    103
    Skype:
    makssofez
    Дык вроде бы всё разрешилось там? Или нет?..
     
  11. serega6531

    serega6531 Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    shkurovs
    Разве?
     
  12. Автор темы
    Grides

    Grides Участник Пользователь

    Баллы:
    36
    Имя в Minecraft:
    6paTuwKa
    Что из этого всего стоит затереть, чтобы затереть надпись? Вот готовый код:

    public List getTooltip(EntityPlayer par1EntityPlayer, boolean par2)
    {
    ArrayList var3 = new ArrayList();
    String var4 = this.getDisplayName();

    //if (this.hasDisplayName())
    //{
    // var4 = EnumChatFormatting.ITALIC + var4 + EnumChatFormatting.RESET;
    //}

    int var6;

    if (par2)
    {
    String var5 = "";

    if (var4.length() > 0)
    {
    var4 = var4 + " (";
    var5 = ")";
    }

    var6 = Item.getIdFromItem(this.field_151002_e);

    if (this.getHasSubtypes())
    {
    var4 = var4 + String.format("#%04d/%d%s", new Object[] {Integer.valueOf(var6), Integer.valueOf(this.itemDamage), var5});
    }
    else
    {
    var4 = var4 + String.format("#%04d%s", new Object[] {Integer.valueOf(var6), var5});
    }
    }
    else if (!this.hasDisplayName() && this.field_151002_e == Items.filled_map)
    {
    var4 = var4 + " #" + this.itemDamage;
    }

    var3.add(var4);
    this.field_151002_e.addInformation(this, par1EntityPlayer, var3, par2);

    if (this.hasTagCompound())
    {
    NBTTagList var14 = this.getEnchantmentTagList();

    if (var14 != null)
    {
    for (var6 = 0; var6 < var14.tagCount(); ++var6)
    {
    short var7 = var14.getCompoundTagAt(var6).getShort("id");
    short var8 = var14.getCompoundTagAt(var6).getShort("lvl");

    if (Enchantment.enchantmentsList[var7] != null)
    {
    var3.add(Enchantment.enchantmentsList[var7].getTranslatedName(var8));
    }
    }
    }

    if (this.stackTagCompound.func_150297_b("display", 10))
    {
    NBTTagCompound var17 = this.stackTagCompound.getCompoundTag("display");

    if (var17.func_150297_b("color", 3))
    {
    if (par2)
    {
    var3.add("Color: #" + Integer.toHexString(var17.getInteger("color")).toUpperCase());
    }
    else
    {
    var3.add(EnumChatFormatting.ITALIC + StatCollector.translateToLocal("item.dyed"));
    }
    }

    if (var17.func_150299_b("Lore") == 9)
    {
    NBTTagList var15 = var17.getTagList("Lore", 8);

    if (var15.tagCount() > 0)
    {
    for (int var19 = 0; var19 < var15.tagCount(); ++var19)
    {
    var3.add(EnumChatFormatting.DARK_PURPLE + "" + EnumChatFormatting.ITALIC + var15.getStringTagAt(var19));
    }
    }
    }
    }
    }

    Multimap var13 = this.getAttributeModifiers();

    if (!var13.isEmpty())
    {
    var3.add("");
    Iterator var16 = var13.entries().iterator();

    while (var16.hasNext())
    {
    Entry var18 = (Entry)var16.next();
    AttributeModifier var20 = (AttributeModifier)var18.getValue();
    double var9 = var20.getAmount();
    double var11;

    if (var20.getOperation() != 1 && var20.getOperation() != 2)
    {
    var11 = var20.getAmount();
    }
    else
    {
    var11 = var20.getAmount() * 100.0D;
    }

    if (var9 > 0.0D)
    {
    var3.add(EnumChatFormatting.BLUE + StatCollector.translateToLocalFormatted("attribute.modifier.plus." + var20.getOperation(), new Object[] {field_111284_a.format(var11), StatCollector.translateToLocal("attribute.name." + (String)var18.getKey())}));
    }
    else if (var9 < 0.0D)
    {
    var11 *= -1.0D;
    var3.add(EnumChatFormatting.RED + StatCollector.translateToLocalFormatted("attribute.modifier.take." + var20.getOperation(), new Object[] {field_111284_a.format(var11), StatCollector.translateToLocal("attribute.name." + (String)var18.getKey())}));
    }
    }
    }

    if (this.hasTagCompound() && this.getTagCompound().getBoolean("Unbreakable"))
    {
    var3.add(EnumChatFormatting.BLUE + StatCollector.translateToLocal("item.unbreakable"));
    }

    if (par2 && this.isItemDamaged())
    {
    var3.add("Durability: " + (this.getMaxDamage() - this.getItemDamageForDisplay()) + " / " + this.getMaxDamage());
    }

    return var3;
    }

    public boolean hasEffect()
    {
    return this.getItem().hasEffect(this);
    }

    public EnumRarity getRarity()
    {
    return this.getItem().getRarity(this);
    }

    /**
    * True if it is a tool and has no enchantments to begin with
    */
    public boolean isItemEnchantable()
    {
    return !this.getItem().isItemTool(this) ? false : !this.isItemEnchanted();
    }

    /**
    * Adds an enchantment with a desired level on the ItemStack.
    */
    public void addEnchantment(Enchantment par1Enchantment, int par2)
    {
    if (this.stackTagCompound == null)
    {
    this.setTagCompound(new NBTTagCompound());
    }

    if
    18:23:17

    (!this.stackTagCompound.func_150297_b("ench", 9))
    {
    this.stackTagCompound.setTag("ench", new NBTTagList());
    }

    NBTTagList var3 = this.stackTagCompound.getTagList("ench", 10);
    NBTTagCompound var4 = new NBTTagCompound();
    var4.setShort("id", (short)par1Enchantment.effectId);
    var4.setShort("lvl", (short)((byte)par2));
    var3.appendTag(var4);
    }[DOUBLEPOST=1409845766,1409845693][/DOUBLEPOST]Может это?

    Multimap var13 = this.getAttributeModifiers();

    if (!var13.isEmpty())
    {
    var3.add("");
    Iterator var16 = var13.entries().iterator();

    while (var16.hasNext())
    {
    Entry var18 = (Entry)var16.next();
    AttributeModifier var20 = (AttributeModifier)var18.getValue();
    double var9 = var20.getAmount();
    double var11;

    if (var20.getOperation() != 1 && var20.getOperation() != 2)
    {
    var11 = var20.getAmount();
    }
    else
    {
    var11 = var20.getAmount() * 100.0D;
    }

    if (var9 > 0.0D)
    {
    var3.add(EnumChatFormatting.BLUE + StatCollector.translateToLocalFormatted("attribute.modifier.plus." + var20.getOperation(), new Object[] {field_111284_a.format(var11), StatCollector.translateToLocal("attribute.name." + (String)var18.getKey())}));
    }
    else if (var9 < 0.0D)
    {
    var11 *= -1.0D;
    var3.add(EnumChatFormatting.RED + StatCollector.translateToLocalFormatted("attribute.modifier.take." + var20.getOperation(), new Object[] {field_111284_a.format(var11), StatCollector.translateToLocal("attribute.name." + (String)var18.getKey())}));
    }
    }
    }
     
  13. pizzlywizzly

    pizzlywizzly Старожил Пользователь

    Баллы:
    123
    Да, всё будет хорошо. Моджанг ещё пару лет назад купил Bukkit и они сами будут заниматься разработкой CraftBukkit'а. А новость была криком души EvilSeph'а. Или попыткой насрать моджангам, не знаю.
    Также сейчас у них лицензиопроблемы из-за того, что парень, занимавшийся разработкой CraftBukkit'а заявил, что его код низя использовать.
     
  14. undust4able

    undust4able Активный участник Пользователь

    Баллы:
    88
    Имя в Minecraft:
    undust4able
    Ну да, тот Wolfe. Он натравил агента DMCA и заставил баккит вайпнуть все их repo, на dl.bukkit.org все пусто.
     
  15. pizzlywizzly

    pizzlywizzly Старожил Пользователь

    Баллы:
    123
    Но на гитхабе всё лежит, лол.
    Также мд5 сказал, что хyйца даст пососать с такими предъявами. А все нормальные люди давно сидят на нём. Не вижу смысла паниковать.
     

Поделиться этой страницей