Помогите Не работает кастомный дроп с блоков

HaloSpartan

Активный участник
Пользователь
Баллы
66
public ItemStack cry () {
ItemStack item = new ItemStack(Material.SEEDS);
ItemMeta meta = item.getItemMeta();
meta.setDisplayName(ChatColor.ITALIC + "Зелёный кристалл");
item.setItemMeta(meta);
return item;
}
@EventHandler
public void gc(BlockBreakEvent e) {
Player p = e.getPlayer();
Block b = e.getBlock();
if(!b.getType().equals(Material.STAINED_GLASS))return;
if(b.getData() != 5)return;
b.getDrops().clear();
b.getDrops().add(ItemStack);

И ничего не происходит при ломании стекла
 
public ItemStack cry () {
ItemStack item = new ItemStack(Material.SEEDS);
ItemMeta meta = item.getItemMeta();
meta.setDisplayName(ChatColor.ITALIC + "Зелёный кристалл");
item.setItemMeta(meta);
return item;
}
@EventHandler
public void gc(BlockBreakEvent e) {
Player p = e.getPlayer();
Block b = e.getBlock();
if(!b.getType().equals(Material.STAINED_GLASS))return;
if(b.getData() != 5)return;
b.getDrops().clear();
b.getDrops().add(ItemStack);

И ничего не происходит при ломании стекла
b.getDrops().add(ItemStack);
Что за ItemStack? Может cry()? (что за странные названия методов?)
 
public ItemStack cry () {
ItemStack item = new ItemStack(Material.SEEDS);
ItemMeta meta = item.getItemMeta();
meta.setDisplayName(ChatColor.ITALIC + "Зелёный кристалл");
item.setItemMeta(meta);
return item;
}
@EventHandler
public void gc(BlockBreakEvent e) {
Player p = e.getPlayer();
Block b = e.getBlock();
if(!b.getType().equals(Material.STAINED_GLASS))return;
if(b.getData() != 5)return;
b.getDrops().clear();
b.getDrops().add(ItemStack);

И ничего не происходит при ломании стекла
ивент зарегал?
 
public ItemStack cry () {
ItemStack item = new ItemStack(Material.SEEDS);
ItemMeta meta = item.getItemMeta();
meta.setDisplayName(ChatColor.ITALIC + "Зелёный кристалл");
item.setItemMeta(meta);
return item;
}
@EventHandler
public void gc(BlockBreakEvent e) {
Player p = e.getPlayer();
Block b = e.getBlock();
if(!b.getType().equals(Material.STAINED_GLASS))return;
if(b.getData() != 5)return;
b.getDrops().clear();
b.getDrops().add(ItemStack);

И ничего не происходит при ломании стекла
Нельзя так менять дроп. Дроп можно изменить только отменив эвент, засетив блок в 0 и дропнув нужные предметы вручную. Эта штука есть с бородатых версий.
 
Нельзя так менять дроп. Дроп можно изменить только отменив эвент, засетив блок в 0 и дропнув нужные предметы вручную. Эта штука есть с бородатых версий.
Я буквально вчера начал заниматся плагинами, не мог бы ты подсказать как это делается? ( ну или кинуть ссылку на что то нужное)
P.s Сам уже пробывал искать на форумах, не нашёл
 
Я буквально вчера начал заниматся плагинами, не мог бы ты подсказать как это делается? ( ну или кинуть ссылку на что то нужное)
P.s Сам уже пробывал искать на форумах, не нашёл
Java:
@EventHandler
public void gc(BlockBreakEvent e)
{
    Player p = e.getPlayer();
    Block b = e.getBlock();
    if(b.getType() != Material.STAINED_GLASS)
        return;
    if(b.getData() != 5)
        return;
    e.setCancelled(true);
    b.setType(Material.AIR);
    b.getWorld().dropItemNaturally(b.getLocation(), itemStack);
}
Как-то так.
 
Последнее редактирование:
Java:
@EventHandler
public void gc(BlockBreakEvent e)
{
    Player p = e.getPlayer();
    Block b = e.getBlock();
    if(b.getType() != Material.STAINED_GLASS)
        return;
    if(b.getData() != 5)
        return;
    e.setCancelled(true);
    b.setType(Material.AIR);
    b.getWorld().dropItemNaturaly(itemStack);
}
Как-то так.

b.getWorld().dropItemNaturaly(itemStack);

Я когда itemStack заменяю на gcry () , выходит ошибка

b.getWorld().dropItemNaturaly(gcry ());
 
Назад
Верх