ошибка

  • Автор темы Автор темы K0lbasa
  • Дата начала Дата начала
  • Мы теперь в Discord

    Мы рады объявить, что теперь у нас есть сервер Discord. В честь этого мы проводим розыгрыш!
    Теперь вы можете легко связаться с нами и другими участниками сообщества,
    обмениваться идеями и получать обновления о нашей деятельности.

  • EXCLUSIVE ⚡

    Гость, покупая подписку, ты увеличишь свои доходы в разы!
    Мы делаем самые актуальные сборки, переводим лучшие приватные плагины, а так-же обновляем их и фиксим любые ошибки.
    Дешевле, чем студии и другие разработчики!

  • Приветствуем тебя Гость!⁣

    Недавно на форуме? Не знаешь как можно скачивать ресурсы?
    Для этого нужно лишь зарегистрировать на форуме, и получать доступ к профессиональным плагинам, оптимизированным настройкам.
    Здесь только самое лучшее.

K0lbasa

Пользователь
19 Фев 2021
255
0
16
где здесь ошибка? BukkitAPI

WanderingTrader wt = (WanderingTrader) w.spawnEntity(getRandom(w, 150), EntityType.WANDERING_TRADER);
wt.setAdult();
wt.setAgeLock(false);
wt.setCustomName(hex("#f5b95bТорговец"));
wt.setCustomNameVisible(true);
wt.setCanPickupItems(false);

List<Material> items = new ArrayList<>();
Random r = new Random();

Collections.addAll(items, Material.values());

List<MerchantRecipe> list = wt.getRecipes();
for(int i = 0; i < RandomUtils.nextInt(12); i++) {
MerchantRecipe recipe = new MerchantRecipe(new ItemStack(items.get(r.nextInt(items.size()))), 5);
recipe.addIngredient(new ItemStack(Material.GOLD_NUGGET));
list.add(recipe);
} wt.setRecipes(list);
 
К сожалению, ошибка в данном коде не указана. Пожалуйста, уточните, что именно не работает, и приведите сообщение об ошибке, если оно есть. Без этого я не смогу помочь вам.
 
К сожалению, ошибка в данном коде не указана. Пожалуйста, уточните, что именно не работает, и приведите сообщение об ошибке, если оно есть. Без этого я не смогу помочь вам.
[20:49:37 ERROR]: null
org.bukkit.command.CommandException: Unhandled exception executing command 'buyer' in plugin sBuyer v1.0
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:47) ~[patched_1.16.5.jar:git-Paper-792]
at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:159) ~[patched_1.16.5.jar:git-Paper-792]
at org.bukkit.craftbukkit.v1_16_R3.CraftServer.dispatchCommand(CraftServer.java:826) ~[patched_1.16.5.jar:git-Paper-792]
at net.minecraft.server.v1_16_R3.PlayerConnection.handleCommand(PlayerConnection.java:2185) ~[patched_1.16.5.jar:git-Paper-792]
at net.minecraft.server.v1_16_R3.PlayerConnection.c(PlayerConnection.java:2000) ~[patched_1.16.5.jar:git-Paper-792]
at net.minecraft.server.v1_16_R3.PlayerConnection.a(PlayerConnection.java:1953) ~[patched_1.16.5.jar:git-Paper-792]
at net.minecraft.server.v1_16_R3.PacketPlayInChat.a(PacketPlayInChat.java:49) ~[patched_1.16.5.jar:git-Paper-792]
at net.minecraft.server.v1_16_R3.PacketPlayInChat.a(PacketPlayInChat.java:7) ~[patched_1.16.5.jar:git-Paper-792]
at net.minecraft.server.v1_16_R3.PlayerConnectionUtils.lambda$ensureMainThread$1(PlayerConnectionUtils.java:35) ~[patched_1.16.5.jar:git-Paper-792]
at net.minecraft.server.v1_16_R3.TickTask.run(SourceFile:18) ~[patched_1.16.5.jar:git-Paper-792]
at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.executeTask(IAsyncTaskHandler.java:136) ~[patched_1.16.5.jar:git-Paper-792]
at net.minecraft.server.v1_16_R3.IAsyncTaskHandlerReentrant.executeTask(SourceFile:23) ~[patched_1.16.5.jar:git-Paper-792]
at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.executeNext(IAsyncTaskHandler.java:109) ~[patched_1.16.5.jar:git-Paper-792]
at net.minecraft.server.v1_16_R3.MinecraftServer.bb(MinecraftServer.java:1271) ~[patched_1.16.5.jar:git-Paper-792]
at net.minecraft.server.v1_16_R3.MinecraftServer.executeNext(MinecraftServer.java:1264) ~[patched_1.16.5.jar:git-Paper-792]
at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.executeAll(IAsyncTaskHandler.java:95) ~[patched_1.16.5.jar:git-Paper-792]
at net.minecraft.server.v1_16_R3.MinecraftServer.a(MinecraftServer.java:1400) ~[patched_1.16.5.jar:git-Paper-792]
at net.minecraft.server.v1_16_R3.MinecraftServer.w(MinecraftServer.java:1135) ~[patched_1.16.5.jar:git-Paper-792]
at net.minecraft.server.v1_16_R3.MinecraftServer.lambda$a$0(MinecraftServer.java:291) ~[patched_1.16.5.jar:git-Paper-792]
at java.lang.Thread.run(Thread.java:750) [?:1.8.0_322]
Caused by: java.lang.UnsupportedOperationException
at com.google.common.collect.ImmutableCollection.add(ImmutableCollection.java:218) ~[patched_1.16.5.jar:git-Paper-792]
at com.sbuyer.utils.BuyerManager.spawnBuyer(BuyerManager.java:35) ~[?:?]
at com.sbuyer.cmds.BuyerCMD.execute(BuyerCMD.java:22) ~[?:?]
at com.sbuyer.cmds.AbstractCMD.onCommand(AbstractCMD.java:27) ~[?:?]
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:45) ~[patched_1.16.5.jar:git-Paper-792]
... 19 more
 
