Welcome to Bukkit France

Inscrivez-vous maintenant pour profiter d'un accès total à tout le contenu offert par la meilleur communauté Bukkit française ! Une fois inscrit et connecté, vous pourrez contribuez à la communauté en postant vos propres sujets et questions ou en répondant à ceux existants. Vous pourrez aussi customiser votre profil, recevoir des points de réputations, communiquer avec les autres membres via le chat, et plus encore! 

Dermenslof

Membres
  • Compteur de contenus

    2 488
  • Inscription

  • Dernière visite

Réputation sur la communauté

2 757 va-t-il s'arrêter ?!

À propos de Dermenslof

  • Rang
    L'ancien
  • Date de naissance 06/01/1986

Me contacter

  • Minecraft Dermenslof

Informations de profil

  • Sexe
  1. Origine inconnue d'un NPE (tout bug a cause de lui)

    je crois que tu confond declaration et initialisation ... main n'est jamais initialise dans ta class ReportsLislener
  2. Origine inconnue d'un NPE (tout bug a cause de lui)

    juste dans ton IDE il y a  un truc qui s'appel le "debugger" il te suffit de mettre un "break point" sur la ligne qui provoque le nullPointerException ensuite tu a juste a regarder le dump des var utilisees dans cette ligne pour voir laquelle est null
  3. Une sorte de "reload"

    mouai ... reflechissez un peu. dans quel cas peut-on predefinir une liste de ban? aucun il n'y a donc aucun interet a integrer dans le plugin un ban.yml donc ceci suffit amplement: public TonPlugin extends JavaPlugin { private FileConfiguration banConfig; private TonPlugin instance; @Override public void onEnable() { instance = this; banConfig = new YamlConfiguration(ew File(getDataFolder(), "ban.yml")); //... } public static getInstance() { return instance; } public static FileConfiguration getBanConfig() { return banConfig; } }  
  4. Méthode d'inventaire & NPE

    http://stackoverflow.com/questions/33477039/the-way-to-create-abstract-enum
  5. [MySQL] String ou Integer ?

    TINYINT         = 1 octets -> -128 <= val <= 127 SMALLINT     = 2 octets -> -32768 <= val <= 32767 MEDIUMINT   = 3 octets -> -8388608 <= val <= 8388607 INT                = 4 octets -> -2147483648 <= val <= 2147483647 BIGINT          = 8 octets -> -9223372036854775808 <= val <= 9223372036854775807 VARCHAR(5) = 5 octets donc le choix le plus rentable pour toi etant donne que tu as 5 valeurs possibles est d'utiliser un TINYINT et comme ca, cela t'evite de parser la reponse  
  6. Fichier de config

     pas besoin d'initialiser la config si tu fais: int nombreAvertissement = TaClass.getConfig().getInt("warn." + p.getName() + ".avertissement", 1);  
  7. Retrouver un duo dans une liste !

    ba utllise une Map<String, String> plutot. c'est fait pour (association de variable en duo en cle/valeur)   ex: private Map<String, String> duos = new HashMap<>(); //ajout d'un duo public void createDuo(Player a, Player b) { duos.put(a.getNAme(), b.getName()); } // suppression d'un duo public void removeDuo(Player a, Player b) { duos.remove(a.getName()); duos.remove(b.getName()); } //recherche d'un duo public OfflinePlayer searchPartner(Player p) { Iterator<Entry<String, String>> it = duos.entrySet().iterator(); while (it.hasNext()) { Entry<String, String> entry = it.next(); if (entry.getKey().equals(p.getName())) return Bukkit.getOfflinePlayer(entry.getValue()); else if (entry.getValue().equals(p.getName())) return Bukkit.getOfflinePlayer(entry.getKey()); } return null; }  
  8. Trade ilimité avec un NPC Custom ?

    juste comme ca, le field "maxUses" de MerchantRecipe est public et non final. donc pas besoin de reflection...
  9. Plugin pas pris en compte

    un plugin n'est en aucun cas un executable. il faut juste le compiler et l'exporter en jar  
  10. Cuboid selection

    c'est marrant apres 500 message t'as toujours pas compris qu'il y a une fonction rechercher sur le forum ??? tu le dit toi meme un cuboid est represente par 2 location. donc il suffit juste de checker si une location se trouve entre 2 points...
  11. Sérialization de l'inventaire d'un joueur !

    oui
  12. Sérialization de l'inventaire d'un joueur !

    ah dans ce cas la serialise en base64: /* * mysql> CREATE TABLE playerInventory * ( * id INT AUTO_INCREMENT, * uid varchar(36), * value BLOB, * primary key (id) * ); **/ public static void savePlayerInventoryToDB(Player p) throws Exception { PreparedStatement stmt = conn.prepareStatement("REPLACE INTO playerInventory (uid, value) VALUES(?, ?)"); stmt.setString(1, p.getUniueID().toString()); stmt.setObject(2, BukkitSerialization.playerInventoryToBase64(p.getInventory())); stmt.executeUpdate(); stmt.close(); } public static void restorePlayerInventoryFromDB(Player p) throws Exception { PreparedStatement stmt = conn.prepareStatement("SELECT value FROM playerInentory WHERE uid = ?"); stmt.setString(1, p.getUniueID().toString()); ResultSet rs = stmt.executeUpdate(); String[] base64Inv = rs.next() ? (String[])rs.getObject(1) : null; rs.close(); stmt.close(); if (base64Inv == null) throws(new Exception("impossible de trouver l'inventaire de " + p.getName() + " dans la base de donnée")); PlayerInventory inv = p.getInventory(); inv.setContents(BukkitSerialization.itemStackArrayFromBase64(base64Inv[0])); inv.setArmorContents(BukkitSerialization.itemStackArrayFromBase64(base64Inv[1])); }  
  13. Sérialization de l'inventaire d'un joueur !

    /* * mysql> CREATE TABLE playerInventory * ( * id INT AUTO_INCREMENT, * uid varchar(36), * value BLOB, * primary key (id) * ); **/ public static void savePlayerInventoryToDB(Player p) throws Exception { PreparedStatement stmt = conn.prepareStatement("REPLACE INTO playerInventory (uid, value) VALUES(?, ?)"); stmt.setString(1, p.getUniueID().toString()); stmt.setObject(2, p.getInventory().getContents()); stmt.executeUpdate(); stmt.close(); } public static ItemStack[] getPlayerInventoryFromDB(Player p) throws Exception { PreparedStatement stmt = conn.prepareStatement("SELECT value FROM playerInentory WHERE uid = ?"); stmt.setString(1, p.getUniueID().toString()); ResultSet rs = stmt.executeUpdate(); Object obj = rs.next() ? rs.getObject(1) : null; rs.close(); stmt.close(); return (ItemStack[])obj; }  
  14. Sérialization de l'inventaire d'un joueur !

    Object obj = (Object)anyJavaObject;  
  15. Sérialization de l'inventaire d'un joueur !

    un mot: BLOB   ex:http://www.java2s.com/Code/Java/Database-SQL-JDBC/HowtoserializedeserializeaJavaobjecttotheMySQLdatabase.htm