Pomoc s pluginem prosím :D

Pokec o čemkoliv ostatním
Message
Autor
onemoreplays
Příspěvky: 3
Registrován: 28 led 2017, 14:54
Reputation: 0

Pomoc s pluginem prosím :D

#1 Příspěvekod onemoreplays » 21 kvě 2017, 20:05

Ahoj lidi,
pracuji na pluginu pro svůj server ale mám problémy a nevím jak to mám vyřešit..

Toto je error z konzole
  1. [19:59:20 WARN]: [KiwiClass] Task #14 for KiwiClass v1.0 generated an exception
  2. java.lang.IllegalArgumentException: Plugin cannot be null
  3.         at org.apache.commons.lang.Validate.notNull(Validate.java:192) ~[spigot.jar:git-Spigot-21fe707-e1ebe52]
  4.         at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftScheduler.validate(CraftScheduler.java:397) ~[spigot.jar:git-Spigot-21fe707-e1ebe52]
  5.         at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftScheduler.runTaskTimer(CraftScheduler.java:123) ~[spigot.jar:git-Spigot-21fe707-e1ebe52]
  6.         at me.onemoreplays.EventHandle$1.run(EventHandle.java:47) ~[?:?]
  7.         at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftTask.run(CraftTask.java:71) ~[spigot.jar:git-Spigot-21fe707-e1ebe52]
  8.         at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:350) [spigot.jar:git-Spigot-21fe707-e1ebe52]
  9.         at net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:723) [spigot.jar:git-Spigot-21fe707-e1ebe52]
  10.         at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:374) [spigot.jar:git-Spigot-21fe707-e1ebe52]
  11.         at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:654) [spigot.jar:git-Spigot-21fe707-e1ebe52]
  12.         at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:557) [spigot.jar:git-Spigot-21fe707-e1ebe52]
  13.         at java.lang.Thread.run(Unknown Source) [?:1.8.0_131]


Toto je EventHandler (Main Class)
  1. package me.onemoreplays;
  2.  
  3. import org.bukkit.Bukkit;
  4. import org.bukkit.ChatColor;
  5. import org.bukkit.entity.Player;
  6. import org.bukkit.permissions.Permission;
  7. import org.bukkit.plugin.Plugin;
  8. import org.bukkit.plugin.java.JavaPlugin;
  9. import org.bukkit.potion.Potion;
  10. import org.bukkit.potion.PotionEffect;
  11. import org.bukkit.potion.PotionEffectType;
  12. import org.bukkit.potion.PotionType;
  13.  
  14. public class EventHandle extends JavaPlugin{
  15.    
  16.     public Permission warriorPex = new Permission("kclass.warrior");
  17.     public Permission explorerPex = new Permission("kclass.explorer");
  18.     public Permission roguePex = new Permission("kclass.rogue");
  19.     public Permission healerPex = new Permission("kclass.healer");
  20.    
  21.    
  22.     @Override
  23.     public void onEnable(){
  24.         getServer().getPluginManager().registerEvents(new warrior(this), this);
  25.         getServer().getPluginManager().registerEvents(new explorer(this), this);
  26.         getServer().getPluginManager().registerEvents(new healer(this), this);
  27.         getServer().getPluginManager().registerEvents(new rogue(this), this);
  28.        
  29.        
  30.         Bukkit.getScheduler().runTaskTimer(this, new Runnable() {
  31.            
  32.             private Plugin plugin;
  33.  
  34.             @Override
  35.             public void run() {
  36.                 Potion potion = new Potion(PotionType.STRENGTH, 2);
  37.                 for (Player p : Bukkit.getOnlinePlayers()) {
  38.                     if(p.hasPermission("kclass.warrior")){
  39.                         }
  40.                         if(p.getCanPickupItems()){
  41.                               p.getPlayer().getInventory().addItem(potion.toItemStack(5));
  42.                               p.sendMessage(ChatColor.AQUA + "You has recieved your potions");
  43.                               p.sendMessage(ChatColor.GREEN + "!REMEMBER!");
  44.                               p.sendMessage(ChatColor.RED + "Next potions will be recieved in " + ChatColor.GOLD + "35" + ChatColor.RED + " minutes!");
  45.                     }
  46.                         else{
  47.                             Bukkit.getScheduler().runTaskTimer(this.plugin, new Runnable() {
  48.                                 private Plugin plugin2;
  49.  
  50.                                 @Override
  51.                                 public void run() {
  52.                                     for (Player p : Bukkit.getOnlinePlayers()) {
  53.                                         if(p.hasPermission("kclass.warrior")){
  54.                                             if(p.getCanPickupItems()){
  55.                                                   p.getPlayer().getInventory().addItem(potion.toItemStack(5));
  56.                                                   p.sendMessage(ChatColor.AQUA + "You has recieved your potions");
  57.                                                   p.sendMessage(ChatColor.GREEN + "!REMEMBER!");
  58.                                                   p.sendMessage(ChatColor.RED + "Next potions will be recieved in " + ChatColor.GOLD + "35" + ChatColor.RED + " minutes!");
  59.                                             }
  60.                                             else{
  61.                                                 p.sendMessage(ChatColor.RED + "Your inventory is full. Now we are giving you" + ChatColor.GOLD + " 20 " + ChatColor.RED + "seconds to clean one slot.");
  62.                                                 p.sendMessage(ChatColor.RED +  "If you will not do it your potions will be lost!");
  63.                                                 Bukkit.getScheduler().runTaskTimer(this.plugin2, new Runnable() {
  64.                                                     @Override
  65.                                                     public void run() {
  66.                                                         for (Player p : Bukkit.getOnlinePlayers()) {
  67.                                                                 if(p.getCanPickupItems()){
  68.                                                                       p.getPlayer().getInventory().addItem(potion.toItemStack(5));
  69.                                                                       p.sendMessage(ChatColor.AQUA + "You has recieved your potions");
  70.                                                                       p.sendMessage(ChatColor.GREEN + "!REMEMBER!");
  71.                                                                       p.sendMessage(ChatColor.RED + "Next potions will be recieved in " + ChatColor.GOLD + "35" + ChatColor.RED + " minutes!");
  72.                                                                         }
  73.                                                                       else{
  74.                                                                         p.sendMessage(ChatColor.DARK_RED + "Your potions has been lost!");
  75.                                                                         p.sendMessage(ChatColor.GREEN + "!REMEMBER!");
  76.                                                                         p.sendMessage(ChatColor.RED + "Next potions will be recieved in " + ChatColor.GOLD + "35" + ChatColor.RED + " minutes!");
  77.                                                         }}}}, 200L, 200L);}
  78.                                             }
  79.                                         }
  80.                                     }}, 100L, 100L);
  81.                                 }
  82.                             }
  83.                         }
  84.                         }, 60L, 60L);
  85.         Bukkit.getScheduler().runTaskTimer(this, new Runnable() {
  86.             @Override
  87.             public void run() {
  88.                 for (Player p : Bukkit.getOnlinePlayers()) {
  89.                     if(p.hasPermission("kclass.healer")){
  90.                         p.addPotionEffect(new PotionEffect(PotionEffectType.REGENERATION, Integer.MAX_VALUE, 1));
  91.                 }
  92.               }
  93.             }
  94.  
  95.         }, 200L, 200L);
  96.     }
  97.     @Override
  98.     public void onDisable(){
  99.     }
  100.    
  101. }


