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] getServer().addRecipe(recipe);


Rekomendowane odpowiedzi

Opublikowano

Mam pytanie dlaczego eclipse wykrywa mi błąd getServer().addRecipe(recipe);

Przy samym getServer() mam podkreślone jako błąd.

 

Klasa main:

import java.util.logging.Logger;



import org.bukkit.event.Listener;
import org.bukkit.plugin.PluginDescriptionFile;
import org.bukkit.plugin.java.JavaPlugin;


public class main extends JavaPlugin implements Listener {
	
	public final Logger logger = Logger.getLogger("Minecraft");
	public static main plugin;
	
	@Override
	public void onDisable() {
		PluginDescriptionFile pdfFile = this.getDescription();
		this.logger.info(pdfFile.getName() + " zostal wylaczony !");
	}
	
	@Override
	public void onEnable() {
		PluginDescriptionFile pdfFile = this.getDescription();
		this.logger.info(pdfFile.getName() + " Wersja " + pdfFile.getVersion() + " zostal wlaczony !");
		getCommand("fly").setExecutor(new FLY());
		getCommand("gm").setExecutor(new GM());
		getCommand("god").setExecutor(new GOD());
		getServer().getPluginManager().registerEvents(new Crafting(), this);
		
	}
	
	

}

I klasa Crafting:

import java.io.PrintStream;
import org.bukkit.Material;
import org.bukkit.Server;
import org.bukkit.event.Listener;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.ShapedRecipe;
import org.bukkit.inventory.meta.ItemMeta;

public class Crafting implements Listener {
	
