Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Dismiss Notice

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

Discussion in 'Разработка плагинов для новичков' started by MySt1k, Jul 16, 2013.

  1. Автор темы
    MySt1k

    MySt1k Старожил Пользователь

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

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

    Вот код который отвечает за подкл. к бд и выбор таблиц.
    Code:
    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());
        }
      }
    }
     
    Black-UK-Lord likes this.
  2. Хостинг MineCraft
    <
  3. Автор темы
    MySt1k

    MySt1k Старожил Пользователь

    Trophy Points:
    173
    Актуально! Жду помощи.
     
  4. ptnk

    ptnk Старожил Пользователь

    Trophy Points:
    173
    Воспользуйся готовым плагином от Свевчика.
     
  5. Автор темы
    MySt1k

    MySt1k Старожил Пользователь

    Trophy Points:
    173
    Охото этот дописать
     
  6. Jampire

    Jampire Старожил Пользователь

    Trophy Points:
    173
    Skype:
    jampire-h
    Имя в Minecraft:
    Jampire
    Как я понял по коду - предметы не имеют метаданных, выдаются дефольтные их версии? Ид + дата
    В любом случае отпишитесь в скайп.
     
  7. Евгеха19_93

    Евгеха19_93 Старожил Пользователь

    Trophy Points:
    153
    Имя в Minecraft:
    Xeleon
    Можно мне линку?
     
  8. EnDiz

    EnDiz Старожил Пользователь

    Trophy Points:
    123
    Имя в Minecraft:
    endiz
    Допишу плагин,подредактирую все сделаю на ваше усмотрение за плату.
     
  9. Автор темы
    MySt1k

    MySt1k Старожил Пользователь

    Trophy Points:
    173
    Я уже все сам дописал, подредактировал. Вот только забываю собрать плагин. лень качать библиотеки.
     

Share This Page