Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[Problem] Plugin.


Rekomendowane odpowiedzi

Opublikowano

Witam, przerabiam plugin na drop mojego kolegi i posiada on błędy. Kiedy wpisuje komendę odpowiedzialną za wyświetlane menu z wyłączeniem dropu danego itemu to wyświetla błąd na serwerze, a w konsolii taki:

[21:37:43 ERROR]: null
org.bukkit.command.CommandException: Unhandled exception executing command 'drop' in plugin G-Drop v1.0
	at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) ~[spigot-1.7.9-R0.3-SNAPSHOT.jar:git-Spigot-1543]
	at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:181) ~[spigot-1.7.9-R0.3-SNAPSHOT.jar:git-Spigot-1543]
	at org.bukkit.craftbukkit.v1_7_R3.CraftServer.dispatchCommand(CraftServer.java:767) ~[spigot-1.7.9-R0.3-SNAPSHOT.jar:git-Spigot-1543]
	at net.minecraft.server.v1_7_R3.PlayerConnection.handleCommand(PlayerConnection.java:1015) [spigot-1.7.9-R0.3-SNAPSHOT.jar:git-Spigot-1543]
	at net.minecraft.server.v1_7_R3.PlayerConnection.a(PlayerConnection.java:845) [spigot-1.7.9-R0.3-SNAPSHOT.jar:git-Spigot-1543]
	at net.minecraft.server.v1_7_R3.PacketPlayInChat.a(PacketPlayInChat.java:28) [spigot-1.7.9-R0.3-SNAPSHOT.jar:git-Spigot-1543]
	at net.minecraft.server.v1_7_R3.PacketPlayInChat.handle(PacketPlayInChat.java:65) [spigot-1.7.9-R0.3-SNAPSHOT.jar:git-Spigot-1543]
	at net.minecraft.server.v1_7_R3.NetworkManager.a(NetworkManager.java:184) [spigot-1.7.9-R0.3-SNAPSHOT.jar:git-Spigot-1543]
	at net.minecraft.server.v1_7_R3.ServerConnection.c(ServerConnection.java:81) [spigot-1.7.9-R0.3-SNAPSHOT.jar:git-Spigot-1543]
	at net.minecraft.server.v1_7_R3.MinecraftServer.v(MinecraftServer.java:731) [spigot-1.7.9-R0.3-SNAPSHOT.jar:git-Spigot-1543]
	at net.minecraft.server.v1_7_R3.DedicatedServer.v(DedicatedServer.java:284) [spigot-1.7.9-R0.3-SNAPSHOT.jar:git-Spigot-1543]
	at net.minecraft.server.v1_7_R3.MinecraftServer.u(MinecraftServer.java:584) [spigot-1.7.9-R0.3-SNAPSHOT.jar:git-Spigot-1543]
	at net.minecraft.server.v1_7_R3.MinecraftServer.run(MinecraftServer.java:490) [spigot-1.7.9-R0.3-SNAPSHOT.jar:git-Spigot-1543]
	at net.minecraft.server.v1_7_R3.ThreadServerApplication.run(SourceFile:628) [spigot-1.7.9-R0.3-SNAPSHOT.jar:git-Spigot-1543]
Caused by: java.lang.Error: Unresolved compilation problems: 
	The type of the expression must be an array type but it resolved to double
	Syntax error on token "$SwitchMap$org$bukkit$Material", delete this token
	at pl.gaben.drop.Main.openGui(Main.java:90) ~[?:?]
	at pl.gaben.drop.commands.DropCommand.onCommand(DropCommand.java:32) ~[?:?]
	at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ~[spigot-1.7.9-R0.3-SNAPSHOT.jar:git-Spigot-1543]
	... 13 more

Proszę o pomoc.

 

 

Mam błąd w takiej linijce:

      switch (1.$SwitchMap$org$bukkit$Material[item.getType().ordinal()])

 

Opublikowano

I to Ci się kompiluje bez błędów?

 

Pokaż więcej kodu

To jest "Class'a" w której występuje błąd:


