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

Помогите Подключение плагина к SQL и вывод данных игрока

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

Статус темы:
Закрыта.
  1. Автор темы
    maksim182003

    maksim182003 Активный участник Пользователь

    Баллы:
    78
    Имя в Minecraft:
    maksim182003
    Пишу дополнение для Iconomy и Pex, но появилась проблема: "Как подключить плагин к SQL и вывести данные?"
    P.S На других форумах нормального не нашел
     
    Последнее редактирование: 2 июн 2015
  2. Хостинг MineCraft
    <
  3. Plasticable

    Plasticable Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    plasticable
    Имя в Minecraft:
    Plasticable
  4. Автор темы
    maksim182003

    maksim182003 Активный участник Пользователь

    Баллы:
    78
    Имя в Minecraft:
    maksim182003
    К sql подключил, теперь нужны вывести данные игрока[DOUBLEPOST=1433230206,1433230173][/DOUBLEPOST]А по пакету в клиент сам отправлю[DOUBLEPOST=1433234094][/DOUBLEPOST] upload_2015-6-2_11-34-34.png ошибка.Как исправить
     
  5. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Инициализировать переменную balance
     
  6. Автор темы
    maksim182003

    maksim182003 Активный участник Пользователь

    Баллы:
    78
    Имя в Minecraft:
    maksim182003
    как это сделать[DOUBLEPOST=1433236652,1433236600][/DOUBLEPOST]Вот код:
    package ru.max;

    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.logging.Level;
    import java.util.logging.Logger;

    import org.bukkit.entity.Player;
    import org.bukkit.plugin.Plugin;

    public abstract class IConomyEnter implements Plugin {

    public void main(Player s1) {

    Connection con = null;
    Statement st = null;
    ResultSet rs = null;

    String url = "jdbc:mysql://localhost:3306/testdb";
    String user = "testuser";
    String password = "test623";

    try {
    con = DriverManager.getConnection(url, user, password);
    st = con.createStatement();
    rs = st.executeQuery("select balance from `accounts` where `login`= " + s1);

    if (rs.next()) {
    s1.sendPluginMessage(this, "balance", rs.getString(1).getBytes());
    }

    } catch (SQLException ex) {
    Logger lgr = Logger.getLogger(IConomyEnter.class.getName());
    lgr.log(Level.SEVERE, ex.getMessage(), ex);

    } finally {
    try {
    if (rs != null) {
    rs.close();
    }
    if (st != null) {
    st.close();
    }
    if (con != null) {
    con.close();
    }

    } catch (SQLException ex) {
    Logger lgr = Logger.getLogger(IConomyEnter.class.getName());
    lgr.log(Level.WARNING, ex.getMessage(), ex);
    }
    }
    }
    }[DOUBLEPOST=1433236821][/DOUBLEPOST]
    Вот так upload_2015-6-2_12-20-15.png ?
     
  7. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Изучить язык, а потом что-то делать.
     
  8. Автор темы
    maksim182003

    maksim182003 Активный участник Пользователь

    Баллы:
    78
    Имя в Minecraft:
    maksim182003
    Блин.Ошибок нет, а к Mysql не конектится[DOUBLEPOST=1433239498,1433239252][/DOUBLEPOST]
    package ru.max;

    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.util.Iterator;





    import org.bukkit.Bukkit;
    import org.bukkit.entity.Player;
    import org.bukkit.event.Listener;
    import org.bukkit.plugin.java.JavaPlugin;

    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.logging.Level;
    import java.util.logging.Logger;


    public class IConomyEnter extends JavaPlugin implements Listener{

    static String balance = "0";

    public void onEnable(){
    Bukkit.getMessenger().registerOutgoingPluginChannel(this, "balance");
    this.getServer().getScheduler().scheduleSyncRepeatingTask(this, new Runnable() {
    public void run() {
    sendPackets();
    }
    }, 20,20);
    }

    public static void main(Player s1) {

    Connection con = null;
    Statement st = null;
    ResultSet rs = null;

    String url = "jdbc:mysql://localhost:3306/1";
    String user = "root";
    String password = "";

    try {
    con = DriverManager.getConnection(url, user, password);
    st = con.createStatement();
    rs = st.executeQuery("select balance from `accounts` where `login`= " + s1);

    if (rs.next()) {
    //System.out.println(rs.getString(1));
    balance = rs.getString(1);
    }

    } catch (SQLException ex) {

    } finally {
    try {
    if (rs != null) {
    rs.close();
    }
    if (st != null) {
    st.close();
    }
    if (con != null) {
    con.close();
    }

    } catch (SQLException ex) {
    }
    }
    }

    public void sendPackets(){
    for (Player s1 : getServer().getOnlinePlayers())
    {
    main(s1);
    s1.sendPluginMessage(this, "balance", balance.getBytes());
    }
    }
    }
     
  9. Code

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

    Баллы:
    123
    Имя в Minecraft:
    _Gizmo
    в catch напиши ex.printStackTrace(), он выведет ошибку
     
  10. Автор темы
    maksim182003

    maksim182003 Активный участник Пользователь

    Баллы:
    78
    Имя в Minecraft:
    maksim182003
    Спасибо всем кто помог!Все работает.Возможно выложу в паблик.Тему закрываю![DOUBLEPOST=1433248976,1433241570][/DOUBLEPOST]Почему то CraftPlayer перед ником ставиться
     
  11. Code

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

    Баллы:
    123
    Имя в Minecraft:
    _Gizmo
    Player s1
    s1 не строка. имя игрока надо оттуда достать соответствующим методом.
     
  12. Автор темы
    maksim182003

    maksim182003 Активный участник Пользователь

    Баллы:
    78
    Имя в Minecraft:
    maksim182003
    Каким?Фильтрация?[DOUBLEPOST=1433249746,1433249711][/DOUBLEPOST]
    Или player.getname()?[DOUBLEPOST=1433255390][/DOUBLEPOST]Все исправил!
     
Статус темы:
Закрыта.

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