// Path: src/main/java/enums/City.java
// public enum City {
// 
//     BONTA("city.bonta", "<:bonta:411236938771857431>"), BRAKMAR("city.brakmar", "<:brakmar:411237228736675860>");
// 
//     private static Map<String, City> cities;
//     private String name;
//     private String logo;
// 
//     City(String name, String logo){ this.name = name; this.logo = logo;}
// 
//     public String getName(){
//         return name;
//     }
// 
//     public String getLogo(){
//         return logo;
//     }
// 
//     public String getLabel(Language lg){
//         return Translator.getLabel(lg, getName());
//     }
// 
//     public static City getCity(String name){
//         if (cities == null){
//             cities = new HashMap<>();
//             for(City city : City.values())
//                 cities.put(city.getName(), city);
//         }
// 
//         if (cities.containsKey(name))
//             return cities.get(name);
//         throw new IllegalArgumentException("No city found for \"" + name + "\".");
//     }
// }
// 
// Path: src/main/java/enums/Language.java
// public enum Language {
// 
//     FR("Français", "FR"), EN("English", "EN"), ES("Español", "ES");
// 
//     private String name;
//     private String abrev;
// 
//     Language(String name, String abrev){
//         this.name = name;
//         this.abrev = abrev;
//     }
// 
//     public String getName() {
//         return name;
//     }
// 
//     public String getAbrev() {
//         return abrev;
//     }
// 
//     @Override
//     public String toString(){
//         return name;
//     }
// }
// 
// Path: src/main/java/enums/Order.java
// public enum Order {
// 
//     COEUR("order.heart", ":heart:"), ESPRIT("order.spirit", ":ghost:"), OEIL("order.eye", ":eye:");
// 
//     private static Map<String, Order> orders;
//     private String name;
//     private String logo;
// 
//     Order(String name, String logo){ this.name = name; this.logo = logo;}
// 
//     public String getName(){
//         return name;
//     }
// 
//     public String getLogo(){
//         return logo;
//     }
// 
//     public String getLabel(Language lg){
//         return Translator.getLabel(lg, getName());
//     }
// 
//     public static Order getOrder(String name){
//         if (orders == null){
//             orders = new HashMap<>();
//             for(Order order : Order.values())
//                 orders.put(order.getName(), order);
//         }
// 
//         if (orders.containsKey(name))
//             return orders.get(name);
//         throw new IllegalArgumentException("Aucun ordre trouvé pour \"" + name + "\".");
//     }
// }


import discord4j.common.util.Snowflake;
import discord4j.core.object.entity.Member;
import discord4j.core.object.presence.Presence;
import discord4j.core.object.presence.Status;
import discord4j.core.spec.EmbedCreateSpec;
import enums.City;
import enums.Language;
import enums.Order;
import java.awt.Color;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import util.*;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.*;
import java.util.function.Consumer;
            LOG.error("setLevel", e);
        }
    }

    /**
     * Ajoute à la base de donnée l'objet si celui-ci n'y est pas déjà.
     */
    public synchronized void addToDatabase(){
        if (! getOrders().containsKeys(idUser, server, city, order) && level > 0) {
            getOrders().add(this, idUser, server, city, order);
            Connexion connexion = Connexion.getInstance();
            Connection connection = connexion.getConnection();

            try {
                PreparedStatement preparedStatement = connection.prepareStatement(
                        "INSERT INTO Order_User(id_user, server_dofus, name_city, name_order, level) "
                                + "VALUES(?, ?, ?, ?, ?);");
                preparedStatement.setString(1, String.valueOf(idUser));
                preparedStatement.setString(2, server.getName());
                preparedStatement.setString(3, city.getName());
                preparedStatement.setString(4, order.getName());
                preparedStatement.setInt(5, level);

                preparedStatement.executeUpdate();
            } catch (SQLException e) {
                LOG.error("addToDatabase", e);
            }
        }
    }