[20:49:37 ERROR]: null
org.bukkit.command.CommandException: Unhandled exception executing command 'buyer' in plugin sBuyer v1.0
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:47) ~[patched_1.16.5.jar:git-Paper-792]
at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:159) ~[patched_1.16.5.jar:git-Paper-792]
at org.bukkit.craftbukkit.v1_16_R3.CraftServer.dispatchCommand(CraftServer.java:826) ~[patched_1.16.5.jar:git-Paper-792]
at net.minecraft.server.v1_16_R3.PlayerConnection.handleCommand(PlayerConnection.java:2185) ~[patched_1.16.5.jar:git-Paper-792]
at net.minecraft.server.v1_16_R3.PlayerConnection.c(PlayerConnection.java:2000) ~[patched_1.16.5.jar:git-Paper-792]
at net.minecraft.server.v1_16_R3.PlayerConnection.a(PlayerConnection.java:1953) ~[patched_1.16.5.jar:git-Paper-792]
at net.minecraft.server.v1_16_R3.PacketPlayInChat.a(PacketPlayInChat.java:49) ~[patched_1.16.5.jar:git-Paper-792]
at net.minecraft.server.v1_16_R3.PacketPlayInChat.a(PacketPlayInChat.java:7) ~[patched_1.16.5.jar:git-Paper-792]
at net.minecraft.server.v1_16_R3.PlayerConnectionUtils.lambda$ensureMainThread$1(PlayerConnectionUtils.java:35) ~[patched_1.16.5.jar:git-Paper-792]
at net.minecraft.server.v1_16_R3.TickTask.run(SourceFile:18) ~[patched_1.16.5.jar:git-Paper-792]
at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.executeTask(IAsyncTaskHandler.java:136) ~[patched_1.16.5.jar:git-Paper-792]
at net.minecraft.server.v1_16_R3.IAsyncTaskHandlerReentrant.executeTask(SourceFile:23) ~[patched_1.16.5.jar:git-Paper-792]
at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.executeNext(IAsyncTaskHandler.java:109) ~[patched_1.16.5.jar:git-Paper-792]
at net.minecraft.server.v1_16_R3.MinecraftServer.bb(MinecraftServer.java:1271) ~[patched_1.16.5.jar:git-Paper-792]
at net.minecraft.server.v1_16_R3.MinecraftServer.executeNext(MinecraftServer.java:1264) ~[patched_1.16.5.jar:git-Paper-792]
at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.executeAll(IAsyncTaskHandler.java:95) ~[patched_1.16.5.jar:git-Paper-792]
at net.minecraft.server.v1_16_R3.MinecraftServer.a(MinecraftServer.java:1400) ~[patched_1.16.5.jar:git-Paper-792]
at net.minecraft.server.v1_16_R3.MinecraftServer.w(MinecraftServer.java:1135) ~[patched_1.16.5.jar:git-Paper-792]
at net.minecraft.server.v1_16_R3.MinecraftServer.lambda$a$0(MinecraftServer.java:291) ~[patched_1.16.5.jar:git-Paper-792]
at java.lang.Thread.run(Thread.java:750) [?:1.8.0_322]
Caused by: java.lang.UnsupportedOperationException
at com.google.common.collect.ImmutableCollection.add(ImmutableCollection.java:218) ~[patched_1.16.5.jar:git-Paper-792]
at com.sbuyer.utils.BuyerManager.spawnBuyer(BuyerManager.java:35) ~[?:?]
at com.sbuyer.cmds.BuyerCMD.execute(BuyerCMD.java:22) ~[?:?]
at com.sbuyer.cmds.AbstractCMD.onCommand(AbstractCMD.java:27) ~[?:?]
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:45) ~[patched_1.16.5.jar:git-Paper-792]
... 19 more
Ошибка возникла на строке 35 в классе BuyerManager в методе spawnBuyer. Также можно увидеть, что это вызывает ошибку в команде buyer и что причиной ошибки является UnsupportedOperationException. Возможно, попытка добавления элемента в нередактируемую коллекцию. Проверьте код на соответствие этому случаю.
 
