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

Помогите Выдача монет при убийстве игрока

Discussion in 'Разработка плагинов для новичков' started by BlazeFoxPro, Apr 6, 2017.

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

    BlazeFoxPro Новичок Пользователь

    Trophy Points:
    11
    Имя в Minecraft:
    BlazefoxPro
    Ребята опять хелп.Выдаю монеты своим плагином.Щас добавлю код.
    Code:
    package ru.blazemc.blazekillcoins;
    
    import org.bukkit.plugin.java.*;
    import java.util.logging.*;
    import ru.bobik.blazemc.CoinsAPI;
    
    import java.io.*;
    import org.bukkit.plugin.*;
    import org.bukkit.event.entity.*;
    import org.bukkit.*;
    import org.bukkit.entity.*;
    import org.bukkit.configuration.file.*;
    import org.bukkit.inventory.*;
    import org.bukkit.event.*;
    
    public class Main extends JavaPlugin implements Listener
    {
        public static final Logger _log;
        public static CoinsAPI api;
       
        static {
            _log = Logger.getLogger("Minecraft");
            Main.api = null;
        }
       
        public void onEnable() {
            Main._log.info("[BlazeKill] Good luck on PvP! (by BlazeMC)");
            final File fileConf = new File(this.getDataFolder(), "config.yml");
            if (!fileConf.exists()) {
                final InputStream resourceAsStream = Main.class.getResourceAsStream("/ru/blazemc/blazekillcoins/config.yml");
                this.getDataFolder().mkdirs();
                try {
                    final FileOutputStream fos = new FileOutputStream(fileConf);
                    byte[] buff = new byte[65536];
                    int n;
                    while ((n = resourceAsStream.read(buff)) > 0) {
                        fos.write(buff, 0, n);
                        fos.flush();
                    }
                    fos.close();
                    buff = null;
                }
                catch (Exception e) {
                    e.printStackTrace();
                }
            }
            Bukkit.getPluginManager().registerEvents((Listener)this, (Plugin)this);
        }
       
        public void onDisable() {
            Main._log.info("[BlazeKill] Stoped :( (by BlazeMC)");
        }
       
        private boolean setupCoins() {
            final RegisteredServiceProvider<CoinsAPI> economyProvider = (RegisteredServiceProvider<CoinsAPI>)this.getServer().getServicesManager().getRegistration(CoinsAPI.class);
            if (economyProvider != null) {
                Main.api = (CoinsAPI)economyProvider.getProvider();
            }
            return Main.api != null;
        }
       
        @SuppressWarnings("deprecation")
        @EventHandler
        public void onDeath(final PlayerDeathEvent e) {
            final Player player = e.getEntity();
            final FileConfiguration conf = (FileConfiguration)YamlConfiguration.loadConfiguration(new File(this.getDataFolder(), "\\config.yml"));
            final int AmountMoney = conf.getInt("amount-coins");
            if (player.getKiller() != null) {
                final Player killer = player.getKiller();
                if (this.setupCoins()) {
                    CoinsAPI.addCoins(killer, AmountMoney);
                    killer.sendMessage(ChatColor.GOLD + "Вы получили " + AmountMoney + "$ за убийство " + player.getName() + ".");
                    player.sendMessage(ChatColor.GOLD + "Вы потеряли " + AmountMoney + "$.");
                }
                else {
                    final PlayerInventory inv = killer.getInventory();
                    inv.addItem(new ItemStack[] { new ItemStack(conf.getInt("id-item"), conf.getInt("amount-item")) });
                    killer.sendMessage(ChatColor.GOLD + "Вы получили награду за убийство " + player.getName() + ".");
                    player.sendMessage(ChatColor.GOLD + killer.getName() + " получил награду за вашу голову.");
                }
            }
        }
    }
    
    И вот
    Code:
    package ru.bobik.blazemc;
    
    import org.bukkit.entity.*;
    import java.sql.*;
    
    public class CoinsAPI
    {
        public static void createTable() {
            if (API.useMySQL && API.mySQL != null) {
                try {
                    final PreparedStatement ps = API.mySQL.getStatement("CREATE TABLE IF NOT EXISTS Coins (Spielername VARCHAR(100), UUID VARCHAR(100), Coins INT(100))");
                    ps.executeUpdate();
                }
                catch (Exception ex) {
                    ex.printStackTrace();
                }
            }
        }
       
        public static void register(final Player p) {
            if (API.useMySQL && API.mySQL != null) {
                try {
                    final PreparedStatement ps = API.mySQL.getStatement("INSERT INTO Coins (Spielername, UUID, Coins) VALUES (?, ?, ?)");
                    ps.setString(1, p.getName());
                    ps.setString(2, p.getUniqueId().toString());
                    ps.setInt(3, 0);
                    ps.executeUpdate();
                    ps.close();
                }
                catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
       
        public static boolean isRegistered(final Player p) {
            if (API.useMySQL && API.mySQL != null) {
                try {
                    final PreparedStatement ps = API.mySQL.getStatement("SELECT * FROM Coins WHERE UUID= ?");
                    ps.setString(1, p.getUniqueId().toString());
                    final ResultSet rs = ps.executeQuery();
                    final boolean user = rs.next();
                    rs.close();
                    rs.close();
                    return user;
                }
                catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            return false;
        }
       
        public static boolean isRegistered(final String name) {
            if (API.useMySQL && API.mySQL != null) {
                try {
                    final PreparedStatement ps = API.mySQL.getStatement("SELECT * FROM Coins WHERE Spielername= ?");
                    ps.setString(1, name);
                    final ResultSet rs = ps.executeQuery();
                    final boolean user = rs.next();
                    rs.close();
                    rs.close();
                    return user;
                }
                catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            return false;
        }
       
        public static int getCoins(final Player p) {
            if (API.useMySQL && API.mySQL != null) {
                try {
                    final PreparedStatement ps = API.mySQL.getStatement("SELECT * FROM Coins WHERE UUID= ?");
                    ps.setString(1, p.getUniqueId().toString());
                    final ResultSet rs = ps.executeQuery();
                    rs.next();
                    final int coins = rs.getInt("Coins");
                    rs.close();
                    ps.close();
                    return coins;
                }
                catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            return -1;
        }
       
        public static void setCoins(final Player p, final int coins) {
            if (API.useMySQL && API.mySQL != null) {
                try {
                    final PreparedStatement ps = API.mySQL.getStatement("UPDATE Coins SET Coins= ? WHERE UUID= ?");
                    ps.setInt(1, coins);
                    ps.setString(2, p.getUniqueId().toString());
                    ps.executeUpdate();
                    ps.close();
                }
                catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
       
        public static void addCoins(final Player p, final int coins) {
            if (API.useMySQL && API.mySQL != null) {
                try {
                    final PreparedStatement ps = API.mySQL.getStatement("UPDATE Coins SET Coins= ? WHERE UUID= ?");
                    ps.setInt(1, getCoins(p) + coins);
                    ps.setString(2, p.getUniqueId().toString());
                    ps.executeUpdate();
                    ps.close();
                }
                catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
       
        public static void removeCoins(final Player p, final int coins) {
            if (API.useMySQL && API.mySQL != null) {
                try {
                    final PreparedStatement ps = API.mySQL.getStatement("UPDATE Coins SET Coins= ? WHERE UUID= ?");
                    ps.setInt(1, getCoins(p) - coins);
                    ps.setString(2, p.getUniqueId().toString());
                    ps.executeUpdate();
                    ps.close();
                }
                catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
       
        public static int getCoins(final String name) {
            if (API.useMySQL && API.mySQL != null) {
                try {
                    final PreparedStatement ps = API.mySQL.getStatement("SELECT * FROM Coins WHERE Spielername= ?");
                    ps.setString(1, name);
                    final ResultSet rs = ps.executeQuery();
                    rs.next();
                    final int coins = rs.getInt("Coins");
                    rs.close();
                    ps.close();
                    return coins;
                }
                catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            return -1;
        }
       
        public static void setCoins(final String name, final int coins) {
            if (API.useMySQL && API.mySQL != null) {
                try {
                    final PreparedStatement ps = API.mySQL.getStatement("UPDATE Coins SET Coins= ? WHERE Spielername= ?");
                    ps.setInt(1, coins);
                    ps.setString(2, name);
                    ps.executeUpdate();
                    ps.close();
                }
                catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
       
        public static void addCoins(final String name, final int coins) {
            if (API.useMySQL && API.mySQL != null) {
                try {
                    final PreparedStatement ps = API.mySQL.getStatement("UPDATE Coins SET Coins= ? WHERE Spielername= ?");
                    ps.setInt(1, getCoins(name) + coins);
                    ps.setString(2, name);
                    ps.executeUpdate();
                    ps.close();
                }
                catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
       
        public static void removeCoins(final String name, final int coins) {
            if (API.useMySQL && API.mySQL != null) {
                try {
                    final PreparedStatement ps = API.mySQL.getStatement("UPDATE Coins SET Coins= ? WHERE Spielername= ?");
                    ps.setInt(1, getCoins(name) - coins);
                    ps.setString(2, name);
                    ps.executeUpdate();
                    ps.close();
                }
                catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
    }
    
     
  2. Хостинг MineCraft
    <
  3. Автор темы
    BlazeFoxPro

    BlazeFoxPro Новичок Пользователь

    Trophy Points:
    11
    Имя в Minecraft:
    BlazefoxPro
  4. xBrainRTPx

    xBrainRTPx Новичок Пользователь

    Trophy Points:
    21
    Имя в Minecraft:
    Brat987
    А в чем проблема?
     
  5. DonDays

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

    Trophy Points:
    96
    Имя в Minecraft:
    DonDays
    скачать исходники SWRel с гитхаба, и переписать систему эко под твое апи.
     

Share This Page