Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
Ну можно поговнокодить и заносить в мапу игрока, сломавшего блок арбуза, а при подборе этих семян выполнять то, что нужно и удалять его из мапы.Не самый лучший вариант. Придется отслеживать от куда дроп идет.
а как подключить экономику, я совсем не врубаюсьБери ItemPickupEvent(или как-то так) и мути то, что тебе нужно.
https://milkbowl.github.io/VaultAPI/net/milkbowl/vault/economy/Economy.htmlа как подключить экономику, я совсем не врубаюсь
Ну все - выбрасывай.Я так и не понял
Кто-то пытается сделать режим с MaskMe сервера?Не могу понять как сделать ивент при ломаний арбуза, когда поднимешь сами кусочки арбуза, за 1 шт пополнялось по 30монет
С чего бы? Все там получается в бреак ивенте.1. При ломании арбуза удалить весь дроп и заспавнить новый рандомно. (Это потому что нельзя получить конкретный дроп, который выпадет при ломании)
Где же? Там можно взять лут стандартный с блока. Но ты не получишь ItemStack который дропнется потом.С чего бы? Все там получается в бреак ивенте.
e.getBlock().getDrops(); Не?Где же? Там можно взять лут стандартный с блока. Но ты не получишь ItemStack который дропнется потом.
e.getBlock().getDrops(); Не?
@EventHandler
public void item(BlockBreakEvent e) {
Player p = e.getPlayer();
if() {
}
e.getBlock().getDrops(); Не?
С блока руды угля например ты получишь ничего. А кирка на удачу 3 тебе даст не 1 уголь. Даже если ты его закинешь в этот же метод, где есть инструмент, тебе выдаст 1 уголь, а дропнется рандомно. При чем тот что ты получишь ItemStack не будет соответствовать тому, что дропнется, а значит ты никак не сможешь прикрепить метадату.Там можно взять лут стандартный с блока.
Что вписать в if ?Код:@EventHandler public void item(BlockBreakEvent e) { Player p = e.getPlayer(); if() { }
@EventHandler(ignoreCancelled = true, priority = EventPriority.MONITOR)
public void on(BlockBreakEvent e) {
if(e.getBlock().getType()==Material.MELON_BLOCK) {
Collection<ItemStack> drop = e.getBlock().getDrops();
e.setDropItems(false);
//TODO
}
}
Мне не нужно что бы просто арбузы не выподали, а из инвентаря менялись на деньгиКак то так.PHP:@EventHandler(ignoreCancelled = true, priority = EventPriority.MONITOR) public void on(BlockBreakEvent e) { if(e.getBlock().getType()==Material.MELON_BLOCK) { Collection<ItemStack> drop = e.getBlock().getDrops(); e.setDropItems(false); //TODO } }
Мне не нужно что бы просто арбузы не выподали, а из инвентаря менялись на деньги
Пробовал?У меня свой вариант будет.
1. При ломании арбуза удалить весь дроп и заспавнить новый рандомно. (Это потому что нельзя получить конкретный дроп, который выпадет при ломании)
2. В этот дроп, который ты заспавнил, добавить MetaData с ключем, что надо деньгу дать.
3. При событии поднятия ломтиков, чекать этот ключ. Если есть такой, дать деньгу и удалить метадату.
Я не понял как это в дело воспроизвестиПробовал?
Может так поймешь?Мне не нужно что бы просто арбузы не выподали, а из инвентаря менялись на деньги
@EventHandler(ignoreCancelled = true, priority = EventPriority.MONITOR)
public void on(EntityPickupItemEvent e) {
if (e.getEntityType() == EntityType.PLAYER && e.getItem().getItemStack().getType() == Material.MELON) {
if (e.getItem().getCustomName().equals("coins")) {
// TODO
}
}
}
@EventHandler(ignoreCancelled = true, priority = EventPriority.MONITOR)
public void on(BlockBreakEvent e) {
if (e.getPlayer().getGameMode() != GameMode.CREATIVE) {
if (e.getBlock().getType() == Material.MELON_BLOCK) {
Collection<ItemStack> drop = e.getBlock().getDrops();
e.setDropItems(false);
for (ItemStack stack : drop) {
Item item = e.getBlock().getWorld()
.dropItemNaturally(e.getBlock().getLocation().add(new Vector(0.5, 0.5, 0.5)), stack);
// TODO
item.setCustomName("coins");
}
}
}
}
Ивента EntityPickupItemEvent и действия e.setDropItems(false); нетуМожет так поймешь?
PHP:@EventHandler(ignoreCancelled = true, priority = EventPriority.MONITOR) public void on(EntityPickupItemEvent e) { if (e.getEntityType() == EntityType.PLAYER && e.getItem().getItemStack().getType() == Material.MELON) { if (e.getItem().getCustomName().equals("coins")) { // TODO } } } @EventHandler(ignoreCancelled = true, priority = EventPriority.MONITOR) public void on(BlockBreakEvent e) { if (e.getPlayer().getGameMode() != GameMode.CREATIVE) { if (e.getBlock().getType() == Material.MELON_BLOCK) { Collection<ItemStack> drop = e.getBlock().getDrops(); e.setDropItems(false); for (ItemStack stack : drop) { Item item = e.getBlock().getWorld() .dropItemNaturally(e.getBlock().getLocation().add(new Vector(0.5, 0.5, 0.5)), stack); // TODO item.setCustomName("coins"); } } } }