Смотрите видео ниже, чтобы узнать, как установить наш сайт в качестве веб-приложения на домашнем экране.
Примечание: This feature may not be available in some browsers.
да но как мне его поменять? я же его только получаю. мб создать new PiglinBarterEvent(и сюда запихнуть измененное старое)
public class MyPlugin extends JavaPlugin implements Listener {
@Override
public void onEnable() {
Bukkit.getPluginManager().registerEvents(this, this);
}
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
public void onPiglinBarter(PiglinBarterEvent e) {
final ItemStack myItem = new ItemStack(Material.STONE);
final List<ItemStack> outcome = e.getOutcome();
outcome.clear();
outcome.add(myItem);
}
}
Так там не написано вродеНесмотря на то, что здесь явное непонимание принципов и устройства присутствует, документация по ивенту:Авторизуйтесь для просмотра ссылок.
Все написано, просто, видимо, не с того начинаешь. Попроси нейросетку написать тебе то, что ты хочешь, там, может быть, станет понятнее. Ну или обратись к гайдам по разработке плагинов для новичков. Второе предпочтительнее.Так там не написано вроде
Попроси нейросетку
покажи ка так называемый класс NewPiglinBarterEvent
public class NewPiglinBarterEvent extends PiglinBarterEvent {
public NewPiglinBarterEvent(@NotNull Piglin what, @NotNull ItemStack input, @NotNull List<ItemStack> outcome) {
super(what, input, outcome);
this.input = input;
this.outcome = outcome;
}
}
а зачем собственно ты делаешь для этого отдельный класс? и для чего ты регистрируешь не ивент листенер, а напрямую ивент (как ты собираешься это делать)? и насчёт твоего вопроса, тут буквально написано. what - пиглин, input - входной предмет, list<itemstack> - список с выходными предметамиJava:public class NewPiglinBarterEvent extends PiglinBarterEvent { public NewPiglinBarterEvent(@NotNull Piglin what, @NotNull ItemStack input, @NotNull List<ItemStack> outcome) { super(what, input, outcome); this.input = input; this.outcome = outcome; } }
Понял спасибоесли тебе ТАК нужно сделать свой собственный класс для этого, слушай ивент PiglinBarterEvent и вызывай свой "новый" с помощью Bukkit.getServer().getPluginManager().callEvent(new NewPiglinBarterEvent(event.getEntity(), event.getInput(), event.getOutput()))
но extends PiglinBarterEvent замени на extends Event и добавь нужные методы. (иначе он будет рекурсивно вызывать сам себя)
Объединено
подробнее о кастомных ивентах с примерами можешь узнать тут -Авторизуйтесь для просмотра ссылок.
Мне просто надо поменять outcome)а зачем собственно ты делаешь для этого отдельный класс? и для чего ты регистрируешь не ивент листенер, а напрямую ивент (как ты собираешься это делать)? и насчёт твоего вопроса, тут буквально написано. what - пиглин, input - входной предмет, list<itemstack> - список с выходными предметами
Понял спасибо
Объединено
Мне просто надо поменять outcome)
PiglinBarterEvent#getOutcome() отдает изменяемый список.лол я ток ща понял что он неменяемый походу
да но как мне его поменять? я же его только получаю. мб создать new PiglinBarterEvent(и сюда запихнуть измененное старое)PiglinBarterEvent#getOutcome() отдает изменяемый список.
нет. он будет рекурсивно вызывать сам себямб создать new PiglinBarterEvent(и сюда запихнуть измененное старое)
метод не создаёт новый экземпляр, а лишь даёт ссылку на объект. в чём проблема ему подредактировать содержимоеда но как мне его поменять?
да но как мне его поменять? я же его только получаю. мб создать new PiglinBarterEvent(и сюда запихнуть измененное старое)
public class MyPlugin extends JavaPlugin implements Listener {
@Override
public void onEnable() {
Bukkit.getPluginManager().registerEvents(this, this);
}
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
public void onPiglinBarter(PiglinBarterEvent e) {
final ItemStack myItem = new ItemStack(Material.STONE);
final List<ItemStack> outcome = e.getOutcome();
outcome.clear();
outcome.add(myItem);
}
}
всем спасибо)Java:public class MyPlugin extends JavaPlugin implements Listener { @Override public void onEnable() { Bukkit.getPluginManager().registerEvents(this, this); } @EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true) public void onPiglinBarter(PiglinBarterEvent e) { final ItemStack myItem = new ItemStack(Material.STONE); final List<ItemStack> outcome = e.getOutcome(); outcome.clear(); outcome.add(myItem); } }
никак, просто пометь правильное решениеа как закрыть тему? 0_0
Мы используем основные cookies для обеспечения работы этого сайта, а также дополнительные cookies для обеспечения максимального удобства пользователя.
Посмотрите дополнительную информацию и настройте свои предпочтения