import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.entity.Player;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.ShapedRecipe;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.plugin.java.JavaPlugin;
import pl.gaben.drop.commands.DropCommand;
import pl.gaben.drop.commands.StoneCommand;
import pl.gaben.drop.listeners.BlockBreakListener;
import pl.gaben.drop.listeners.BlockPlaceListener;
import pl.gaben.drop.listeners.EntityExplodeListener;
import pl.gaben.drop.listeners.InventoryClickListener;
import pl.gaben.drop.listeners.InventoryCloseListener;
import pl.gaben.drop.listeners.PlayerJoinListener;
import pl.gaben.drop.listeners.PlayerKickListener;
import pl.gaben.drop.listeners.PlayerQuitListener;

public class Main
  extends JavaPlugin
{
  ConfigManager configManager;
  BlockBreakListener blockBreakListener;
  BlockPlaceListener blockPlaceListener;
  EntityExplodeListener entityExplodeListener;
  PlayerJoinListener playerJoinListener;
  PlayerQuitListener playerQuitListener;
  PlayerKickListener playerKickListener;
  InventoryClickListener inventoryClickListener;
  InventoryCloseListener inventoryCloseListener;
  StoneCommand stoneCommand;
  DropCommand dropCommand;
  public List<String> openedGui = new ArrayList();
  public HashMap<String, List<Material>> disabledDrop = new HashMap();
  
  public void onEnable()
  {
    this.configManager = new ConfigManager(this);
    
    this.blockBreakListener = new BlockBreakListener(this);
    this.blockPlaceListener = new BlockPlaceListener(this);
    this.entityExplodeListener = new EntityExplodeListener(this);
    this.playerJoinListener = new PlayerJoinListener(this);
    this.playerQuitListener = new PlayerQuitListener(this);
    this.playerKickListener = new PlayerKickListener(this);
    this.inventoryClickListener = new InventoryClickListener(this);
    this.inventoryCloseListener = new InventoryCloseListener(this);
    
    this.stoneCommand = new StoneCommand(this);
    this.dropCommand = new DropCommand(this);
    
    ItemStack item = new ItemStack(Material.ENDER_STONE, 1);
    ItemMeta meta = item.getItemMeta();
    meta.setDisplayName(ChatColor.GOLD + "Generator kamienia");
    item.setItemMeta(meta);
    item.addUnsafeEnchantment(Enchantment.DURABILITY, 1);
    ShapedRecipe recipe = new ShapedRecipe(item);
    recipe.shape(new String[] { "SSS", "SIS", "SSS" });
    recipe.setIngredient('S', Material.STONE);
    recipe.setIngredient('I', Material.IRON_INGOT);
    Bukkit.addRecipe(recipe);
    for (Player player : Bukkit.getOnlinePlayers()) {
      this.disabledDrop.put(player.getName(), new ArrayList());
    }
  }
  
  public void openGui(Player player)
  {
    Material[] materials = { Material.COBBLESTONE, Material.DIRT, Material.GRAVEL, Material.DIAMOND, Material.GOLD_INGOT, Material.EMERALD, Material.IRON_INGOT, Material.COAL, Material.INK_SACK, Material.REDSTONE, Material.ENDER_PEARL, Material.SLIME_BALL, Material.TNT, Material.OBSIDIAN, Material.APPLE, Material.BOOK };
    this.openedGui.add(player.getName());
    List<Material> disabled = (List)this.disabledDrop.get(player.getName());
    Inventory inv = Bukkit.createInventory(player, (materials.length - 1) / 9 * 9 + 9, "Wybierz surowce:");
    for (int i = 0; i < materials.length; i++)
    {
      Material material = materials[i];
      ItemStack item = new ItemStack(material, 1);
      if (material == Material.INK_SACK) {
        item = new ItemStack(material, 1, (short)4);
      }
      ItemMeta meta = item.getItemMeta();
      String name = (disabled.contains(material) ? ChatColor.GRAY : ChatColor.GOLD) + "";
      switch (1.$SwitchMap$org$bukkit$Material[item.getType().ordinal()])                                                            # TU JEST BŁĄD!!!!!!!!!!!!!!
      {
      case 1: 
        name = name + "Bruk";
        break;
      case 2: 
        name = name + "Ziemia";
        break;
      case 3: 
        name = name + "Zwir";
        break;
      case 4: 
        name = name + "Diamenty";
        break;
      case 5: 
        name = name + "Zloto";
        break;
      case 6: 
        name = name + "Szmaragdy";
        break;
      case 7: 
        name = name + "Zelazo";
        break;
      case 8: 
        name = name + "Wegiel";
        break;
      case 9: 
        name = name + "Lapis lazuli";
        break;
      case 10: 
        name = name + "Redstone";
        break;
      case 11: 
        name = name + "Perly endermana";
        break;
      case 12: 
        name = name + "Slimeball";
        break;
      case 13: 
        name = name + "TNT";
        break;
      case 14: 
        name = name + "Obsydian";
        break;
      case 15: 
        name = name + "Jablka";
        break;
      case 16: 
        name = name + "Ksiazki";
      }
      meta.setDisplayName(name);
      item.setItemMeta(meta);
      inv.setItem(i, item);
    }
    player.openInventory(inv);
  }
}