A toto je class s věcmi které má postava s permisí umět..
Code: [Vybrat vše] [Expand/Collapse] [Download] (Untitled.class)
  1. package me.onemoreplays;
  2.  
  3.  
  4. import org.bukkit.ChatColor;
  5. import org.bukkit.Material;
  6. import org.bukkit.entity.Player;
  7. import org.bukkit.event.EventHandler;
  8. import org.bukkit.event.Listener;
  9. import org.bukkit.event.entity.EntityDamageByEntityEvent;
  10. import org.bukkit.event.player.PlayerJoinEvent;
  11. import org.bukkit.event.player.PlayerRespawnEvent;
  12. import org.bukkit.inventory.ItemStack;
  13. import org.bukkit.potion.Potion;
  14. import org.bukkit.potion.PotionEffect;
  15. import org.bukkit.potion.PotionEffectType;
  16. import org.bukkit.potion.PotionType;
  17.  
  18. public class warrior implements Listener{
  19.     EventHandle pl;
  20.     public warrior(EventHandle plugin){
  21.         this.pl = plugin;
  22.     }
  23.     @EventHandler
  24.     public void join(PlayerJoinEvent join){
  25.         Player player = join.getPlayer();
  26.             player.sendMessage( ChatColor.GREEN + "Welcome back, we hope you are ready for fight");
  27.     }
  28.    
  29.     @EventHandler
  30.     public void respawn(PlayerRespawnEvent e){
  31.     Player player = e.getPlayer();
  32.     Potion potion = new Potion(PotionType.INVISIBILITY);
  33.     Potion potion2 = new Potion(PotionType.STRENGTH, 2);
  34.     Potion potion3 = new Potion(PotionType.SPEED);
  35.     ItemStack itemstack = new ItemStack(Material.STONE_SWORD, 1);
  36.         if (player.hasPermission("kclass.warrior")){
  37.             player.setMaxHealth(30);
  38.             player.sendMessage(ChatColor.LIGHT_PURPLE + "We can see you has died, so here you have something to start with");
  39.             player.getPlayer().getInventory().addItem(potion.toItemStack(1));
  40.             player.getPlayer().getInventory().addItem(potion2.toItemStack(2));
  41.             player.getPlayer().getInventory().addItem(potion3.toItemStack(1));
  42.             player.getPlayer().getInventory().addItem(itemstack);
  43.            
  44.         }
  45.         if (!player.hasPermission("kclass.warrior")){
  46.             player.setMaxHealth(20);
  47.            
  48.         }
  49.     }
  50.    
  51.     @EventHandler
  52.     public void fight(EntityDamageByEntityEvent e){
  53.         if(e.getDamager() instanceof Player) {
  54.             Player player = (Player) e.getDamager();
  55.            
  56.             if (player.hasPermission("kclass.warrior")) {
  57.                  player.setMaxHealth(30);
  58.                  player.addPotionEffect(new PotionEffect(PotionEffectType.INCREASE_DAMAGE, Integer.MAX_VALUE, 0));
  59.             }  
  60.                 if (!player.hasPermission("kclass.warrior")){
  61.                     player.setMaxHealth(20);
  62.                     player.removePotionEffect(PotionEffectType.INCREASE_DAMAGE);
  63.             }
  64.         }
  65.     }
  66. }

