1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

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

Тема в разделе "Разработка плагинов для новичков", создана пользователем MySt1k, 16 июл 2013.

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

    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());
        }
      }
    }
     
    Black-UK-Lord нравится это.
  2. Автор темы
    MySt1k

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

    Баллы:
    173
    Актуально! Жду помощи.
     
  3. ptnk

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

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

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

    Баллы:
    173
    Охото этот дописать
     
  5. Jampire

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

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

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

    Баллы:
    153
    Имя в Minecraft:
    Xeleon
    Можно мне линку?
     
  7. EnDiz

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

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

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

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

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