// Path: src/main/java/enums/City.java
// public enum City {
// 
//     BONTA("city.bonta", "<:bonta:411236938771857431>"), BRAKMAR("city.brakmar", "<:brakmar:411237228736675860>");
// 
//     private static Map<String, City> cities;
//     private String name;
//     private String logo;
// 
//     City(String name, String logo){ this.name = name; this.logo = logo;}
// 
//     public String getName(){
//         return name;
//     }
// 
//     public String getLogo(){
//         return logo;
//     }
// 
//     public String getLabel(Language lg){
//         return Translator.getLabel(lg, getName());
//     }
// 
//     public static City getCity(String name){
//         if (cities == null){
//             cities = new HashMap<>();
//             for(City city : City.values())
//                 cities.put(city.getName(), city);
//         }
// 
//         if (cities.containsKey(name))
//             return cities.get(name);
//         throw new IllegalArgumentException("No city found for \"" + name + "\".");
//     }
// }
// 
// Path: src/main/java/enums/Language.java
// public enum Language {
// 
//     FR("Français", "FR"), EN("English", "EN"), ES("Español", "ES");
// 
//     private String name;
//     private String abrev;
// 
//     Language(String name, String abrev){
//         this.name = name;
//         this.abrev = abrev;
//     }
// 
//     public String getName() {
//         return name;
//     }
// 
//     public String getAbrev() {
//         return abrev;
//     }
// 
//     @Override
//     public String toString(){
//         return name;
//     }
// }
// 
// Path: src/main/java/enums/Order.java
// public enum Order {
// 
//     COEUR("order.heart", ":heart:"), ESPRIT("order.spirit", ":ghost:"), OEIL("order.eye", ":eye:");
// 
//     private static Map<String, Order> orders;
//     private String name;
//     private String logo;
// 
//     Order(String name, String logo){ this.name = name; this.logo = logo;}
// 
//     public String getName(){
//         return name;
//     }
// 
//     public String getLogo(){
//         return logo;
//     }
// 
//     public String getLabel(Language lg){
//         return Translator.getLabel(lg, getName());
//     }
// 
//     public static Order getOrder(String name){
//         if (orders == null){
//             orders = new HashMap<>();
//             for(Order order : Order.values())
//                 orders.put(order.getName(), order);
//         }
// 
//         if (orders.containsKey(name))
//             return orders.get(name);
//         throw new IllegalArgumentException("Aucun ordre trouvé pour \"" + name + "\".");
//     }
// }


// Path: src/main/java/data/OrderUser.java
import discord4j.common.util.Snowflake;
import discord4j.core.object.entity.Member;
import discord4j.core.object.presence.Presence;
import discord4j.core.object.presence.Status;
import discord4j.core.spec.EmbedCreateSpec;
import enums.City;
import enums.Language;
import enums.Order;
import java.awt.Color;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import util.*;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.*;
import java.util.function.Consumer;

            LOG.error("setLevel", e);
        }
    }

    /**
     * Ajoute à la base de donnée l'objet si celui-ci n'y est pas déjà.
     */
    public synchronized void addToDatabase(){
        if (! getOrders().containsKeys(idUser, server, city, order) && level > 0) {
            getOrders().add(this, idUser, server, city, order);
            Connexion connexion = Connexion.getInstance();
            Connection connection = connexion.getConnection();

            try {
                PreparedStatement preparedStatement = connection.prepareStatement(
                        "INSERT INTO Order_User(id_user, server_dofus, name_city, name_order, level) "
                                + "VALUES(?, ?, ?, ?, ?);");
                preparedStatement.setString(1, String.valueOf(idUser));
                preparedStatement.setString(2, server.getName());
                preparedStatement.setString(3, city.getName());
                preparedStatement.setString(4, order.getName());
                preparedStatement.setInt(5, level);

                preparedStatement.executeUpdate();
            } catch (SQLException e) {
                LOG.error("addToDatabase", e);
            }
        }
    }

    private City getCity() {