A o co jde? Po připsání [spoiler]
  1.         Bukkit.getScheduler().runTaskTimer(this, new Runnable() {
  2.            
  3.             private Plugin plugin;
  4.  
  5.             @Override
  6.             public void run() {
  7.                 Potion potion = new Potion(PotionType.STRENGTH, 2);
  8.                 for (Player p : Bukkit.getOnlinePlayers()) {
  9.                     if(p.hasPermission("kclass.warrior")){
  10.                         }
  11.                         if(p.getCanPickupItems()){
  12.                               p.getPlayer().getInventory().addItem(potion.toItemStack(5));
  13.                               p.sendMessage(ChatColor.AQUA + "You has recieved your potions");
  14.                               p.sendMessage(ChatColor.GREEN + "!REMEMBER!");
  15.                               p.sendMessage(ChatColor.RED + "Next potions will be recieved in " + ChatColor.GOLD + "35" + ChatColor.RED + " minutes!");
  16.                     }
  17.                         else{
  18.                             Bukkit.getScheduler().runTaskTimer(this.plugin, new Runnable() {
  19.                                 private Plugin plugin2;
  20.  
  21.                                 @Override
  22.                                 public void run() {
  23.                                     for (Player p : Bukkit.getOnlinePlayers()) {
  24.                                         if(p.hasPermission("kclass.warrior")){
  25.                                             if(p.getCanPickupItems()){
  26.                                                   p.getPlayer().getInventory().addItem(potion.toItemStack(5));
  27.                                                   p.sendMessage(ChatColor.AQUA + "You has recieved your potions");
  28.                                                   p.sendMessage(ChatColor.GREEN + "!REMEMBER!");
  29.                                                   p.sendMessage(ChatColor.RED + "Next potions will be recieved in " + ChatColor.GOLD + "35" + ChatColor.RED + " minutes!");
  30.                                             }
  31.                                             else{
  32.                                                 p.sendMessage(ChatColor.RED + "Your inventory is full. Now we are giving you" + ChatColor.GOLD + " 20 " + ChatColor.RED + "seconds to clean one slot.");
  33.                                                 p.sendMessage(ChatColor.RED +  "If you will not do it your potions will be lost!");
  34.                                                 Bukkit.getScheduler().runTaskTimer(this.plugin2, new Runnable() {
  35.                                                     @Override
  36.                                                     public void run() {
  37.                                                         for (Player p : Bukkit.getOnlinePlayers()) {
  38.                                                                 if(p.getCanPickupItems()){
  39.                                                                       p.getPlayer().getInventory().addItem(potion.toItemStack(5));
  40.                                                                       p.sendMessage(ChatColor.AQUA + "You has recieved your potions");
  41.                                                                       p.sendMessage(ChatColor.GREEN + "!REMEMBER!");
  42.                                                                       p.sendMessage(ChatColor.RED + "Next potions will be recieved in " + ChatColor.GOLD + "35" + ChatColor.RED + " minutes!");
  43.                                                                         }
  44.                                                                       else{
  45.                                                                         p.sendMessage(ChatColor.DARK_RED + "Your potions has been lost!");
  46.                                                                         p.sendMessage(ChatColor.GREEN + "!REMEMBER!");
  47.                                                                         p.sendMessage(ChatColor.RED + "Next potions will be recieved in " + ChatColor.GOLD + "35" + ChatColor.RED + " minutes!");
  48.                                                         }}}}, 200L, 200L);}
  49.                                             }
  50.                                         }
  51.                                     }}, 100L, 100L);
  52.                                 }
  53.                             }
  54.                         }
  55.                         }, 60L, 60L);

Mi plugin hází errory které jsem uvedl výše. Nevíte jak to opravit? Děkuji,
onemoreplays :)

Uživatelský avatar
Aishak
Příspěvky: 431
Registrován: 03 čer 2014, 15:02
Reputation: 1

Re: Pomoc s pluginem prosím :D

#2 Příspěvekod Aishak » 21 kvě 2017, 22:19

Kód: Vybrat vše

Plugin cannot be null


snad ti to napoví :)

Mike8748
Příspěvky: 823
Registrován: 30 bře 2014, 10:05
Reputation: 28

Re: Pomoc s pluginem prosím :D

#3 Příspěvekod Mike8748 » 22 kvě 2017, 10:39

při vytváření timerů přes scheduler tam předáváš jako argument this.plugin a this.plugin2... jenže v těch proměných nemáš nic uložené, nikde do plugin a plugin2 nepřiřazuješ žádnou hodnotu


Zpět na „Off topic“

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 14 hostů