Ошибка возникла на строке 35 в классе BuyerManager в методе spawnBuyer. Также можно увидеть, что это вызывает ошибку в команде buyer и что причиной ошибки является UnsupportedOperationException. Возможно, попытка добавления элемента в нередактируемую коллекцию. Проверьте код на соответствие этому случаю.
напиши код на отслеживание клика по списку предложений в меню WanderingTrader. BukkitAPI.
 
напиши код на отслеживание клика по списку предложений в меню WanderingTrader. BukkitAPI.
Вам нужно создать слушатель событий InventoryClickEvent для вашего меню WanderingTrader и выяснить, какой предмет был щелкнут в меню. Это можно сделать, используя метод getItem () и проверку itemStack, который был передан в этот метод. Вот пример кода:

```java
public class TraderMenuListener implements Listener {

@EventHandler
public void onInventoryClick(InventoryClickEvent event) {
Player player = (Player) event.getWhoClicked();
Inventory clickedInventory = event.getClickedInventory();
if (clickedInventory != null && clickedInventory.getHolder() instanceof WanderingTrader) {
WanderingTrader trader = (WanderingTrader) clickedInventory.getHolder();
ItemStack clickedItem = event.getCurrentItem();
if (clickedItem != null && clickedItem.getType() != Material.AIR) {
// Добавьте здесь код для обработки клика по предмету в меню WanderingTrader
// Например, проверьте, что этот предмет находится в индексе 0 и выполните соответствующие действия
if (event.getSlot() == 0) {
player.sendMessage("Вы выбрали предмет 1");
}
event.setCancelled(true);
}
}
}
}
```

Вы можете зарегистрировать этого слушателя событий в своем главном классе плагина, используя метод registerEvents() BukkitAPI, например:

```java
public class Main extends JavaPlugin {

@Override
public void onEnable() {
// Регистрация слушателя событий
getServer().getPluginManager().registerEvents(new TraderMenuListener(), this);
}

}
```
 
Вам нужно создать слушатель событий InventoryClickEvent для вашего меню WanderingTrader и выяснить, какой предмет был щелкнут в меню. Это можно сделать, используя метод getItem () и проверку itemStack, который был передан в этот метод. Вот пример кода:

```java
public class TraderMenuListener implements Listener {

@EventHandler
public void onInventoryClick(InventoryClickEvent event) {
Player player = (Player) event.getWhoClicked();
Inventory clickedInventory = event.getClickedInventory();
if (clickedInventory != null && clickedInventory.getHolder() instanceof WanderingTrader) {
WanderingTrader trader = (WanderingTrader) clickedInventory.getHolder();
ItemStack clickedItem = event.getCurrentItem();
if (clickedItem != null && clickedItem.getType() != Material.AIR) {
// Добавьте здесь код для обработки клика по предмету в меню WanderingTrader
// Например, проверьте, что этот предмет находится в индексе 0 и выполните соответствующие действия
if (event.getSlot() == 0) {
player.sendMessage("Вы выбрали предмет 1");
}
event.setCancelled(true);
}
}
}
}
```

Вы можете зарегистрировать этого слушателя событий в своем главном классе плагина, используя метод registerEvents() BukkitAPI, например:

```java
public class Main extends JavaPlugin {

@Override
public void onEnable() {
// Регистрация слушателя событий
getServer().getPluginManager().registerEvents(new TraderMenuListener(), this);
}

}
```
код не реагирует на клик в списке предложений торговца
 
код не реагирует на клик в списке предложений торговца
Извините, я ошибся раньше. Вы можете использовать объект MerchantRecipe, который представляет предмет, который торговец предоставляет взамен определенных предметов или денег. Метод getRecipes() возвращает список MerchantRecipe, который можно использовать для проверки, какой предмет был выбран.