Opublikowano

Dobra, a powiedz nam skąd wytrzasnąłeś 1.$SwitchMap$org$bukkit$Material? Nie ma ,,cannot resolve symbol''?

Jak to Ci się kompiluje bez błędów to podziwiam.

    Autorski plugin na gildie!

newlogo.png

Opublikowano

Dobra, a powiedz nam skąd wytrzasnąłeś 1.$SwitchMap$org$bukkit$Material? Nie ma ,,cannot resolve symbol''?

Jak to Ci się kompiluje bez błędów to podziwiam.

W tym wyskakuje taki błąd:

Syntax error on token "$SwitchMap$org$bukkit$Material", delete this token

Opublikowano

Nie wiem co chcesz tam switchować, ale na pewno nie to. Polecam czytać errory.

Ale powiesz chociaż jak naprawić ten?

Opublikowano

skąd kradłeś kod?

Bo na pewno nie jest twój tylko dekompilowany jakimś jd-gui czy innym gie....

 

 

Do menu które wyłącza drop danych bloków.

I nawet sam nie wiesz czego chciałeś użyć w tym switchu? a my to mamy wiedzieć?

Bo to nie wygląda jak switch po Material, no chyba że po zdekompilowaniu klasy, wtedy może to tak wyglądać....

 

 

Więc z tego kodu trudno cokolwiek sensownego wyciągnąć... zmien tego switcha na normalnego po materiale i przestań też kraść pluginy.

 

 

EDIT: @gabrys07076

Jak ci kolega dał, to niech ci kolega powie co tam powinno być ;)

1438614356923701010629.png

 

Opublikowano

skąd kradłeś kod?

Bo na pewno nie jest twój tylko dekompilowany jakimś jd-gui czy innym gie....

 

 

I nawet sam nie wiesz czego chciałeś użyć w tym switchu? a my to mamy wiedzieć?

Bo to nie wygląda jak switch po Material, no chyba że po zdekompilowaniu klasy, wtedy może to tak wyglądać....

 

 

Więc z tego kodu trudno cokolwiek sensownego wyciągnąć... zmien tego switcha na normalnego po materiale i przestań też kraść pluginy.

Nie kradłem pluginu... od kolegi mam. Powiesz co mam wpisać zamiast tego switch? Bo się mało znam :(

Opublikowano

Zapytaj się kolegi.

Przypisujesz tablicę zamiast obiektu, switchować zapewne chcesz zmienną material która jest niepoprawnie przypisana. Polecam foreach, ewentualnie mapa material,String i tam nazwa.

Nie umiesz nie bierz się za takie pluginy

    Autorski plugin na gildie!

newlogo.png

Opublikowano

Zapytaj się kolegi.

Przypisujesz tablicę zamiast obiektu, switchować zapewne chcesz zmienną material która jest niepoprawnie przypisana. Polecam foreach, ewentualnie mapa material,String i tam nazwa.

Nie umiesz nie bierz się za takie pluginy

 

Ale ty pewnie też kiedyś ch*ja umiałeś w pisaniu tak? Więc za przeproszeniem ogarnij się.

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...