MFF

    Minecraft Forge France
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes
    • Forge Events
      • Automatique
      • Foncé
      • Clair
    • S'inscrire
    • Se connecter

    No suitable driver (mysql-connector)

    Planifier Épinglé Verrouillé Déplacé Résolu 1.7.x
    1.7.10
    15 Messages 2 Publieurs 666 Vues 2 Watching
    Charger plus de messages
    • Du plus ancien au plus récent
    • Du plus récent au plus ancien
    • Les plus votés
    Répondre
    • Répondre à l'aide d'un nouveau sujet
    Se connecter pour répondre
    Ce sujet a été supprimé. Seuls les utilisateurs avec les droits d'administration peuvent le voir.
    • robin4002R Hors-ligne
      robin4002 Moddeurs confirmés Rédacteurs Administrateurs
      dernière édition par

      @FullLager a dit dans No suitable driver (mysql-connector) :

      at fr.fulllager.elonia.jobs.JobsManager.hasAnAccount(JobsManager.java:29

      Tu peux envoyer la code de la classe JobsManager ?

      1 réponse Dernière réponse Répondre Citer 0
      • F Hors-ligne
        FullLager
        dernière édition par FullLager

        
        import java.sql.PreparedStatement;
        import java.sql.ResultSet;
        import java.sql.SQLException;
        
        import cpw.mods.fml.common.SidedProxy;
        import cpw.mods.fml.relauncher.Side;
        import cpw.mods.fml.relauncher.SideOnly;
        import fr.fulllager.elonia.Main;
        import fr.fulllager.elonia.events.EventsMod;
        import fr.fulllager.elonia.init.ItemMod;
        import net.minecraft.client.Minecraft;
        import net.minecraft.entity.player.EntityPlayer;
        import net.minecraft.item.ItemStack;
        import net.minecraft.server.MinecraftServer;
        import net.minecraft.util.ChatComponentText;
        
        public class JobsManager {
        	
        	public static Main main;
        	public JobsManager(Main main) {
        		JobsManager.main = main;
        	}
        	
        	public static boolean hasAnAccount(EntityPlayer p) {
        		try {
        	            PreparedStatement q = main.connection.prepareStatement("SELECT uuid FROM jobs WHERE uuid = ?");
        	            q.setString(1, Minecraft.getMinecraft().thePlayer.getGameProfile().getId().toString());
        	            ResultSet resultat = q.executeQuery();
        	            boolean hasAccount = resultat.next();
        	            q.close();
        	            return hasAccount;
        	        } catch (SQLException e) {
        	            e.printStackTrace();
        	        }
        		return false;
        	}
        	
        	public static void createAccount(EntityPlayer p) {
        		if(!hasAnAccount(p)) {
        		    try {
        			    PreparedStatement r = main.connection.prepareStatement("INSERT INTO jobs(uuid,pseudo) VALUES (?,?)");
        		     	r.setString(1, Minecraft.getMinecraft().thePlayer.getGameProfile().getId().toString());
        		    	r.setString(2, Minecraft.getMinecraft().thePlayer.getGameProfile().getName().toString());
        			    r.execute();
        			    r.close();
        		    } catch (SQLException e) {
        			    e.printStackTrace();
        			    System.out.println("La création du compte de "+Minecraft.getMinecraft().thePlayer.getGameProfile().getName()+" a échoué !");
        			    return;
        		    }
        		    System.out.println("La création de compte de "+Minecraft.getMinecraft().thePlayer.getGameProfile().getName()+" a été réalisée avec succès !");
        		}
        	}
        	
        	
        	public static int getFarmerLevel(EntityPlayer p) {
                try {
                	int res = 1;
                	PreparedStatement q = main.connection.prepareStatement("SELECT farmer_level FROM jobs WHERE uuid = ?");
        			q.setString(1, Minecraft.getMinecraft().thePlayer.getGameProfile().getId().toString());
        			ResultSet resultat = q.executeQuery();
        			while(resultat.next()) {
        				res = resultat.getInt("farmer_level");
        			}
        	        q.close();
        	        return res;
        		} catch (SQLException e) {
        			e.printStackTrace();
        		}
                return 1;
        	}
        	
        	public static int getMinerLevel(EntityPlayer p) {
                try {
                	int res = 1;
                	PreparedStatement q = main.connection.prepareStatement("SELECT miner_level FROM jobs WHERE uuid = ?");
        			q.setString(1, Minecraft.getMinecraft().thePlayer.getGameProfile().getId().toString());
        			ResultSet resultat = q.executeQuery();
        			while(resultat.next()) {
        				res = resultat.getInt("miner_level");
        			}
        	        q.close();
        	        return res;
        		} catch (SQLException e) {
        			e.printStackTrace();
        		}
                return 1;
        	}
        	
        	
        	public static int getHunterLevel(EntityPlayer p) {
                try {
                	int res = 1;
                	PreparedStatement q = main.connection.prepareStatement("SELECT hunter_level FROM jobs WHERE uuid = ?");
        			q.setString(1, Minecraft.getMinecraft().thePlayer.getGameProfile().getId().toString());
        			ResultSet resultat = q.executeQuery();
        			while(resultat.next()) {
        				res = resultat.getInt("hunter_level");
        			}
        	        q.close();
        	        return res;
        		} catch (SQLException e) {
        			e.printStackTrace();
        		}
                return 1;
        	}
        	
        	
        	public static double getFarmerXp(EntityPlayer p) {
                try {
                	double res = 1;
                	PreparedStatement q = main.connection.prepareStatement("SELECT farmer_xp FROM jobs WHERE uuid = ?");
        			q.setString(1, Minecraft.getMinecraft().thePlayer.getGameProfile().getId().toString());
        			ResultSet resultat = q.executeQuery();
        			while(resultat.next()) {
        				res = resultat.getDouble("farmer_xp");
        			}
        	        q.close();
        	        return res;
        		} catch (SQLException e) {
        			e.printStackTrace();
        		}
                return 0;
        	}
        	
        	
        	public static double getMinerXp(EntityPlayer p) {
                try {
                	double res = 1;
                	PreparedStatement q = main.connection.prepareStatement("SELECT miner_xp FROM jobs WHERE uuid = ?");
        			q.setString(1, Minecraft.getMinecraft().thePlayer.getGameProfile().getId().toString());
        			ResultSet resultat = q.executeQuery();
        			while(resultat.next()) {
        				res = resultat.getDouble("miner_xp");
        			}
        	        q.close();
        	        return res;
        		} catch (SQLException e) {
        			e.printStackTrace();
        		}
                return 0;
        	}
        	
        	
        	public static double getHunterXp(EntityPlayer p) {
                try {
                	double res = 1;
                	PreparedStatement q = main.connection.prepareStatement("SELECT hunter_xp FROM jobs WHERE uuid = ?");
        			q.setString(1, Minecraft.getMinecraft().thePlayer.getGameProfile().getId().toString());
        			ResultSet resultat = q.executeQuery();
        			while(resultat.next()) {
        				res = resultat.getDouble("hunter_xp");
        			}
        	        q.close();
        	        return res;
        		} catch (SQLException e) {
        			e.printStackTrace();
        		}
                return 0;
        	}
        	
        	
        	public static int getMaxXpForLevel(int level) {
        		int max = 666;
        		if(level == 1) {max = 666;}
        		if(level == 2) {max = 1973;}
        		if(level == 3) {max = 4873;}
        		if(level == 4) {max = 9154;}
        		if(level == 5) {max = 18397;}
        		if(level == 6) {max = 23947;}
        		if(level == 7) {max = 32947;}
        		if(level == 8) {max = 44293;}
        		if(level == 9) {max = 53382;}
        		if(level == 10) {max = 66846;}
        		if(level == 11) {max = 79374;}
        		if(level == 12) {max = 89836;}
        		if(level == 13) {max = 100000;}
        		if(level == 14) {max = 118712;}
        		if(level == 15) {max = 128364;}
        		if(level == 16) {max = 139374;}
        		if(level == 17) {max = 154302;}
        		if(level == 18) {max = 179273;}
        		if(level == 19) {max = 200000;}
        		if(level == 20) {max = 250000;}
        		return max;
        	}
        	
        	
        	public static double getXpForLevel(int level, double xp) {
        		if(level == 1) {return xp;}
        		xp = xp - (level - 1);
        		if(xp <= 0) {return 0;}
        		return xp;
        	}
        	
        	
        	public static void addXp(EntityPlayer p, double xp, String job) {
        		if(job == "Farmer") {
        			double farmer_base_xp = getFarmerXp(p);
        			int farmer_base_level = getFarmerLevel(p);
        			double farmer_xp = farmer_base_xp + getXpForLevel(farmer_base_level, xp);
        			int farmer_max_xp = getMaxXpForLevel(farmer_base_level);
        			long time = System.currentTimeMillis();
        			if(Main.overlay_xp.containsKey(p) && getXpForLevel(farmer_base_level, xp) != 0){
        				Double sup = Main.overlay_xp.get(p);
        				Main.overlay_xp.remove(p);
        				Main.overlay_time.remove(p);
        				Main.overlay_time.put(p, time + 2000);
        				Main.overlay_xp.put(p, getXpForLevel(farmer_base_level, xp) + sup);
        			} else if(!Main.overlay_xp.containsKey(p) && getXpForLevel(farmer_base_level, xp) != 0) {
        				Main.overlay_xp.put(p, getXpForLevel(farmer_base_level, xp));
        				Main.overlay_time.put(p, time + 2000);
        			}
        			if(farmer_xp >= farmer_max_xp && !(farmer_base_level + 1 == 21)) {
        				try {
        				    PreparedStatement r = main.connection.prepareStatement("UPDATE jobs SET farmer_level = ? WHERE uuid = ?");
        				    r.setInt(1, farmer_base_level + 1);
        				    r.setString(2, Minecraft.getMinecraft().thePlayer.getGameProfile().getId().toString());
        				    r.execute();
        				    r.close();
        			    } catch (SQLException e) {
        				    e.printStackTrace();
        			    }
        				giftForLevel(p, farmer_base_level++);
        			}
        			try {
        			    PreparedStatement r = main.connection.prepareStatement("UPDATE jobs SET farmer_xp = ? WHERE uuid = ?");
        		     	r.setDouble(1, farmer_xp);
        		    	r.setString(2, Minecraft.getMinecraft().thePlayer.getGameProfile().getId().toString());
        			    r.execute();
        			    r.close();
        		    } catch (SQLException e) {
        			    e.printStackTrace();
        		    }
        		}
        		if(job == "Miner") {
        			double miner_base_xp = getMinerXp(p);
        			int miner_base_level = getMinerLevel(p);
        			double miner_xp = miner_base_xp + getXpForLevel(miner_base_level, xp);
        			int miner_max_xp = getMaxXpForLevel(miner_base_level);
        			long time = System.currentTimeMillis();
        			if(!Main.overlay_xp.containsKey(p) && getXpForLevel(miner_base_level, xp) != 0) {
        				Main.overlay_xp.put(p, getXpForLevel(miner_base_level, xp));
        				Main.overlay_time.put(p, time + 2000);
        			} else if(getXpForLevel(miner_base_level, xp) != 0){
        				Double sup = Main.overlay_xp.get(p);
        				Main.overlay_xp.remove(p);
        				Main.overlay_time.remove(p);
        				Main.overlay_time.put(p, time + 2000);
        				Main.overlay_xp.put(p, getXpForLevel(miner_base_level, xp) + sup);
        			}
        			if(miner_xp >= miner_max_xp && !(miner_base_level + 1 == 21)) {
        				try {
        				    PreparedStatement r = main.connection.prepareStatement("UPDATE jobs SET miner_level = ? WHERE uuid = ?");
        				    r.setInt(1, miner_base_level + 1);
        				    r.setString(2, Minecraft.getMinecraft().thePlayer.getGameProfile().getId().toString());
        				    r.execute();
        				    r.close();
        			    } catch (SQLException e) {
        				    e.printStackTrace();
        			    }
        				giftForLevel(p, miner_base_level + 1);
        			}
        			try {
        			    PreparedStatement r = main.connection.prepareStatement("UPDATE jobs SET miner_xp = ? WHERE uuid = ?");
        		     	r.setDouble(1, miner_xp);
        		    	r.setString(2, Minecraft.getMinecraft().thePlayer.getGameProfile().getId().toString());
        			    r.execute();
        			    r.close();
        		    } catch (SQLException e) {
        			    e.printStackTrace();
        		    }
        		}
        		if(job == "Hunter") {
        			double hunter_base_xp = getHunterXp(p);
        			int hunter_base_level = getHunterLevel(p);
        			double hunter_xp = hunter_base_xp + getXpForLevel(hunter_base_level, xp);
        			int hunter_max_xp = getMaxXpForLevel(hunter_base_level);
        			long time = System.currentTimeMillis();
        			if(!Main.overlay_xp.containsKey(p) && getXpForLevel(hunter_base_level, xp) != 0) {
        				Main.overlay_xp.put(p, getXpForLevel(hunter_base_level, xp));
        				Main.overlay_time.put(p, time + 2000);
        			} else if(getXpForLevel(hunter_base_level, xp) != 0){
        				Double sup = Main.overlay_xp.get(p);
        				Main.overlay_xp.remove(p);
        				Main.overlay_time.remove(p);
        				Main.overlay_time.put(p, time + 2000);
        				Main.overlay_xp.put(p, getXpForLevel(hunter_base_level, xp) + sup);
        			}
        			if(hunter_xp >= hunter_max_xp && !(hunter_base_level + 1 == 21)) {
        				try {
        				    PreparedStatement r = main.connection.prepareStatement("UPDATE jobs SET hunter_level = ? WHERE uuid = ?");
        				    r.setInt(1, hunter_base_level + 1);
        				    r.setString(2, Minecraft.getMinecraft().thePlayer.getGameProfile().getId().toString());
        				    r.execute();
        				    r.close();
        			    } catch (SQLException e) {
        				    e.printStackTrace();
        			    }
        				giftForLevel(p, hunter_base_level + 1);
        			}
        			try {
        			    PreparedStatement r = main.connection.prepareStatement("UPDATE jobs SET hunter_xp = ? WHERE uuid = ?");
        		     	r.setDouble(1, hunter_xp);
        		    	r.setString(2, Minecraft.getMinecraft().thePlayer.getGameProfile().getId().toString());
        			    r.execute();
        			    r.close();
        		    } catch (SQLException e) {
        			    e.printStackTrace();
        		    }
        		}
        	}
        	
        	
        	public static void giftForLevel(EntityPlayer p, int level) {
        		p.addChatMessage(new ChatComponentText("Bravo, tu passes niveau "+level+" félicitations ! Voici un petit cadeau pour toi !"));
        		System.out.println("Récompense de niveau "+level+" pour "+Minecraft.getMinecraft().thePlayer.getGameProfile().getName());
        		if(level == 2) {MinecraftServer.getServer().getCommandManager().executeCommand(MinecraftServer.getServer(), "give "+Minecraft.getMinecraft().thePlayer.getGameProfile().getName()+" elonia:fluorine_sword");}
        		if(level == 3) {}
        		if(level == 4) {}
        		if(level == 5) {}
        		if(level == 6) {}
        		if(level == 7) {}
        		if(level == 8) {}
        		if(level == 9) {}
        		if(level == 10) {}
        		if(level == 11) {}
        		if(level == 12) {}
        		if(level == 13) {}
        		if(level == 14) {}
        		if(level == 15) {}
        		if(level == 16) {}
        		if(level == 17) {}
        		if(level == 18) {}
        		if(level == 19) {}
        		if(level == 20) {}
        	}
        }
        

        Dès l’ouverture du menu, une requête est éxecutée pour récupérer le niveau et l’xp de chaque métier du joueur (c’est pas opti je sais mais ca fait le taf pour l’instant)

        1 réponse Dernière réponse Répondre Citer 0
        • robin4002R Hors-ligne
          robin4002 Moddeurs confirmés Rédacteurs Administrateurs
          dernière édition par

          La ligne 29 c’est laquelle ?
          Il semble avoir un décalage dans ce que tu as envoyé, c’est la ligne PreparedStatement q = main.connection.prepareStatement("SELECT uuid FROM jobs WHERE uuid = ?"); ?

          1 réponse Dernière réponse Répondre Citer 0
          • F Hors-ligne
            FullLager
            dernière édition par

            Ha oui j’ai pas mis le package la ligne 29 c’est le result set.

            1 réponse Dernière réponse Répondre Citer 0
            • robin4002R Hors-ligne
              robin4002 Moddeurs confirmés Rédacteurs Administrateurs
              dernière édition par

              Je ne vois pas comment il peut avoir un NPE ici.
              Lances ton jeu depuis ton IDE en debug et mets un point d’arrêt pour voir quelle variable est null.

              1 réponse Dernière réponse Répondre Citer 0
              • F Hors-ligne
                FullLager
                dernière édition par FullLager

                J’ai mal transmis la ligne, je reupload le code

                package fr.fulllager.elonia.jobs;
                
                import java.sql.PreparedStatement;
                import java.sql.ResultSet;
                import java.sql.SQLException;
                
                import cpw.mods.fml.common.SidedProxy;
                import cpw.mods.fml.relauncher.Side;
                import cpw.mods.fml.relauncher.SideOnly;
                import fr.fulllager.elonia.Main;
                import fr.fulllager.elonia.events.EventsMod;
                import fr.fulllager.elonia.init.ItemMod;
                import net.minecraft.client.Minecraft;
                import net.minecraft.entity.player.EntityPlayer;
                import net.minecraft.item.ItemStack;
                import net.minecraft.server.MinecraftServer;
                import net.minecraft.util.ChatComponentText;
                
                public class JobsManager {
                	
                	public static Main main;
                	public JobsManager(Main main) {
                		JobsManager.main = main;
                	}
                	
                	public static boolean hasAnAccount(EntityPlayer p) {
                		try {
                	            PreparedStatement q = main.connection.prepareStatement("SELECT uuid FROM jobs WHERE uuid = ?");
                	            q.setString(1, Minecraft.getMinecraft().thePlayer.getGameProfile().getId().toString());
                	            ResultSet resultat = q.executeQuery();
                	            boolean hasAccount = resultat.next();
                	            q.close();
                	            return hasAccount;
                	        } catch (SQLException e) {
                	            e.printStackTrace();
                	        }
                		return false;
                	}
                	
                	public static void createAccount(EntityPlayer p) {
                		if(!hasAnAccount(p)) {
                		    try {
                			    PreparedStatement r = main.connection.prepareStatement("INSERT INTO jobs(uuid,pseudo) VALUES (?,?)");
                		     	r.setString(1, Minecraft.getMinecraft().thePlayer.getGameProfile().getId().toString());
                		    	r.setString(2, Minecraft.getMinecraft().thePlayer.getGameProfile().getName().toString());
                			    r.execute();
                			    r.close();
                		    } catch (SQLException e) {
                			    e.printStackTrace();
                			    System.out.println("La création du compte de "+Minecraft.getMinecraft().thePlayer.getGameProfile().getName()+" a échoué !");
                			    return;
                		    }
                		    System.out.println("La création de compte de "+Minecraft.getMinecraft().thePlayer.getGameProfile().getName()+" a été réalisée avec succès !");
                		}
                	}
                	
                	
                	public static int getFarmerLevel(EntityPlayer p) {
                        try {
                        	int res = 1;
                        	PreparedStatement q = main.connection.prepareStatement("SELECT farmer_level FROM jobs WHERE uuid = ?");
                			q.setString(1, Minecraft.getMinecraft().thePlayer.getGameProfile().getId().toString());
                			ResultSet resultat = q.executeQuery();
                			while(resultat.next()) {
                				res = resultat.getInt("farmer_level");
                			}
                	        q.close();
                	        return res;
                		} catch (SQLException e) {
                			e.printStackTrace();
                		}
                        return 1;
                	}
                	
                	public static int getMinerLevel(EntityPlayer p) {
                        try {
                        	int res = 1;
                        	PreparedStatement q = main.connection.prepareStatement("SELECT miner_level FROM jobs WHERE uuid = ?");
                			q.setString(1, Minecraft.getMinecraft().thePlayer.getGameProfile().getId().toString());
                			ResultSet resultat = q.executeQuery();
                			while(resultat.next()) {
                				res = resultat.getInt("miner_level");
                			}
                	        q.close();
                	        return res;
                		} catch (SQLException e) {
                			e.printStackTrace();
                		}
                        return 1;
                	}
                	
                	
                	public static int getHunterLevel(EntityPlayer p) {
                        try {
                        	int res = 1;
                        	PreparedStatement q = main.connection.prepareStatement("SELECT hunter_level FROM jobs WHERE uuid = ?");
                			q.setString(1, Minecraft.getMinecraft().thePlayer.getGameProfile().getId().toString());
                			ResultSet resultat = q.executeQuery();
                			while(resultat.next()) {
                				res = resultat.getInt("hunter_level");
                			}
                	        q.close();
                	        return res;
                		} catch (SQLException e) {
                			e.printStackTrace();
                		}
                        return 1;
                	}
                	
                	
                	public static double getFarmerXp(EntityPlayer p) {
                        try {
                        	double res = 1;
                        	PreparedStatement q = main.connection.prepareStatement("SELECT farmer_xp FROM jobs WHERE uuid = ?");
                			q.setString(1, Minecraft.getMinecraft().thePlayer.getGameProfile().getId().toString());
                			ResultSet resultat = q.executeQuery();
                			while(resultat.next()) {
                				res = resultat.getDouble("farmer_xp");
                			}
                	        q.close();
                	        return res;
                		} catch (SQLException e) {
                			e.printStackTrace();
                		}
                        return 0;
                	}
                	
                	
                	public static double getMinerXp(EntityPlayer p) {
                        try {
                        	double res = 1;
                        	PreparedStatement q = main.connection.prepareStatement("SELECT miner_xp FROM jobs WHERE uuid = ?");
                			q.setString(1, Minecraft.getMinecraft().thePlayer.getGameProfile().getId().toString());
                			ResultSet resultat = q.executeQuery();
                			while(resultat.next()) {
                				res = resultat.getDouble("miner_xp");
                			}
                	        q.close();
                	        return res;
                		} catch (SQLException e) {
                			e.printStackTrace();
                		}
                        return 0;
                	}
                	
                	
                	public static double getHunterXp(EntityPlayer p) {
                        try {
                        	double res = 1;
                        	PreparedStatement q = main.connection.prepareStatement("SELECT hunter_xp FROM jobs WHERE uuid = ?");
                			q.setString(1, Minecraft.getMinecraft().thePlayer.getGameProfile().getId().toString());
                			ResultSet resultat = q.executeQuery();
                			while(resultat.next()) {
                				res = resultat.getDouble("hunter_xp");
                			}
                	        q.close();
                	        return res;
                		} catch (SQLException e) {
                			e.printStackTrace();
                		}
                        return 0;
                	}
                	
                	
                	public static int getMaxXpForLevel(int level) {
                		int max = 666;
                		if(level == 1) {max = 666;}
                		if(level == 2) {max = 1973;}
                		if(level == 3) {max = 4873;}
                		if(level == 4) {max = 9154;}
                		if(level == 5) {max = 18397;}
                		if(level == 6) {max = 23947;}
                		if(level == 7) {max = 32947;}
                		if(level == 8) {max = 44293;}
                		if(level == 9) {max = 53382;}
                		if(level == 10) {max = 66846;}
                		if(level == 11) {max = 79374;}
                		if(level == 12) {max = 89836;}
                		if(level == 13) {max = 100000;}
                		if(level == 14) {max = 118712;}
                		if(level == 15) {max = 128364;}
                		if(level == 16) {max = 139374;}
                		if(level == 17) {max = 154302;}
                		if(level == 18) {max = 179273;}
                		if(level == 19) {max = 200000;}
                		if(level == 20) {max = 250000;}
                		return max;
                	}
                	
                	
                	public static double getXpForLevel(int level, double xp) {
                		if(level == 1) {return xp;}
                		xp = xp - (level - 1);
                		if(xp <= 0) {return 0;}
                		return xp;
                	}
                	
                	
                	public static void addXp(EntityPlayer p, double xp, String job) {
                		if(job == "Farmer") {
                			double farmer_base_xp = getFarmerXp(p);
                			int farmer_base_level = getFarmerLevel(p);
                			double farmer_xp = farmer_base_xp + getXpForLevel(farmer_base_level, xp);
                			int farmer_max_xp = getMaxXpForLevel(farmer_base_level);
                			long time = System.currentTimeMillis();
                			if(Main.overlay_xp.containsKey(p) && getXpForLevel(farmer_base_level, xp) != 0){
                				Double sup = Main.overlay_xp.get(p);
                				Main.overlay_xp.remove(p);
                				Main.overlay_time.remove(p);
                				Main.overlay_time.put(p, time + 2000);
                				Main.overlay_xp.put(p, getXpForLevel(farmer_base_level, xp) + sup);
                			} else if(!Main.overlay_xp.containsKey(p) && getXpForLevel(farmer_base_level, xp) != 0) {
                				Main.overlay_xp.put(p, getXpForLevel(farmer_base_level, xp));
                				Main.overlay_time.put(p, time + 2000);
                			}
                			if(farmer_xp >= farmer_max_xp && !(farmer_base_level + 1 == 21)) {
                				try {
                				    PreparedStatement r = main.connection.prepareStatement("UPDATE jobs SET farmer_level = ? WHERE uuid = ?");
                				    r.setInt(1, farmer_base_level + 1);
                				    r.setString(2, Minecraft.getMinecraft().thePlayer.getGameProfile().getId().toString());
                				    r.execute();
                				    r.close();
                			    } catch (SQLException e) {
                				    e.printStackTrace();
                			    }
                				giftForLevel(p, farmer_base_level++);
                			}
                			try {
                			    PreparedStatement r = main.connection.prepareStatement("UPDATE jobs SET farmer_xp = ? WHERE uuid = ?");
                		     	r.setDouble(1, farmer_xp);
                		    	r.setString(2, Minecraft.getMinecraft().thePlayer.getGameProfile().getId().toString());
                			    r.execute();
                			    r.close();
                		    } catch (SQLException e) {
                			    e.printStackTrace();
                		    }
                		}
                		if(job == "Miner") {
                			double miner_base_xp = getMinerXp(p);
                			int miner_base_level = getMinerLevel(p);
                			double miner_xp = miner_base_xp + getXpForLevel(miner_base_level, xp);
                			int miner_max_xp = getMaxXpForLevel(miner_base_level);
                			long time = System.currentTimeMillis();
                			if(!Main.overlay_xp.containsKey(p) && getXpForLevel(miner_base_level, xp) != 0) {
                				Main.overlay_xp.put(p, getXpForLevel(miner_base_level, xp));
                				Main.overlay_time.put(p, time + 2000);
                			} else if(getXpForLevel(miner_base_level, xp) != 0){
                				Double sup = Main.overlay_xp.get(p);
                				Main.overlay_xp.remove(p);
                				Main.overlay_time.remove(p);
                				Main.overlay_time.put(p, time + 2000);
                				Main.overlay_xp.put(p, getXpForLevel(miner_base_level, xp) + sup);
                			}
                			if(miner_xp >= miner_max_xp && !(miner_base_level + 1 == 21)) {
                				try {
                				    PreparedStatement r = main.connection.prepareStatement("UPDATE jobs SET miner_level = ? WHERE uuid = ?");
                				    r.setInt(1, miner_base_level + 1);
                				    r.setString(2, Minecraft.getMinecraft().thePlayer.getGameProfile().getId().toString());
                				    r.execute();
                				    r.close();
                			    } catch (SQLException e) {
                				    e.printStackTrace();
                			    }
                				giftForLevel(p, miner_base_level + 1);
                			}
                			try {
                			    PreparedStatement r = main.connection.prepareStatement("UPDATE jobs SET miner_xp = ? WHERE uuid = ?");
                		     	r.setDouble(1, miner_xp);
                		    	r.setString(2, Minecraft.getMinecraft().thePlayer.getGameProfile().getId().toString());
                			    r.execute();
                			    r.close();
                		    } catch (SQLException e) {
                			    e.printStackTrace();
                		    }
                		}
                		if(job == "Hunter") {
                			double hunter_base_xp = getHunterXp(p);
                			int hunter_base_level = getHunterLevel(p);
                			double hunter_xp = hunter_base_xp + getXpForLevel(hunter_base_level, xp);
                			int hunter_max_xp = getMaxXpForLevel(hunter_base_level);
                			long time = System.currentTimeMillis();
                			if(!Main.overlay_xp.containsKey(p) && getXpForLevel(hunter_base_level, xp) != 0) {
                				Main.overlay_xp.put(p, getXpForLevel(hunter_base_level, xp));
                				Main.overlay_time.put(p, time + 2000);
                			} else if(getXpForLevel(hunter_base_level, xp) != 0){
                				Double sup = Main.overlay_xp.get(p);
                				Main.overlay_xp.remove(p);
                				Main.overlay_time.remove(p);
                				Main.overlay_time.put(p, time + 2000);
                				Main.overlay_xp.put(p, getXpForLevel(hunter_base_level, xp) + sup);
                			}
                			if(hunter_xp >= hunter_max_xp && !(hunter_base_level + 1 == 21)) {
                				try {
                				    PreparedStatement r = main.connection.prepareStatement("UPDATE jobs SET hunter_level = ? WHERE uuid = ?");
                				    r.setInt(1, hunter_base_level + 1);
                				    r.setString(2, Minecraft.getMinecraft().thePlayer.getGameProfile().getId().toString());
                				    r.execute();
                				    r.close();
                			    } catch (SQLException e) {
                				    e.printStackTrace();
                			    }
                				giftForLevel(p, hunter_base_level + 1);
                			}
                			try {
                			    PreparedStatement r = main.connection.prepareStatement("UPDATE jobs SET hunter_xp = ? WHERE uuid = ?");
                		     	r.setDouble(1, hunter_xp);
                		    	r.setString(2, Minecraft.getMinecraft().thePlayer.getGameProfile().getId().toString());
                			    r.execute();
                			    r.close();
                		    } catch (SQLException e) {
                			    e.printStackTrace();
                		    }
                		}
                	}
                	
                	
                	public static void giftForLevel(EntityPlayer p, int level) {
                		p.addChatMessage(new ChatComponentText("Bravo, tu passes niveau "+level+" félicitations ! Voici un petit cadeau pour toi !"));
                		System.out.println("Récompense de niveau "+level+" pour "+Minecraft.getMinecraft().thePlayer.getGameProfile().getName());
                		if(level == 2) {MinecraftServer.getServer().getCommandManager().executeCommand(MinecraftServer.getServer(), "give "+Minecraft.getMinecraft().thePlayer.getGameProfile().getName()+" elonia:fluorine_sword");}
                		if(level == 3) {}
                		if(level == 4) {}
                		if(level == 5) {}
                		if(level == 6) {}
                		if(level == 7) {}
                		if(level == 8) {}
                		if(level == 9) {}
                		if(level == 10) {}
                		if(level == 11) {}
                		if(level == 12) {}
                		if(level == 13) {}
                		if(level == 14) {}
                		if(level == 15) {}
                		if(level == 16) {}
                		if(level == 17) {}
                		if(level == 18) {}
                		if(level == 19) {}
                		if(level == 20) {}
                	}
                }
                
                

                Donc c’est la ligne

                q.setString(1, Minecraft.getMinecraft().thePlayer.getGameProfile().getId().toString());
                

                Il ne doit pas trouver l’UUID du joueur.

                1 réponse Dernière réponse Répondre Citer 0
                • robin4002R Hors-ligne
                  robin4002 Moddeurs confirmés Rédacteurs Administrateurs
                  dernière édition par robin4002

                  Ah mais oui, je ne sais pas pourquoi je n’ai pas vu ça plutôt …

                  Pourquoi tu utilises Minecraft.getMinecraft().thePlayer dans des fonctions avec du sql qui sont sensé être exécuté sur le serveur ?

                  Surtout que tu as déjà p en argument de ta fonction … Remplaces Minecraft.getMinecraft().thePlayer. par p. Tu as ce problème partout. La classe Minecraft ne doit jamais être utilisé sur la partie serveur d’un mod.

                  1 réponse Dernière réponse Répondre Citer 0
                  • F Hors-ligne
                    FullLager
                    dernière édition par FullLager

                    C’est corrigé. Maintenant j’ai ça comme erreur :

                    [14:33:32 ERROR]: There was a critical exception handling a packet on channel FML
                    java.lang.NullPointerException
                            at fr.fulllager.elonia.jobs.JobsManager.hasAnAccount(JobsManager.java:28) ~[JobsManager.class:?]
                            at fr.fulllager.elonia.jobs.JobsListenerFML.onJoin(JobsListenerFML.java:54) ~[JobsListenerFML.class:?]
                            at cpw.mods.fml.common.eventhandler.ASMEventHandler_25_JobsListenerFML_onJoin_PlayerLoggedInEvent.invoke(.dynamic) ~[?:?]
                            at cpw.mods.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:51) ~[ASMEventHandler.class:git-Cauldron-MCPC-Plus-1.7.10-1.1207.01.198]
                            at cpw.mods.fml.common.eventhandler.EventBus.post(EventBus.java:122) ~[EventBus.class:git-Cauldron-MCPC-Plus-1.7.10-1.1207.01.198]
                            at cpw.mods.fml.common.FMLCommonHandler.firePlayerLoggedIn(FMLCommonHandler.java:568) ~[FMLCommonHandler.class:git-Cauldron-MCPC-Plus-1.7.10-1.1207.01.198]
                            at net.minecraft.server.management.ServerConfigurationManager.a(ServerConfigurationManager.java:236) ~[oi.class:?]
                            at cpw.mods.fml.common.network.handshake.NetworkDispatcher.completeServerSideConnection(NetworkDispatcher.java:173) ~[NetworkDispatcher.class:git-Cauldron-MCPC-Plus-1.7.10-1.1207.01.198]
                            at cpw.mods.fml.common.network.handshake.NetworkDispatcher.completeHandshake(NetworkDispatcher.java:448) ~[NetworkDispatcher.class:git-Cauldron-MCPC-Plus-1.7.10-1.1207.01.198]
                            at cpw.mods.fml.common.network.internal.HandshakeCompletionHandler.channelRead0(HandshakeCompletionHandler.java:21) ~[HandshakeCompletionHandler.class:git-Cauldron-MCPC-Plus-1.7.10-1.1207.01.198]
                            at cpw.mods.fml.common.network.internal.HandshakeCompletionHandler.channelRead0(HandshakeCompletionHandler.java:11) ~[HandshakeCompletionHandler.class:git-Cauldron-MCPC-Plus-1.7.10-1.1207.01.198]
                            at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:98) ~[SimpleChannelInboundHandler.class:?]
                            at io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:337) ~[DefaultChannelHandlerContext.class:?]
                            at io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:323) ~[DefaultChannelHandlerContext.class:?]
                            at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103) ~[MessageToMessageDecoder.class:?]
                            at io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:111) ~[MessageToMessageCodec.class:?]
                            at io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:337) ~[DefaultChannelHandlerContext.class:?]
                            at io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:323) ~[DefaultChannelHandlerContext.class:?]
                            at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:785) ~[DefaultChannelPipeline.class:?]
                            at io.netty.channel.embedded.EmbeddedChannel.writeInbound(EmbeddedChannel.java:169) ~[EmbeddedChannel.class:?]
                            at cpw.mods.fml.common.network.internal.FMLProxyPacket.func_148833_a(FMLProxyPacket.java:77) [FMLProxyPacket.class:git-Cauldron-MCPC-Plus-1.7.10-1.1207.01.198]
                            at net.minecraft.network.NetworkManager.func_74428_b(NetworkManager.java:244) [ej.class:?]
                            at net.minecraft.network.NetworkSystem.func_151269_c(NetworkSystem.java:173) [nc.class:?]
                            at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:980) [MinecraftServer.class:?]
                            at net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:423) [lt.class:?]
                            at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:798) [MinecraftServer.class:?]
                            at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:658) [MinecraftServer.class:?]
                            at java.lang.Thread.run(Thread.java:748) [?:1.8.0_181]
                    

                    Je reupload la classe JobsManager

                    package fr.fulllager.elonia.jobs;
                    
                    import java.sql.PreparedStatement;
                    import java.sql.ResultSet;
                    import java.sql.SQLException;
                    
                    import cpw.mods.fml.common.SidedProxy;
                    import cpw.mods.fml.relauncher.Side;
                    import cpw.mods.fml.relauncher.SideOnly;
                    import fr.fulllager.elonia.Main;
                    import fr.fulllager.elonia.events.EventsMod;
                    import fr.fulllager.elonia.init.ItemMod;
                    import net.minecraft.client.Minecraft;
                    import net.minecraft.entity.player.EntityPlayer;
                    import net.minecraft.item.ItemStack;
                    import net.minecraft.server.MinecraftServer;
                    import net.minecraft.util.ChatComponentText;
                    
                    public class JobsManager {
                    	
                    	public static Main main;
                    	public JobsManager(Main main) {
                    		JobsManager.main = main;
                    	}
                    	
                    	public static boolean hasAnAccount(EntityPlayer p) {
                    		try {
                    	            PreparedStatement q = main.connection.prepareStatement("SELECT uuid FROM jobs WHERE uuid = ?");
                    	            q.setString(1, p.getUniqueID().toString());
                    	            ResultSet resultat = q.executeQuery();
                    	            boolean hasAccount = resultat.next();
                    	            q.close();
                    	            return hasAccount;
                    	        } catch (SQLException e) {
                    	            e.printStackTrace();
                    	        }
                    		return false;
                    	}
                    	
                    	public static void createAccount(EntityPlayer p) {
                    		if(!hasAnAccount(p)) {
                    		    try {
                    			    PreparedStatement r = main.connection.prepareStatement("INSERT INTO jobs(uuid,pseudo) VALUES (?,?)");
                    		     	r.setString(1, p.getUniqueID().toString());
                    		    	r.setString(2, p.getDisplayName());
                    			    r.execute();
                    			    r.close();
                    		    } catch (SQLException e) {
                    			    e.printStackTrace();
                    			    System.out.println("La création du compte de "+Minecraft.getMinecraft().thePlayer.getGameProfile().getName()+" a échoué !");
                    			    return;
                    		    }
                    		    System.out.println("La création de compte de "+Minecraft.getMinecraft().thePlayer.getGameProfile().getName()+" a été réalisée avec succès !");
                    		}
                    	}
                    	
                    	
                    	public static int getFarmerLevel(EntityPlayer p) {
                            try {
                            	int res = 1;
                            	PreparedStatement q = main.connection.prepareStatement("SELECT farmer_level FROM jobs WHERE uuid = ?");
                    			q.setString(1, Minecraft.getMinecraft().thePlayer.getGameProfile().getId().toString());
                    			ResultSet resultat = q.executeQuery();
                    			while(resultat.next()) {
                    				res = resultat.getInt("farmer_level");
                    			}
                    	        q.close();
                    	        return res;
                    		} catch (SQLException e) {
                    			e.printStackTrace();
                    		}
                            return 1;
                    	}
                    	
                    	public static int getMinerLevel(EntityPlayer p) {
                            try {
                            	int res = 1;
                            	PreparedStatement q = main.connection.prepareStatement("SELECT miner_level FROM jobs WHERE uuid = ?");
                    			q.setString(1, Minecraft.getMinecraft().thePlayer.getGameProfile().getId().toString());
                    			ResultSet resultat = q.executeQuery();
                    			while(resultat.next()) {
                    				res = resultat.getInt("miner_level");
                    			}
                    	        q.close();
                    	        return res;
                    		} catch (SQLException e) {
                    			e.printStackTrace();
                    		}
                            return 1;
                    	}
                    	
                    	
                    	public static int getHunterLevel(EntityPlayer p) {
                            try {
                            	int res = 1;
                            	PreparedStatement q = main.connection.prepareStatement("SELECT hunter_level FROM jobs WHERE uuid = ?");
                    			q.setString(1, Minecraft.getMinecraft().thePlayer.getGameProfile().getId().toString());
                    			ResultSet resultat = q.executeQuery();
                    			while(resultat.next()) {
                    				res = resultat.getInt("hunter_level");
                    			}
                    	        q.close();
                    	        return res;
                    		} catch (SQLException e) {
                    			e.printStackTrace();
                    		}
                            return 1;
                    	}
                    	
                    	
                    	public static double getFarmerXp(EntityPlayer p) {
                            try {
                            	double res = 1;
                            	PreparedStatement q = main.connection.prepareStatement("SELECT farmer_xp FROM jobs WHERE uuid = ?");
                    			q.setString(1, Minecraft.getMinecraft().thePlayer.getGameProfile().getId().toString());
                    			ResultSet resultat = q.executeQuery();
                    			while(resultat.next()) {
                    				res = resultat.getDouble("farmer_xp");
                    			}
                    	        q.close();
                    	        return res;
                    		} catch (SQLException e) {
                    			e.printStackTrace();
                    		}
                            return 0;
                    	}
                    	
                    	
                    	public static double getMinerXp(EntityPlayer p) {
                            try {
                            	double res = 1;
                            	PreparedStatement q = main.connection.prepareStatement("SELECT miner_xp FROM jobs WHERE uuid = ?");
                    			q.setString(1, Minecraft.getMinecraft().thePlayer.getGameProfile().getId().toString());
                    			ResultSet resultat = q.executeQuery();
                    			while(resultat.next()) {
                    				res = resultat.getDouble("miner_xp");
                    			}
                    	        q.close();
                    	        return res;
                    		} catch (SQLException e) {
                    			e.printStackTrace();
                    		}
                            return 0;
                    	}
                    	
                    	
                    	public static double getHunterXp(EntityPlayer p) {
                            try {
                            	double res = 1;
                            	PreparedStatement q = main.connection.prepareStatement("SELECT hunter_xp FROM jobs WHERE uuid = ?");
                    			q.setString(1, Minecraft.getMinecraft().thePlayer.getGameProfile().getId().toString());
                    			ResultSet resultat = q.executeQuery();
                    			while(resultat.next()) {
                    				res = resultat.getDouble("hunter_xp");
                    			}
                    	        q.close();
                    	        return res;
                    		} catch (SQLException e) {
                    			e.printStackTrace();
                    		}
                            return 0;
                    	}
                    	
                    	
                    	public static int getMaxXpForLevel(int level) {
                    		int max = 666;
                    		if(level == 1) {max = 666;}
                    		if(level == 2) {max = 1973;}
                    		if(level == 3) {max = 4873;}
                    		if(level == 4) {max = 9154;}
                    		if(level == 5) {max = 18397;}
                    		if(level == 6) {max = 23947;}
                    		if(level == 7) {max = 32947;}
                    		if(level == 8) {max = 44293;}
                    		if(level == 9) {max = 53382;}
                    		if(level == 10) {max = 66846;}
                    		if(level == 11) {max = 79374;}
                    		if(level == 12) {max = 89836;}
                    		if(level == 13) {max = 100000;}
                    		if(level == 14) {max = 118712;}
                    		if(level == 15) {max = 128364;}
                    		if(level == 16) {max = 139374;}
                    		if(level == 17) {max = 154302;}
                    		if(level == 18) {max = 179273;}
                    		if(level == 19) {max = 200000;}
                    		if(level == 20) {max = 250000;}
                    		return max;
                    	}
                    	
                    	
                    	public static double getXpForLevel(int level, double xp) {
                    		if(level == 1) {return xp;}
                    		xp = xp - (level - 1);
                    		if(xp <= 0) {return 0;}
                    		return xp;
                    	}
                    	
                    	
                    	public static void addXp(EntityPlayer p, double xp, String job) {
                    		if(job == "Farmer") {
                    			double farmer_base_xp = getFarmerXp(p);
                    			int farmer_base_level = getFarmerLevel(p);
                    			double farmer_xp = farmer_base_xp + getXpForLevel(farmer_base_level, xp);
                    			int farmer_max_xp = getMaxXpForLevel(farmer_base_level);
                    			long time = System.currentTimeMillis();
                    			if(Main.overlay_xp.containsKey(p) && getXpForLevel(farmer_base_level, xp) != 0){
                    				Double sup = Main.overlay_xp.get(p);
                    				Main.overlay_xp.remove(p);
                    				Main.overlay_time.remove(p);
                    				Main.overlay_time.put(p, time + 2000);
                    				Main.overlay_xp.put(p, getXpForLevel(farmer_base_level, xp) + sup);
                    			} else if(!Main.overlay_xp.containsKey(p) && getXpForLevel(farmer_base_level, xp) != 0) {
                    				Main.overlay_xp.put(p, getXpForLevel(farmer_base_level, xp));
                    				Main.overlay_time.put(p, time + 2000);
                    			}
                    			if(farmer_xp >= farmer_max_xp && !(farmer_base_level + 1 == 21)) {
                    				try {
                    				    PreparedStatement r = main.connection.prepareStatement("UPDATE jobs SET farmer_level = ? WHERE uuid = ?");
                    				    r.setInt(1, farmer_base_level + 1);
                    				    r.setString(2, Minecraft.getMinecraft().thePlayer.getGameProfile().getId().toString());
                    				    r.execute();
                    				    r.close();
                    			    } catch (SQLException e) {
                    				    e.printStackTrace();
                    			    }
                    				giftForLevel(p, farmer_base_level++);
                    			}
                    			try {
                    			    PreparedStatement r = main.connection.prepareStatement("UPDATE jobs SET farmer_xp = ? WHERE uuid = ?");
                    		     	r.setDouble(1, farmer_xp);
                    		    	r.setString(2, Minecraft.getMinecraft().thePlayer.getGameProfile().getId().toString());
                    			    r.execute();
                    			    r.close();
                    		    } catch (SQLException e) {
                    			    e.printStackTrace();
                    		    }
                    		}
                    		if(job == "Miner") {
                    			double miner_base_xp = getMinerXp(p);
                    			int miner_base_level = getMinerLevel(p);
                    			double miner_xp = miner_base_xp + getXpForLevel(miner_base_level, xp);
                    			int miner_max_xp = getMaxXpForLevel(miner_base_level);
                    			long time = System.currentTimeMillis();
                    			if(!Main.overlay_xp.containsKey(p) && getXpForLevel(miner_base_level, xp) != 0) {
                    				Main.overlay_xp.put(p, getXpForLevel(miner_base_level, xp));
                    				Main.overlay_time.put(p, time + 2000);
                    			} else if(getXpForLevel(miner_base_level, xp) != 0){
                    				Double sup = Main.overlay_xp.get(p);
                    				Main.overlay_xp.remove(p);
                    				Main.overlay_time.remove(p);
                    				Main.overlay_time.put(p, time + 2000);
                    				Main.overlay_xp.put(p, getXpForLevel(miner_base_level, xp) + sup);
                    			}
                    			if(miner_xp >= miner_max_xp && !(miner_base_level + 1 == 21)) {
                    				try {
                    				    PreparedStatement r = main.connection.prepareStatement("UPDATE jobs SET miner_level = ? WHERE uuid = ?");
                    				    r.setInt(1, miner_base_level + 1);
                    				    r.setString(2, Minecraft.getMinecraft().thePlayer.getGameProfile().getId().toString());
                    				    r.execute();
                    				    r.close();
                    			    } catch (SQLException e) {
                    				    e.printStackTrace();
                    			    }
                    				giftForLevel(p, miner_base_level + 1);
                    			}
                    			try {
                    			    PreparedStatement r = main.connection.prepareStatement("UPDATE jobs SET miner_xp = ? WHERE uuid = ?");
                    		     	r.setDouble(1, miner_xp);
                    		    	r.setString(2, Minecraft.getMinecraft().thePlayer.getGameProfile().getId().toString());
                    			    r.execute();
                    			    r.close();
                    		    } catch (SQLException e) {
                    			    e.printStackTrace();
                    		    }
                    		}
                    		if(job == "Hunter") {
                    			double hunter_base_xp = getHunterXp(p);
                    			int hunter_base_level = getHunterLevel(p);
                    			double hunter_xp = hunter_base_xp + getXpForLevel(hunter_base_level, xp);
                    			int hunter_max_xp = getMaxXpForLevel(hunter_base_level);
                    			long time = System.currentTimeMillis();
                    			if(!Main.overlay_xp.containsKey(p) && getXpForLevel(hunter_base_level, xp) != 0) {
                    				Main.overlay_xp.put(p, getXpForLevel(hunter_base_level, xp));
                    				Main.overlay_time.put(p, time + 2000);
                    			} else if(getXpForLevel(hunter_base_level, xp) != 0){
                    				Double sup = Main.overlay_xp.get(p);
                    				Main.overlay_xp.remove(p);
                    				Main.overlay_time.remove(p);
                    				Main.overlay_time.put(p, time + 2000);
                    				Main.overlay_xp.put(p, getXpForLevel(hunter_base_level, xp) + sup);
                    			}
                    			if(hunter_xp >= hunter_max_xp && !(hunter_base_level + 1 == 21)) {
                    				try {
                    				    PreparedStatement r = main.connection.prepareStatement("UPDATE jobs SET hunter_level = ? WHERE uuid = ?");
                    				    r.setInt(1, hunter_base_level + 1);
                    				    r.setString(2, Minecraft.getMinecraft().thePlayer.getGameProfile().getId().toString());
                    				    r.execute();
                    				    r.close();
                    			    } catch (SQLException e) {
                    				    e.printStackTrace();
                    			    }
                    				giftForLevel(p, hunter_base_level + 1);
                    			}
                    			try {
                    			    PreparedStatement r = main.connection.prepareStatement("UPDATE jobs SET hunter_xp = ? WHERE uuid = ?");
                    		     	r.setDouble(1, hunter_xp);
                    		    	r.setString(2, Minecraft.getMinecraft().thePlayer.getGameProfile().getId().toString());
                    			    r.execute();
                    			    r.close();
                    		    } catch (SQLException e) {
                    			    e.printStackTrace();
                    		    }
                    		}
                    	}
                    	
                    	
                    	public static void giftForLevel(EntityPlayer p, int level) {
                    		p.addChatMessage(new ChatComponentText("Bravo, tu passes niveau "+level+" félicitations ! Voici un petit cadeau pour toi !"));
                    		System.out.println("Récompense de niveau "+level+" pour "+Minecraft.getMinecraft().thePlayer.getGameProfile().getName());
                    		if(level == 2) {MinecraftServer.getServer().getCommandManager().executeCommand(MinecraftServer.getServer(), "give "+Minecraft.getMinecraft().thePlayer.getGameProfile().getName()+" elonia:fluorine_sword");}
                    		if(level == 3) {}
                    		if(level == 4) {}
                    		if(level == 5) {}
                    		if(level == 6) {}
                    		if(level == 7) {}
                    		if(level == 8) {}
                    		if(level == 9) {}
                    		if(level == 10) {}
                    		if(level == 11) {}
                    		if(level == 12) {}
                    		if(level == 13) {}
                    		if(level == 14) {}
                    		if(level == 15) {}
                    		if(level == 16) {}
                    		if(level == 17) {}
                    		if(level == 18) {}
                    		if(level == 19) {}
                    		if(level == 20) {}
                    	}
                    }
                    

                    Logiquement, ca retourne false si le joueur n’est pas inscrit et si oui ca return true. La ca me met juste une erreur.

                    1 réponse Dernière réponse Répondre Citer 0
                    • robin4002R Hors-ligne
                      robin4002 Moddeurs confirmés Rédacteurs Administrateurs
                      dernière édition par

                      Tu as toujours un NPE.
                      Utilises ton débogueur pour trouver quelle variable est null.

                      1 réponse Dernière réponse Répondre Citer 0
                      • F Hors-ligne
                        FullLager
                        dernière édition par FullLager

                        C’est bon j’arrive à me connecter maintenant. Mais lorsque j’ouvre le menu, le client n’arrive pas à récupérer les données du joueur stockées dans la bdd. Comment faire pour que :
                        -Le client demande au serveur les données
                        -Le serveur interroge la base de données
                        -Le client reçoit les données et les écrits dans le GUI

                        Merci

                        1 réponse Dernière réponse Répondre Citer 0
                        • robin4002R Hors-ligne
                          robin4002 Moddeurs confirmés Rédacteurs Administrateurs
                          dernière édition par

                          En utilisant des paquets.
                          https://www.minecraftforgefrance.fr/topic/1000/1-7-2-le-network

                          1 réponse Dernière réponse Répondre Citer 0
                          • 1 / 1
                          • Premier message
                            Dernier message
                          Design by Woryk
                          ContactMentions Légales

                          MINECRAFT FORGE FRANCE © 2024

                          Powered by NodeBB