Function not seeming to exist

Discussion in 'Plugin Development' started by MinecraftBoxGut, Jul 16, 2016.

Thread Status:
Not open for further replies.
  1. Offline

    MinecraftBoxGut

    I'm doing some Sql for my plugin but when I try to run a function it doesn't work here's the code:

    Code:
    package main.mcbox.pvp;
    
    
    
    
    import java.util.ArrayList;
    import java.util.Dictionary;
    import java.util.HashMap;
    import java.util.Hashtable;
    
    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.GameMode;
    import org.bukkit.Location;
    import org.bukkit.Material;
    import org.bukkit.World;
    import org.bukkit.WorldCreator;
    import org.bukkit.block.Sign;
    import org.bukkit.enchantments.Enchantment;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.EventPriority;
    import org.bukkit.event.Listener;
    import org.bukkit.event.block.Action;
    import org.bukkit.event.block.BlockBreakEvent;
    import org.bukkit.event.block.SignChangeEvent;
    import org.bukkit.event.entity.EntityDamageByEntityEvent;
    import org.bukkit.event.entity.EntityDamageEvent;
    import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
    import org.bukkit.event.entity.ExplosionPrimeEvent;
    import org.bukkit.event.entity.PlayerDeathEvent;
    import org.bukkit.event.entity.ProjectileLaunchEvent;
    import org.bukkit.event.player.PlayerInteractEntityEvent;
    import org.bukkit.event.player.PlayerInteractEvent;
    import org.bukkit.event.player.PlayerJoinEvent;
    import org.bukkit.event.player.PlayerQuitEvent;
    import org.bukkit.inventory.ItemStack;
    import org.bukkit.plugin.Plugin;
    import org.bukkit.plugin.java.JavaPlugin;
    import org.bukkit.scoreboard.DisplaySlot;
    import org.bukkit.scoreboard.Objective;
    import org.bukkit.scoreboard.Score;
    import org.bukkit.scoreboard.Scoreboard;
    import org.bukkit.scoreboard.ScoreboardManager;
    
    import com.coloredcarrot.api.sidebar.Sidebar;
    import com.coloredcarrot.api.sidebar.SidebarString;
    import java.sql.*;
    import com.sleelin.pvptoggle.PvPToggle;
    
    
    public class Main extends JavaPlugin implements Listener {
       
        private static Connection connection;
        public void onEnable() {
            
            Bukkit.getServer().getPluginManager().registerEvents(this, this);
            
            }
        public void onDisable() {
            try {
                if (connection != null || !connection.isClosed()) {
                    connection.close();
                }
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        public synchronized static void openConnection() {
            try {
                connection = DriverManager.getConnection("jdbc:mysql://*" , "*", "*");
            }
            catch (Exception e) {
                e.printStackTrace();
            }
        }
         public synchronized static boolean playerDataContainsPlayer(Player p) {
                 try {
                     PreparedStatement sql = connection.prepareStatement("SELECT * FROM `Pvp` WHERE uuid=?;");
                     sql.setString(1, p.getUniqueId().toString() );
                     ResultSet r = sql.executeQuery();
                     boolean player = r.next();
                     sql.close();
                     r.close();
                     return player;
                 }
                 catch (Exception e) {
                     e.printStackTrace();
                     return false;
                 }
                
             }
        public synchronized static void closeConnection() {
            try {
                connection.close();
            }
            catch (Exception e) {
               
            }
        }
       
        Dictionary<Player, Player> dict = new Hashtable<Player, Player>();
         
        
         
        
        @EventHandler()
        public void playerjoin(PlayerJoinEvent e) {
            Player p = e.getPlayer();
            e.getPlayer().setExhaustion(0);
            e.getPlayer().setSaturation(10);
            e.getPlayer().setExp(0);
            e.getPlayer().setFireTicks(0);
            e.getPlayer().setHealth(20);
            e.getPlayer().setFoodLevel(20);
            Location loc = new Location(getServer().getWorld("1v1s") ,0, 22 , 0);
            e.getPlayer().setBedSpawnLocation(loc, true);
            e.getPlayer().teleport(loc);
            e.getPlayer().getInventory().clear();
            ItemStack blaze = new ItemStack(Material.BLAZE_ROD,1);
            e.getPlayer().getInventory().addItem(blaze);
            SidebarString mySidebarString = new SidebarString("Welcome " + ChatColor.BOLD + p.getName(),ChatColor.RED + "W" +ChatColor.RESET + "elcome " + ChatColor.BOLD + p.getName(),ChatColor.RED + "We" +ChatColor.RESET + "lcome " + ChatColor.BOLD + p.getName(),ChatColor.RED + "Wel" +ChatColor.RESET + "come " + ChatColor.BOLD + p.getName(),ChatColor.RED + "Welc" +ChatColor.RESET + "lcome " + ChatColor.BOLD + p.getName(),ChatColor.RED + "Welco" +ChatColor.RESET + "me " + ChatColor.BOLD + p.getName(),ChatColor.RED + "Welcom" +ChatColor.RESET + "e " + ChatColor.BOLD + p.getName(),ChatColor.RED + "Welcome" +ChatColor.RESET + " " + ChatColor.BOLD + p.getName());
            
            SidebarString si = new SidebarString("                ");
            Sidebar mySidebar = new Sidebar(ChatColor.GOLD + "PVP", this, 10, si,mySidebarString);
            mySidebar.showTo(p);
        }
         
         
               
       
         @EventHandler()
    public void playerOneCl(PlayerInteractEntityEvent e) {
             if (e.getPlayer().getInventory().getItemInHand().getType() == Material.BLAZE_ROD) {
               
                 e.getPlayer().sendMessage("Starting...");
                 if(e.getRightClicked() instanceof Player) {
                     if (dict.get(e.getRightClicked())== null) {
                 Player p = (Player) e.getRightClicked();
                 p.sendMessage(ChatColor.GREEN + "" + e.getPlayer().getName() + "has started a duel");
                 Title title = new Title("You're dueling with " , p.getName(),4,5,4);
                 title.setTitleColor(ChatColor.RED);
                 title.setSubtitleColor(ChatColor.GREEN);
    
                 title.send(e.getPlayer());
                 
                 e.getPlayer().sendMessage(ChatColor.GOLD + "Duel started");
                 for (Player a : getServer().getOnlinePlayers())
                  {
                    if (!a.getName().equals(p.getName()) && !a.getName().equals(e.getPlayer().getName())) {
                      p.hidePlayer(a);
                      e.getPlayer().hidePlayer(a);
                   
                    }
                    }
                 
            
    
                
                 Player player = e.getPlayer();
                 player.getInventory().clear();
                 ItemStack a = new ItemStack(Material.STONE_SWORD);
                 a.addUnsafeEnchantment(Enchantment.DURABILITY, 20);
                 ItemStack b = new ItemStack(Material.FISHING_ROD);
                 b.addUnsafeEnchantment(Enchantment.DURABILITY, 20);
                 ItemStack c = new ItemStack(Material.FLINT_AND_STEEL);
                 c.addUnsafeEnchantment(Enchantment.DURABILITY, 20);
                 ItemStack d = new ItemStack(Material.BOW);
                 d.addUnsafeEnchantment(Enchantment.DURABILITY, 20);
                 ItemStack ec = new ItemStack(Material.ARROW,8);
                 ItemStack j = new ItemStack(Material.LEATHER_HELMET);
                 j.addUnsafeEnchantment(Enchantment.DURABILITY, 20);
                 ItemStack x = new ItemStack(Material.IRON_CHESTPLATE);
                 x.addUnsafeEnchantment(Enchantment.DURABILITY, 20);
                 ItemStack y = new ItemStack(Material.GOLD_LEGGINGS);
                 y.addUnsafeEnchantment(Enchantment.DURABILITY, 20);
                 ItemStack z = new ItemStack(Material.DIAMOND_BOOTS);
                 z.addUnsafeEnchantment(Enchantment.DURABILITY, 20);
                 player.getInventory().addItem(a);
                 player.getInventory().addItem(b);
                 player.getInventory().addItem(c);
                 player.getInventory().addItem(d);
                 player.getInventory().addItem(ec);
                 player.getInventory().setHelmet(j);
                 player.getInventory().setChestplate(x);
                 player.getInventory().setLeggings(y);
                 player.getInventory().setBoots(z);
                 player.getInventory().addItem(new ItemStack(Material.COOKED_BEEF,8));
               
                 p.getInventory().clear();
                 ItemStack ab = new ItemStack(Material.STONE_SWORD);
                 ab.addUnsafeEnchantment(Enchantment.DURABILITY, 20);
                 ItemStack bb = new ItemStack(Material.FISHING_ROD);
                 bb.addUnsafeEnchantment(Enchantment.DURABILITY, 20);
                 ItemStack cb= new ItemStack(Material.FLINT_AND_STEEL);
                 cb.addUnsafeEnchantment(Enchantment.DURABILITY, 20);
                 ItemStack db = new ItemStack(Material.BOW);
                 db.addUnsafeEnchantment(Enchantment.DURABILITY, 20);
                 ItemStack ecb = new ItemStack(Material.ARROW,8);
                 ItemStack jb = new ItemStack(Material.LEATHER_HELMET);
                 jb.addUnsafeEnchantment(Enchantment.DURABILITY, 20);
                 ItemStack xb = new ItemStack(Material.IRON_CHESTPLATE);
                 xb.addUnsafeEnchantment(Enchantment.DURABILITY, 20);
                 ItemStack yb = new ItemStack(Material.GOLD_LEGGINGS);
                 yb.addUnsafeEnchantment(Enchantment.DURABILITY, 20);
                 ItemStack zb = new ItemStack(Material.DIAMOND_BOOTS);
                 zb.addUnsafeEnchantment(Enchantment.DURABILITY, 20);
                 p.getInventory().addItem(ab);
                 p.getInventory().addItem(bb);
                 p.getInventory().addItem(cb);
                 p.getInventory().addItem(db);
                 p.getInventory().addItem(ecb);
                 p.getInventory().setHelmet(jb);
                 p.getInventory().setChestplate(xb);
                 p.getInventory().setLeggings(yb);
                 p.getInventory().setBoots(zb);
                 p.getInventory().addItem(new ItemStack(Material.COOKED_BEEF,8));
                 Plugin PvPTogglePlugin = this.getServer().getPluginManager().getPlugin("PvPToggle");
                
                 if (PvPTogglePlugin != null){
                     PvPToggle pvptoggle = ((PvPToggle) PvPTogglePlugin).getHandler();
                     pvptoggle.setPlayerStatus(p, "1v1s", true);
                     pvptoggle.setPlayerStatus(player, "1v1s", true);
                 }
                 dict.put(p, player);
                 dict.put(player,p);
                 SidebarString mySidebarString = new SidebarString("Welcome " + ChatColor.BOLD + p.getName(),ChatColor.RED + "W" +ChatColor.RESET + "elcome " + ChatColor.BOLD + p.getName(),ChatColor.RED + "We" +ChatColor.RESET + "lcome " + ChatColor.BOLD + p.getName(),ChatColor.RED + "Wel" +ChatColor.RESET + "come " + ChatColor.BOLD + p.getName(),ChatColor.RED + "Welc" +ChatColor.RESET + "lcome " + ChatColor.BOLD + p.getName(),ChatColor.RED + "Welco" +ChatColor.RESET + "me " + ChatColor.BOLD + p.getName(),ChatColor.RED + "Welcom" +ChatColor.RESET + "e " + ChatColor.BOLD + p.getName(),ChatColor.RED + "Welcome" +ChatColor.RESET + " " + ChatColor.BOLD + p.getName());
                 SidebarString mySidebarString2 = new SidebarString("Welcome " + ChatColor.BOLD + e.getPlayer().getName(),ChatColor.RED + "W" +ChatColor.RESET + "elcome " + ChatColor.BOLD + e.getPlayer().getName(),ChatColor.RED + "We" +ChatColor.RESET + "lcome " + ChatColor.BOLD + e.getPlayer().getName(),ChatColor.RED + "Wel" +ChatColor.RESET + "come " + ChatColor.BOLD + e.getPlayer().getName(),ChatColor.RED + "Welc" +ChatColor.RESET + "lcome " + ChatColor.BOLD + e.getPlayer().getName(),ChatColor.RED + "Welco" +ChatColor.RESET + "me " + ChatColor.BOLD + e.getPlayer().getName(),ChatColor.RED + "Welcom" +ChatColor.RESET + "e " + ChatColor.BOLD + e.getPlayer().getName(),ChatColor.RED + "Welcome" +ChatColor.RESET + " " + ChatColor.BOLD + e.getPlayer().getName());
                 SidebarString si = new SidebarString("                ");
                 SidebarString duelbar = new SidebarString("Dueling:" + e.getPlayer().getName());
                 SidebarString duelbar2 = new SidebarString("Dueling:" + p.getName());
                 Sidebar mySidebar = new Sidebar(ChatColor.GOLD + "PVP", this, 10, si,mySidebarString,si,duelbar);
                Sidebar duelsid = new Sidebar(ChatColor.GOLD + "PVP", this, 10, si,mySidebarString2,si,duelbar2);
                 mySidebar.showTo(p);
                 duelsid.showTo(e.getPlayer());
                 }
                     else {
                         e.getPlayer().sendMessage(ChatColor.GOLD + "This player is in a duel");
                     }
             }}}
            
           
         @EventHandler()
    public void playerDamage(PlayerDeathEvent event) {
            
      
                if (dict.get(event.getEntity())!= null) {
                 
                Player gahandor = dict.get(event.getEntity());
                dict.remove(gahandor);
                dict.remove(event.getEntity());
                for (Player p : getServer().getOnlinePlayers())
                {
                  gahandor.showPlayer(p);
                  event.getEntity().showPlayer(p);
                }
             
                gahandor.setHealth(20);
                gahandor.setExhaustion(20);
                gahandor.teleport(gahandor.getBedSpawnLocation());
                  gahandor.getInventory().clear();
                  gahandor.getInventory().setArmorContents(null);
                  gahandor.setHealth(10);
                  gahandor.setFireTicks(0);
              event.getEntity().setHealth(20);
              event.getEntity().setExhaustion(20);
              event.getEntity().teleport(event.getEntity().getBedSpawnLocation());
                event.getEntity().getInventory().clear();
                event.getEntity().getInventory().setArmorContents(null);
                event.getEntity().setHealth(10);
                event.getEntity().setFireTicks(0);
             
                Plugin PvPTogglePlugin = this.getServer().getPluginManager().getPlugin("PvPToggle");
                if (PvPTogglePlugin != null){
                     PvPToggle pvptoggle = ((PvPToggle) PvPTogglePlugin).getHandler();
                     pvptoggle.setPlayerStatus(gahandor, "1v1s", false);
                     pvptoggle.setPlayerStatus(event.getEntity(), "1v1s", false);
                 }
                event.getEntity().setHealth(10);
                event.getEntity().teleport(event.getEntity().getBedSpawnLocation());
                  event.getEntity().getInventory().clear();
                  event.getEntity().setHealth(20);
                  event.getEntity().getInventory().addItem(new ItemStack(Material.BLAZE_ROD));
                  event.getEntity().setFoodLevel(20);
                if (event.getEntity().getBedSpawnLocation().getBlock().getType() == Material.FIRE) {
                    event.getEntity().getBedSpawnLocation().getBlock().setType(Material.AIR);
                }
              gahandor.setHealth(10);
              gahandor.teleport(gahandor.getBedSpawnLocation());
                gahandor.getInventory().clear();
                gahandor.setHealth(20);
                gahandor.getInventory().addItem(new ItemStack(Material.BLAZE_ROD));
                gahandor.setFoodLevel(20);
              if (gahandor.getBedSpawnLocation().getBlock().getType() == Material.FIRE) {
                  gahandor.getBedSpawnLocation().getBlock().setType(Material.AIR);
              }
              Player p = event.getEntity();
              SidebarString mySidebarString = new SidebarString("Welcome " + ChatColor.BOLD + p.getName(),ChatColor.RED + "W" +ChatColor.RESET + "elcome " + ChatColor.BOLD + p.getName(),ChatColor.RED + "We" +ChatColor.RESET + "lcome " + ChatColor.BOLD + p.getName(),ChatColor.RED + "Wel" +ChatColor.RESET + "come " + ChatColor.BOLD + p.getName(),ChatColor.RED + "Welc" +ChatColor.RESET + "lcome " + ChatColor.BOLD + p.getName(),ChatColor.RED + "Welco" +ChatColor.RESET + "me " + ChatColor.BOLD + p.getName(),ChatColor.RED + "Welcom" +ChatColor.RESET + "e " + ChatColor.BOLD + p.getName(),ChatColor.RED + "Welcome" +ChatColor.RESET + " " + ChatColor.BOLD + p.getName());
             
              SidebarString si = new SidebarString("                ");
              Sidebar mySidebar = new Sidebar(ChatColor.GOLD + "PVP", this, 10, si,mySidebarString);
              mySidebar.showTo(p);       
             
                 
                }
              
                }
       
         public void addkill(Player p) {
             openConnection();
               try {
                   if playerDataContainsPlayer(p) {
                      
                   }
               }
               catch (Exception e) {
                  
               } finally {
                   closeConnection();
               }
      
              
              
                 }
           
         @EventHandler()
         public void leave(PlayerQuitEvent event) {
                 
           
                     if (dict.get(event.getPlayer())!= null) {
                      
                     Player gahandor = dict.get(event.getPlayer());
                     dict.remove(gahandor);
                     dict.remove(event.getPlayer());
                     for (Player p : getServer().getOnlinePlayers())
                     {
                       gahandor.showPlayer(p);
                       event.getPlayer().showPlayer(p);
                     }
                  
                     gahandor.setHealth(20);
                     gahandor.setExhaustion(20);
                     gahandor.teleport(gahandor.getBedSpawnLocation());
                       gahandor.getInventory().clear();
                       gahandor.getInventory().setArmorContents(null);
                       gahandor.setHealth(10);
                       gahandor.setFireTicks(0);
                   event.getPlayer().setHealth(20);
                   event.getPlayer().setExhaustion(20);
                   event.getPlayer().teleport(event.getPlayer().getBedSpawnLocation());
                     event.getPlayer().getInventory().clear();
                     event.getPlayer().getInventory().setArmorContents(null);
                     event.getPlayer().setHealth(10);
                     event.getPlayer().setFireTicks(0);
                  
                     Plugin PvPTogglePlugin = this.getServer().getPluginManager().getPlugin("PvPToggle");
                     if (PvPTogglePlugin != null){
                          PvPToggle pvptoggle = ((PvPToggle) PvPTogglePlugin).getHandler();
                          pvptoggle.setPlayerStatus(gahandor, "1v1s", false);
                          pvptoggle.setPlayerStatus(event.getPlayer(), "1v1s", false);
                      }
                     event.getPlayer().setHealth(10);
                     event.getPlayer().teleport(event.getPlayer().getBedSpawnLocation());
                       event.getPlayer().getInventory().clear();
                       event.getPlayer().setHealth(20);
                       event.getPlayer().getInventory().addItem(new ItemStack(Material.BLAZE_ROD));
                       event.getPlayer().setFoodLevel(20);
                     if (event.getPlayer().getBedSpawnLocation().getBlock().getType() == Material.FIRE) {
                         event.getPlayer().getBedSpawnLocation().getBlock().setType(Material.AIR);
                     }
                   gahandor.setHealth(10);
                   gahandor.teleport(gahandor.getBedSpawnLocation());
                     gahandor.getInventory().clear();
                     gahandor.setHealth(20);
                     gahandor.getInventory().addItem(new ItemStack(Material.BLAZE_ROD));
                     gahandor.setFoodLevel(20);
                   if (gahandor.getBedSpawnLocation().getBlock().getType() == Material.FIRE) {
                       gahandor.getBedSpawnLocation().getBlock().setType(Material.AIR);
                   }
                  ScoreboardManager manager = Bukkit.getScoreboardManager();
                 event.getPlayer().setScoreboard(manager.getNewScoreboard());
                 gahandor.setScoreboard(manager.getNewScoreboard());
                     }
                      
                        
                    
                     }
         @EventHandler()
    public void playerDamages(EntityDamageByEntityEvent event) {
           
                 if(!(event.getEntity() instanceof Player) && event.getEntity().getWorld().getName().equals("1v1s")) {
                    
                
                          event.setCancelled(true);
                       
                 }
               
             }
       
         @EventHandler()
    public void tnt(ExplosionPrimeEvent e) {
             if (e.getEntity().getWorld().getName().equals("1v1s")) {
                 e.setCancelled(true);
             }
         }
    
             }
    
           
        
         
    
    
    
        
                 
               
               
                 
           
               
    
    
     
  2. Which method? Is there a stacktrace? What exactly goes wrong? You need to give us a bit more information before we can help you. "it doesn't work" does generally not tell us anything about your problem.
     
  3. Offline

    mine-care

    We need more info... We can't magically come up with an answer to no question.
    Doesn't work means?
    The function is?
    Is there an error?


    1. Also is this code decompiled? Why do you open and close the connection constantly? Is that happening synchronously?
     
    Last edited: Jul 16, 2016
  4. Offline

    MinecraftBoxGut

    No sorry people I forgot to tell you the function its called playerDataContainsPlayer which checks if the players uuid is in the sql database and I cant access it in the addkill() function the reason it is opened and closed constantly is to close the sql statement and to save everything in case theirs a crash.
     
  5. Offline

    mine-care

    @MinecraftBoxGut ah you close the statement not the connection, I thought you closed the connection after each statement ;) but anyways don't leave exceptions unhandled, don't execute SQL stuff synchronously with the main thread, and you can always keep a file storing the data in case of a crash, instead of sending data to the SQL db constantly which comes with sideffects.
    I recomend you load the data when the player joins, and save them when they disconnect keeping backups in between just in case ;)
     
Thread Status:
Not open for further replies.

Share This Page