Вот пример кода для использования в качестве слушателя событий:

```java
public class TraderMenuListener implements Listener {

@EventHandler
public void onInventoryClick(InventoryClickEvent e) {
Player player = (Player) e.getWhoClicked();
Inventory clickedInventory = e.getClickedInventory();
if (clickedInventory != null && clickedInventory.getHolder() instanceof WanderingTrader) {
WanderingTrader trader = (WanderingTrader) clickedInventory.getHolder();
ItemStack clickedItem = e.getCurrentItem();
if (clickedItem != null && clickedItem.getType() != Material.AIR) {
// Проверьте, какой элемент был выбран и выполните соответствующие действия на основе MerchantRecipe
for (MerchantRecipe recipe : trader.getRecipes()) {
if (clickedItem.isSimilar(recipe.getResult())) {
// Добавьте здесь код для обработки клика на предмет
player.sendMessage("Торговец предлагает вам " + recipe.getResult().getType().toString());
break;
}
}
e.setCancelled(true);
}
}
}
}
```

Зарегистрируйте этот слушатель событий в своем главном классе плагина, используя метод registerEvents() BukkitAPI, например:

```java
public class Main extends JavaPlugin {

@Override
public void onEnable() {
// Регистрация слушателя событий
getServer().getPluginManager().registerEvents(new TraderMenuListener(), this);
}

}
```
 
а
Извините, я ошибся раньше. Вы можете использовать объект MerchantRecipe, который представляет предмет, который торговец предоставляет взамен определенных предметов или денег. Метод getRecipes() возвращает список MerchantRecipe, который можно использовать для проверки, какой предмет был выбран.

Вот пример кода для использования в качестве слушателя событий:

```java
public class TraderMenuListener implements Listener {

@EventHandler
public void onInventoryClick(InventoryClickEvent e) {
Player player = (Player) e.getWhoClicked();
Inventory clickedInventory = e.getClickedInventory();
if (clickedInventory != null && clickedInventory.getHolder() instanceof WanderingTrader) {
WanderingTrader trader = (WanderingTrader) clickedInventory.getHolder();
ItemStack clickedItem = e.getCurrentItem();
if (clickedItem != null && clickedItem.getType() != Material.AIR) {
// Проверьте, какой элемент был выбран и выполните соответствующие действия на основе MerchantRecipe
for (MerchantRecipe recipe : trader.getRecipes()) {
if (clickedItem.isSimilar(recipe.getResult())) {
// Добавьте здесь код для обработки клика на предмет
player.sendMessage("Торговец предлагает вам " + recipe.getResult().getType().toString());
break;
}
}
e.setCancelled(true);
}
}
}
}
```

Зарегистрируйте этот слушатель событий в своем главном классе плагина, используя метод registerEvents() BukkitAPI, например:

```java
public class Main extends JavaPlugin {

@Override
public void onEnable() {
// Регистрация слушателя событий
getServer().getPluginManager().registerEvents(new TraderMenuListener(), this);
}

}
```
а если впринципе ивент не реагирует на клик?
 
а если впринципе ивент не реагирует на клик?
Если ивент InventoryClickEvent вообще не реагирует на клики, возможно, вы зарегистрировали слушатель событий неправильно или ваш плагин не работает вообще.

Проверьте, зарегистрирован ли ваш слушатель событий, используя метод getRegisteredListeners() класса PluginManager BukkitAPI. Его можно использовать для получения всех зарегистрированных слушателей событий в плагине. Вот некоторый пример кода:

```java
public class Main extends JavaPlugin {

@Override
public void onEnable() {
// Регистрация слушателя событий
getServer().getPluginManager().registerEvents(new TraderMenuListener(), this);

// Проверка зарегистрированных слушателей событий
 
Если ивент InventoryClickEvent вообще не реагирует на клики, возможно, вы зарегистрировали слушатель событий неправильно или ваш плагин не работает вообще.

Проверьте, зарегистрирован ли ваш слушатель событий, используя метод getRegisteredListeners() класса PluginManager BukkitAPI. Его можно использовать для получения всех зарегистрированных слушателей событий в плагине. Вот некоторый пример кода:

```java
public class Main extends JavaPlugin {

@Override
public void onEnable() {
// Регистрация слушателя событий
getServer().getPluginManager().registerEvents(new TraderMenuListener(), this);

// Проверка зарегистрированных слушателей событий
Нет, ивент не видит только список предложений торговца
 

Помочь проекту 💕

Собрано
"52,204.60" ₽
Цель
"60,000.00" ₽

Новые сообщения

Последние ресурсы