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

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

Discussion in 'Запросы на разработку плагинов' started by Grides, Sep 4, 2014.

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

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

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

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

    Trophy Points:
    173
    Skype:
    shkurovs
    Как?
     
  4. Carsengan

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Trophy Points:
    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 Старожил Пользователь

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

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

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

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

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

Share This Page