	public void crafting() {
		
		ItemStack ec = new ItemStack(Material.ENDER_CHEST, 1);
		ItemMeta mec = ec.getItemMeta();
		mec.setDisplayName("§5EnderChest");
		ec.setItemMeta(mec);
		
		ShapedRecipe recipe = new ShapedRecipe(ec);
	    recipe.shape(new String[] { "AAA", "ABA", "AAA" });
	    recipe.setIngredient('A', Material.OBSIDIAN);
	    recipe.setIngredient('B', Material.ENDER_PEARL);
	    getServer().addRecipe(recipe);

csHDdb6.png

Opublikowano

Co pisze w podpowiedziach?

@nieznany1234567 szybszy :C

 

Potrzebujesz pomocy przy pisaniu pluginu?

Potrzebujesz pomocy przy konfiguracji pluginu?

Napisz DO MNIE! Chętnie służę pomocą.

CPU: Intel Core i7-5930K  GPU: 2 x Gigabyte GeForce GTX 980 Ti 6144MB GDDR5 MOBO: ASRock X99 Extreme6/3.1 RAMHyperX Fury DDR4 2x16GB 2133MHz CL14 SSD: Crucial MX200 1TB HDD: Seagate 2TB

Laptop: Lenovo y700-17ISK Intel Core i7-6700HQ/GTX960m/16GB/256GB SSD+ 1TB HDD

Opublikowano

Wytłumacz mi jak w klasie Crafting implementującej Listener masz wziąć metodę getServer()?...

O klasie Bukkit nie słyszałeś?

 

Co pisze w podpowiedziach? @MrDyrektor szybszy :C

Jest napisane... idź do szkoły człowieku...

#AntyBlezur


Opublikowano

To zacytuj mi gdzie, wtedy przyznam ci rację

Potrzebujesz pomocy przy pisaniu pluginu?

Potrzebujesz pomocy przy konfiguracji pluginu?

Napisz DO MNIE! Chętnie służę pomocą.

CPU: Intel Core i7-5930K  GPU: 2 x Gigabyte GeForce GTX 980 Ti 6144MB GDDR5 MOBO: ASRock X99 Extreme6/3.1 RAMHyperX Fury DDR4 2x16GB 2133MHz CL14 SSD: Crucial MX200 1TB HDD: Seagate 2TB

Laptop: Lenovo y700-17ISK Intel Core i7-6700HQ/GTX960m/16GB/256GB SSD+ 1TB HDD

Opublikowano

Usuń ta 2 klase i dodaj do pierwszej i w onEnable:

 

        ItemStack ec = new ItemStack(Material.ENDER_CHEST, 1);
        ItemMeta mec = ec.getItemMeta();
        mec.setDisplayName("§5EnderChest");
        ec.setItemMeta(mec);
    
     ShapedRecipe recipe = new ShapedRecipe(ec);
     recipe.shape(new String[] { "AAA", "ABA", "AAA" });
     recipe.setIngredient('A', Material.OBSIDIAN);
     recipe.setIngredient('B', Material.ENDER_PEARL);
     getServer().addRecipe(recipe);

Pisze pluginy na zamówienie ! Skype: elfusion200

Opublikowano

Usuń ta 2 klase i dodaj do pierwszej i w onEnable:

 

        ItemStack ec = new ItemStack(Material.ENDER_CHEST, 1);
        ItemMeta mec = ec.getItemMeta();
        mec.setDisplayName("§5EnderChest");
        ec.setItemMeta(mec);
    
     ShapedRecipe recipe = new ShapedRecipe(ec);
     recipe.shape(new String[] { "AAA", "ABA", "AAA" });
     recipe.setIngredient('A', Material.OBSIDIAN);
     recipe.setIngredient('B', Material.ENDER_PEARL);
     getServer().addRecipe(recipe);

 

Niby po co? Chyba dobrze, że jest w innej klasie bo nie ma syfu i kod da się czytać.

Podczas początku z nauki z programowanie natknąłem się o bardzo mądre słowa

 

Pamiętaj, że Twój kod będzie mógł być czytany, a nawet edytowany przez innych ludzi i nie koniecznie w rozumiejących Twojego języka <polski red.>

#AntyBlezur


Opublikowano

Sorry, nie doczytałem pytania, spróbuj zamiast:

 

getServer().getPluginManager().registerEvents(new Crafting(), this);

 

to:

 

Bukkit.getServer().getPluginManager().registerEvents(new Crafting(), this);

 

Wydaje mi się, że recepture rejestruje się w onEnable.

Pisze pluginy na zamówienie ! Skype: elfusion200

Opublikowano

Sorry, nie doczytałem pytania, spróbuj zamiast:

 

getServer().getPluginManager().registerEvents(new Crafting(), this);
 

to:

 

Bukkit.getServer().getPluginManager().registerEvents(new Crafting(), this);
 

Wydaje mi się, że recepture rejestruje się w onEnable.

 

XDDDD rly? Po co Ci klasa Bukkit w głównej klasie pluginu (która dziedziczy zresztą JavaPlugin) skoro tam jest getServer()? XDDD

Tak....., craftingi rejestruje się w onEnable()... można, ale nie trzeba. addRecipe(...) to metoda dodająca do serwera nowy crafting, ale przecież on nie musi być wykonywany w onEnable()... możesz go też dać nawet w klasie.

 

Nie potrzebne jest w ogóle rejestracja listenerów w klasie Crafting. Crafting nie potrzebuje implementacji Listener. Wystarczy, że stworzysz nowy obiekt Crafting i wykonasz metodę crafting().

 

I jeszcze ta Twoja sygnatura XDD

#AntyBlezur


Opublikowano

Myśle, że to powinno wyglądać tak:

 

pl.jakispackage.plugin

import org.bukkit.plugin.PluginDescriptionFile;
import org.bukkit.plugin.java.JavaPlugin;


public class Main extends JavaPlugin {
    
    public final Logger logger = Logger.getLogger("Minecraft");
    
    @Override
    public void onDisable() {
        PluginDescriptionFile pdfFile = this.getDescription();
        this.logger.info(pdfFile.getName() + " zostal wylaczony !");
    }
    
    @Override
    public void onEnable() {
        PluginDescriptionFile pdfFile = this.getDescription();
        this.logger.info(pdfFile.getName() + " Wersja " + pdfFile.getVersion() + " zostal wlaczony !");
        getCommand("fly").setExecutor(new FLY());
        getCommand("gm").setExecutor(new GM());
        getCommand("god").setExecutor(new GOD());
        getServer().getPluginManager().registerEvents(new Crafting(), this);
       registerRecipe();
        
    }
    
    public void registerRecipe(){
        ItemStack ec = new ItemStack(Material.ENDER_CHEST, 1);
        ItemMeta mec = ec.getItemMeta();
        mec.setDisplayName("§5EnderChest");
        ec.setItemMeta(mec);
        
     ShapedRecipe recipe = new ShapedRecipe(ec);
     recipe.shape(new String[] { "AAA", "ABA", "AAA" });
     recipe.setIngredient('A', Material.OBSIDIAN);
     recipe.setIngredient('B', Material.ENDER_PEARL);
     getServer().addRecipe(recipe);
    }

}

Pisze pluginy na zamówienie ! Skype: elfusion200

Opublikowano

 

Myśle, że to powinno wyglądać tak:

pl.jakispackage.plugin

import org.bukkit.plugin.PluginDescriptionFile;
import org.bukkit.plugin.java.JavaPlugin;


public class Main extends JavaPlugin {
    
    public final Logger logger = Logger.getLogger("Minecraft");
    
    @Override
    public void onDisable() {
        PluginDescriptionFile pdfFile = this.getDescription();
        this.logger.info(pdfFile.getName() + " zostal wylaczony !");
    }
    
    @Override
    public void onEnable() {
        PluginDescriptionFile pdfFile = this.getDescription();
        this.logger.info(pdfFile.getName() + " Wersja " + pdfFile.getVersion() + " zostal wlaczony !");
        getCommand("fly").setExecutor(new FLY());
        getCommand("gm").setExecutor(new GM());
        getCommand("god").setExecutor(new GOD());
        getServer().getPluginManager().registerEvents(new Crafting(), this);
       registerRecipe();
        
    }
    
    public void registerRecipe(){
        ItemStack ec = new ItemStack(Material.ENDER_CHEST, 1);
        ItemMeta mec = ec.getItemMeta();
        mec.setDisplayName("§5EnderChest");
        ec.setItemMeta(mec);
        
     ShapedRecipe recipe = new ShapedRecipe(ec);
     recipe.shape(new String[] { "AAA", "ABA", "AAA" });
     recipe.setIngredient('A', Material.OBSIDIAN);
     recipe.setIngredient('B', Material.ENDER_PEARL);
     getServer().addRecipe(recipe);
    }

}

 

Masakra co za debil. Nie znasz się to się nie wypowiadaj!

Opublikowano

@Mickey2 napisz lepiej ;3, raport poszedł. Ty pewnie wjebałbyś 100 obiektów ?

 

@AntyWarn Małe uwagi:

- Klasy nazywamy wielkimi literami

- W tej 2 klasie zabrakło klamer(Chyba, że źle skopiowałeś)

 

Ja receptury rejestruje tak:

 

public void onEnable(){
     ItemStack resultitem = new ItemStack(Material.DIRT);
     ItemMeta resultitemim = resultitem.getItemMeta();
     resultitemim.setDisplayName(ChatColor.GOLD +"Gowno");
     resultitem.setItemMeta(resultitemim);
     
     ShapedRecipe newrecipe = new ShapedRecipe(resultitem);
     newrecipe.shape(new String[] { "AAA", "AAA", "AAA" });
     newrecipe.setIngredient('A', Material.BEDROCK);
     getServer().addRecipe(newrecipe);
}

Pisze pluginy na zamówienie ! Skype: elfusion200

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...