Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package ru.Twinger;
- import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;
- import org.bukkit.Bukkit;
- import org.bukkit.ChatColor;
- import org.bukkit.command.Command;
- import org.bukkit.command.CommandExecutor;
- import org.bukkit.command.CommandSender;
- import org.bukkit.entity.Player;
- import org.bukkit.event.EventHandler;
- import org.bukkit.event.Listener;
- import org.bukkit.event.player.PlayerLoginEvent;
- import org.bukkit.event.player.PlayerLoginEvent.Result;
- import org.bukkit.plugin.java.JavaPlugin;
- import java.sql.Connection;
- import java.sql.PreparedStatement;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- public final class Main extends JavaPlugin implements Listener {
- private MysqlDataSource ds = null;
- private String sqlGet = null, sqlDelete = null;
- @Override
- public void onEnable() {
- super.onEnable();
- saveDefaultConfig();
- // Set MySQL connector
- ds = new MysqlDataSource();
- ds.setServerName(getConfig().getString("mysql.address"));
- ds.setUser(getConfig().getString("mysql.username"));
- ds.setPassword(getConfig().getString("mysql.password"));
- ds.setDatabaseName(getConfig().getString("mysql.database"));
- // Format SQL queries
- // String table = getConfig().getString("mysql.table");
- // String usernameColumn = getConfig().getString("mysql.usernameColumn");
- // String groupColumn = getConfig().getString("mysql.groupColumn");
- sqlGet = "SELECT `group` FROM `umfetcher` WHERE `username` = ?";
- sqlDelete = "DELETE FROM `umfetcher` WHERE `username`=? AND `group`=?";
- // Register commands and events
- getCommand("cart").setExecutor(new CartCommand());
- getServer().getPluginManager().registerEvents(this, this);
- }
- private void flushCart(Player player, boolean notify) {
- String username = player.getName();
- try (Connection c = ds.getConnection()) {
- String group;
- try (PreparedStatement stmt = c.prepareStatement(sqlGet)) {
- stmt.setString(1, username);
- try (ResultSet result = stmt.executeQuery()) {
- group = result.next() ? result.getString(1) : null;
- }
- }
- // Do nothing if not in database
- if (group == null) {
- if (notify) {
- player.sendMessage(ChatColor.RED + "Ваша корзина пуста");
- }
- return;
- }
- // Delete privilege
- boolean failed;
- try (PreparedStatement stmt = c.prepareStatement(sqlDelete)) {
- stmt.setString(1, username);
- stmt.setString(2, group);
- failed = stmt.executeUpdate() < 1;
- }
- // Verify is failed
- if (failed) {
- player.sendMessage(ChatColor.RED + "[UltraMineFetcher] Не удалось завершить транзакцию");
- return;
- }
- // Give permission
- PermissionsEx.getUser(player).setParentsIdentifier(Collections.singletonList(group));
- //Bukkit.dispatchCommand(Bukkit.getConsoleSender(),"sync console all pex user "+player.getName()+" group set " + group);
- player.sendMessage(ChatColor.GREEN + "Поздравляем! Вам выдана группа " + group);
- } catch (SQLException e) {
- getLogger().severe(e.toString());
- player.sendMessage(ChatColor.RED + "[UltraMineFetcher] Невозможно подключиться к базе");
- }
- }
- @EventHandler
- public void login(PlayerLoginEvent event) {
- if (event.getResult() == Result.ALLOWED) {
- flushCart(event.getPlayer(), false);
- }
- }
- private final class CartCommand implements CommandExecutor {
- @Override
- public boolean onCommand(CommandSender commandSender, Command command, String alias, String[] strings) {
- if (!(commandSender instanceof Player)) {
- commandSender.sendMessage(ChatColor.RED + "Только игроки могут использовать эту команду");
- return true;
- }
- flushCart((Player) commandSender, true);
- return true;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement