Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Помогите Дописать плагин выдачи предметов из БД.

MySt1k

Старожил
Пользователь
Баллы
173
Мне нужно дописать плагин выдачи предметов из бд, но только что бы он был мультисерверный. Я остановился на том что бы сделать проверку на слово. Поясняю, есть в таблице колонка msmod, где я храню названия серверов. Например я имею там название sandbox то в конфиге плагина нужно указать это название что бы в дальнейшем плагин брал значения со всех колонок и той что я говорил ранее только если в ней имеется это слово, в противном случаи должно писать "Вы не имеете купленных вещей".

Надеюсь на вашу помощь, сам дописать не могу, ооооочень мало знаний в java.

Вот код который отвечает за подкл. к бд и выбор таблиц.
Код:
public class MySQL
{
  private Connection connection = null;
  private Statement statement = null;
  private ResultSet resultSet = null;
  private String host;
  private int port;
  private String database;
  private String username;
  private String password;
  private String tableName;
 
  public MySQL(String host, int port, String database, String username, String password, String tableName)
  {
    this.host = host;
    this.port = port;
    this.database = database;
    this.username = username;
    this.password = password;
    this.tableName = tableName;
    connect();
  }
 
  public void connect() {
    try {
      Class.forName("com.mysql.jdbc.Driver").newInstance();
 
      this.connection = DriverManager.getConnection("jdbc:mysql://" + this.host +
        ":" + this.port + "/" + this.database + "?" + "user=" + this.username +
        "&password=" + this.password);
 
      this.statement = this.connection.createStatement(1004, 1008);
      String query = "CREATE TABLE IF NOT EXISTS " + this.tableName + "(id INT NOT NULL AUTO_INCREMENT ,nickname VARCHAR(45) NOT NULL ,item_id VARCHAR(100) NOT NULL ,item_amount VARCHAR(11) NOT NULL,PRIMARY KEY (`id`))";
      this.statement.execute(query);
    } catch (Exception e) {
      System.out.println("[MySQL] Can't connect to database!");
      System.out.println(e);
    }
  }
 
  void close() {
    try {
      if (this.resultSet != null) {
        this.resultSet.close();
      }
 
      if (this.statement != null) {
        this.statement.close();
      }
 
      if (this.connection != null)
        this.connection.close();
    }
    catch (Exception localException)
    {
    }
  }
 
  public void buy(Player pl) {
    String player = pl.getName();
    String query = "SELECT id,item_id,item_amount FROM " + this.tableName + " WHERE nickname='" + player + "'";
    try {
      if (this.connection.isClosed()) {
        connect();
      }
      ResultSet rs = this.statement.executeQuery(query);
      while (rs.next()) {
        String kit = rs.getString(2) + " " + rs.getString(3);
        if (kit != null) {
          int count = 1;
 
          String[] arry = kit.split(" ");
          if (arry.length > 1) {
            try {
              count = Integer.parseInt(arry[1]);
            } catch (NumberFormatException e) {
              continue;
            }
          }
          kit = arry[0];
          int ret = Shop.GetItems(pl, kit, count);
          if (ret == -1) {
            System.out.println("Add items to the player failed!");
          }
          else if (ret == 0) {
            rs.deleteRow();
          }
          else {
            rs.updateString("item_id", kit + " " + ret);
            rs.updateRow();
          }
        }
      }
    } catch (SQLException e) {
      pl.sendMessage("Произошла ошибка, сообщите администратору!");
      System.out.println("[MySQL] Unable to get player's buys!");
      System.out.println(e.getMessage());
    }
  }
}
 
Воспользуйся готовым плагином от Свевчика.
 
Как я понял по коду - предметы не имеют метаданных, выдаются дефольтные их версии? Ид + дата
В любом случае отпишитесь в скайп.
 

Поделиться этой страницей

Назад
Верх