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

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

Статус
Закрыто для дальнейших ответов.

maksim182003

Активный участник
Пользователь
Баллы
78
Имя в Minecraft
maksim182003
Пишу дополнение для Iconomy и Pex, но появилась проблема: "Как подключить плагин к SQL и вывести данные?"
P.S На других форумах нормального не нашел
 
Последнее редактирование:
Инициализировать переменную balance
 
Инициализировать переменную balance
как это сделать
Вот код:
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);
}
}
}
}
Инициализировать переменную balance
Вот такupload_2015-6-2_12-20-15.png?
 
как это сделать
Вот код:
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);
}
}
}
}

Вот такПосмотреть вложение 32912?
Изучить язык, а потом что-то делать.
 
Блин.Ошибок нет, а к Mysql не конектится
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());
}
}
}
 
Спасибо всем кто помог!Все работает.Возможно выложу в паблик.Тему закрываю!
Почему то CraftPlayer перед ником ставиться
 
Player s1
s1 не строка. имя игрока надо оттуда достать соответствующим методом.
 
Статус
Закрыто для дальнейших ответов.

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

Назад
Верх