Stránka 1 z 1

Java - Plugin

Napsal: 02 bře 2015, 13:14
od kamikatze
Server: 93.91.250.138:27055

Dobrý den, Ahoj !
Zkouším si tak něco v Eclipsu s pluginama a objevil se problém, kde mi to eclipse definuje takto :
"The constructor ItemStack(Material) is undefined"
Kod:

Kód: Vybrat vše

package me.natan;

import me.natan.EventHandle;
import net.minecraft.server.v1_8_R1.ItemStack;

import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.inventory.PlayerInventory;

public class PlayerListener implements Listener {

   public PlayerListener(EventHandle plugin) {
      plugin.getServer().getPluginManager().registerEvents(this, plugin);
   }
   
   @EventHandler
   public static void onJoin(org.bukkit.event.player.PlayerJoinEvent event) {
      Player player = event.getPlayer();
      player.sendMessage("Zkouska");
      PlayerInventory inventory = player.getInventory();
      ItemStack itemstack = new ItemStack(Material.WATCH);
   }

}

Re: Java - Plugin

Napsal: 02 bře 2015, 13:39
od Hanakocz
moc tomu nerozumím, ale nepotřebuješ tam nadefinovat ten materiál?

Re: Java - Plugin

Napsal: 02 bře 2015, 13:49
od kamikatze
Zřejmě ano, jenže jak ?

Re: Java - Plugin

Napsal: 02 bře 2015, 14:21
od Mike8748
problém bych videl v tom co importuješ na začátku

Kód: Vybrat vše

import net.minecraft.server.v1_8_R1.ItemStack;

nejspíš nebude to pravý co chceš, spíš

Kód: Vybrat vše

import org.bukkit.inventory.ItemStack

Re: Java - Plugin

Napsal: 02 bře 2015, 16:18
od kamikatze
Děkuji, to se vyřešilo, jenže když když to savnu tak zase hláška : "The value of the local variable inventory is not used"
Zkoušel jsem to ignorovat, je to jenom varování, jenže se neudálo co se má stát.. Nenapsalo to nic do chatu, ani mi to nedalo hodiny..
Dávám sem všechny kody co obsahuje ten plugin..
1. - PlayerListener

Kód: Vybrat vše

package me.natan;

import me.natan.EventHandle;
import org.bukkit.inventory.ItemStack;

import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.inventory.PlayerInventory;

public class PlayerListener implements Listener {

   public PlayerListener(EventHandle plugin) {
      plugin.getServer().getPluginManager().registerEvents(this, plugin);
   }
   
   @EventHandler
   public static void onJoin(org.bukkit.event.player.PlayerJoinEvent event) {
      Player player = event.getPlayer();
      player.sendMessage("Zkouska");
      PlayerInventory inventory = player.getInventory();
      ItemStack itemstack = new ItemStack(Material.WATCH,1);
   }

}

2. - EventHandle

Kód: Vybrat vše

package me.natan;

import me.natan.PlayerListener;

import org.bukkit.plugin.java.JavaPlugin;

public class EventHandle extends JavaPlugin {

   public void onEnable() {
      new PlayerListener(this);
   }
   
   public void onDisable() {
      getLogger().info("Plugin deaktivován!");
   }

}

3. - plugin.java

Kód: Vybrat vše

package me.natan;

import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;

public class plugin extends JavaPlugin {
   
   public void onEnable() {
      System.out.println("Plugin Lobby aktivovany!");
   }
   public void onDisable() {
      System.out.println("Plugin Lobby deaktivovany!");
   }
   
   public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args ) {
      if (cmd.getName().equalsIgnoreCase("lobby") && sender instanceof Player) {
         Player player = (Player) sender;
         player.sendMessage(ChatColor.BLUE + "Teleportuji te na lobby");
         player.setHealth(20);
         player.setFoodLevel(20);
         return true;
      }
      return false;
   }
}

4. - plugin.yml (Kdyby náhodou to dělala i tato "prkotina"

Kód: Vybrat vše

name: Lobby
main: me.natan.plugin
version: 1.0
commands:
   lobby:
      description: Blank description.
      usage: /<command>

Re: Java - Plugin

Napsal: 02 bře 2015, 17:29
od Dart
1) Problem co vidim je ten ze neregistrujes eventy.

Re: Java - Plugin

Napsal: 02 bře 2015, 17:31
od kamikatze
Registruji..

Kód: Vybrat vše

      plugin.getServer().getPluginManager().registerEvents(this, plugin);

Nebo jak se to myslí ?

Re: Java - Plugin

Napsal: 02 bře 2015, 17:38
od Dart
Oh, sorry nevsiml sem si, ze to mas v tom listeneru a pak v OnEnable vytvaris instanci. Doporucujito zjednodusit tak, ze to das do OnEnable pro jednoduchost pokud to takhle nemas schvalne a pri Disable zase eventy odregistrovat.

Kdybych byl doma kouknul bych do sveho IDE kde je chyba. Zkusil bych to zjednodusit mas to takove zvlastne napsane.

Re: Java - Plugin

Napsal: 02 bře 2015, 17:41
od DenOwq
plugin.java

Kód: Vybrat vše

package me.natan;

import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;

public class plugin extends JavaPlugin {
   
   public void onEnable() {
      this.getPluginManager().registerEvents(new PlayerListener());
      System.out.println("Plugin Lobby aktivovany!");
   }
   public void onDisable() {
      System.out.println("Plugin Lobby deaktivovany!");
   }
   
   public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args ) {
      if (cmd.getName().equalsIgnoreCase("lobby") && sender instanceof Player) {
         Player player = (Player) sender;
         player.sendMessage(ChatColor.BLUE + "Teleportuji te na lobby");
         player.setHealth(20);
         player.setFoodLevel(20);
         return true;
      }
      return false;
   }
}

PlayerListener.java

Kód: Vybrat vše

package me.natan;

import me.natan.EventHandle;
import org.bukkit.inventory.ItemStack;

import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.inventory.PlayerInventory;

public class PlayerListener implements Listener {
   
   @EventHandler
   public static void onJoin(org.bukkit.event.player.PlayerJoinEvent event) {
      Player player = event.getPlayer();
      player.sendMessage("Zkouska");
      PlayerInventory inventory = player.getInventory();
      ItemStack itemstack = new ItemStack(Material.WATCH,1);
   }

}

EventHandler.java - vymazej

!! REJPÁNÍ !!
PS: v javě se nepíší malé názvy tříd.
PSS: server vidí packages jako složky, když v každém pluginu použiješ me.natan tak ti plugin hodí chybu, používej me.natan.<jmenoPlugonu>

Re: Java - Plugin

Napsal: 02 bře 2015, 17:48
od Dart
A pokud chces aby to dalo hodiny nemuzes tam jen vytvaret ItemStack musis jeste pridat item do inventare.
https://hub.spigotmc.org/javadocs/bukki ... ntory.html