Search in sources :

Example 11 with Item

use of net.minecraft.server.v1_12_R1.Item in project MyPet by xXKeyleXx.

the class ConfigItem method load.

public void load(MaterialHolder material, String data) {
    MinecraftKey key = new MinecraftKey(material.getLegacyName().getName());
    Item item = Item.REGISTRY.get(key);
    if (item == null) {
        return;
    }
    net.minecraft.server.v1_8_R3.ItemStack is = new net.minecraft.server.v1_8_R3.ItemStack(item, 1, material.getLegacyName().getData());
    if (data != null) {
        NBTTagCompound tag = null;
        String nbtString = data.trim();
        if (nbtString.startsWith("{") && nbtString.endsWith("}")) {
            try {
                tag = MojangsonParser.parse(nbtString);
            } catch (Exception e) {
                MyPetApi.getLogger().warning("Error" + ChatColor.RESET + " in config: " + ChatColor.UNDERLINE + e.getLocalizedMessage() + ChatColor.RESET + " caused by:");
                MyPetApi.getLogger().warning(item.getName() + " " + nbtString);
            }
            if (tag != null) {
                is.setTag(tag);
            }
        }
    }
    this.item = CraftItemStack.asCraftMirror(is);
}
Also used : Item(net.minecraft.server.v1_8_R3.Item) NBTTagCompound(net.minecraft.server.v1_8_R3.NBTTagCompound) MinecraftKey(net.minecraft.server.v1_8_R3.MinecraftKey) CraftItemStack(org.bukkit.craftbukkit.v1_8_R3.inventory.CraftItemStack) ItemStack(org.bukkit.inventory.ItemStack)

Example 12 with Item

use of net.minecraft.server.v1_12_R1.Item in project MyMaid2 by jaoafa.

the class Jail method JailAdd.

/**
 * Jailに理由つきでプレイヤーを追加
 * @param cmd コマンド情報
 * @param player オフラインのプレイヤー
 * @param banned_by 追加したプレイヤー
 * @param reason 理由
 * @return 実行できたかどうか
 * @author mine_book000
 * @throws SQLException
 * @throws NullPointerException
 * @throws ClassNotFoundException
 * @throws EscapeJailException
 */
public static boolean JailAdd(OfflinePlayer player, CommandSender banned_by, String reason) throws ClassNotFoundException, NullPointerException, SQLException, EscapeJailException {
    if (player == null) {
        banned_by.sendMessage("[JAIL] " + ChatColor.GREEN + "指定されたプレイヤーは見つかりません。");
        try {
            throw new java.lang.NullPointerException("JailAdd OfflinePlayer is null...!");
        } catch (java.lang.NullPointerException e) {
            BugReporter(e);
        }
        return false;
    }
    if (banned_by instanceof Player) {
        Player banned_by_player = (Player) banned_by;
        Pointjao pointjao = new Pointjao(banned_by_player);
        if (!pointjao.has(REQUIRED_jao)) {
            // 所持していない
            banned_by.sendMessage("[JAIL] " + ChatColor.GREEN + "あなたはJailするためのjaoポイントが足りません。");
            return true;
        }
    }
    if (Jail.contains(player.getUniqueId().toString())) {
        // 既に牢獄にいるので無理
        banned_by.sendMessage("[JAIL] " + ChatColor.GREEN + "指定されたプレイヤーはすでに牢獄にいるため追加できません。");
        return false;
    }
    // Item Check
    if (player.isOnline()) {
        Boolean EscapeFlag = false;
        Player target = player.getPlayer();
        PlayerInventory inv = target.getInventory();
        for (int n = 0; n < inv.getSize(); n++) {
            ItemStack is = inv.getItem(n);
            if (is == null) {
                continue;
            }
            if (is.getType() == Material.AIR) {
                continue;
            }
            net.minecraft.server.v1_12_R1.ItemStack nms = CraftItemStack.asNMSCopy(is);
            NBTTagCompound nbttag = nms.getTag();
            if (nbttag == null) {
                continue;
            }
            String id = nbttag.getString("MyMaid_EscapeJailID");
            if (id == null) {
                continue;
            } else if (id.equals("")) {
                continue;
            }
            PreparedStatement statement = MySQL.getNewPreparedStatement("SELECT * FROM uniqueitem WHERE id = ? AND type = ?");
            statement.setString(1, id);
            statement.setString(2, "MyMaid_EscapeJailID");
            ResultSet res = statement.executeQuery();
            if (res.next()) {
                // ある
                if (res.getBoolean("used")) {
                    // 使ってる
                    nbttag.remove("MyMaid_EscapeJailID");
                    nms.setTag(nbttag);
                    is = CraftItemStack.asBukkitCopy(nms);
                    ItemMeta meta = is.getItemMeta();
                    meta.setDisplayName(meta.getDisplayName() + ChatColor.RED + " [使用済]");
                    is.setItemMeta(meta);
                    inv.setItem(n, is);
                    continue;
                }
            } else {
                // ない
                nbttag.remove("MyMaid_EscapeJailID");
                nms.setTag(nbttag);
                is = CraftItemStack.asBukkitCopy(nms);
                ItemMeta meta = is.getItemMeta();
                meta.setDisplayName(meta.getDisplayName() + ChatColor.RED + " [無効]");
                is.setItemMeta(meta);
                inv.setItem(n, is);
                continue;
            }
            // 使ってない
            PreparedStatement statement_disable = MySQL.getNewPreparedStatement("UPDATE uniqueitem SET used = ? WHERE id = ? AND type = ?");
            statement_disable.setBoolean(1, true);
            statement_disable.setString(2, id);
            statement_disable.setString(3, "MyMaid_EscapeJailID");
            statement_disable.executeUpdate();
            nbttag.remove("MyMaid_EscapeJailID");
            nms.setTag(nbttag);
            is = CraftItemStack.asBukkitCopy(nms);
            ItemMeta meta = is.getItemMeta();
            meta.setDisplayName(meta.getDisplayName() + ChatColor.RED + " [使用済]");
            is.setItemMeta(meta);
            inv.setItem(n, is);
            EscapeFlag = true;
            break;
        }
        target.updateInventory();
        if (EscapeFlag) {
            if (banned_by instanceof Player) {
                Player banned_by_player = (Player) banned_by;
                Pointjao pointjao = new Pointjao(banned_by_player);
                pointjao.use(REQUIRED_jao, player.getName() + "をJailに追加しようとしたため。(理由: " + reason + " | EscapeJailによって失敗)");
            }
            throw new EscapeJailException();
        }
    }
    Jail.add(player.getUniqueId().toString());
    // 設置破壊不可
    block.put(player.getUniqueId().toString(), false);
    // 範囲外移動
    area.put(player.getUniqueId().toString(), false);
    // まだ遺言を残してない
    lasttext.put(player.getUniqueId().toString(), false);
    SimpleDateFormat allsdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
    try {
        PreparedStatement statement = MySQL.getNewPreparedStatement("INSERT INTO jail (player, uuid, banned_by, reason, date) VALUES (?, ?, ?, ?, ?)");
        statement.setString(1, player.getName());
        statement.setString(2, player.getUniqueId().toString());
        statement.setString(3, banned_by.getName());
        statement.setString(4, reason);
        statement.setString(5, allsdf.format(new Date()));
        statement.executeUpdate();
    } catch (SQLException | ClassNotFoundException e) {
        BugReporter(e);
    }
    try {
        PreparedStatement statement = MySQL.getNewPreparedStatement("INSERT INTO banlist (player, uuid, type, bannedby, reason, time) VALUES (?, ?, ?, ?, ?, ?)");
        statement.setString(1, player.getName());
        statement.setString(2, player.getUniqueId().toString());
        statement.setString(3, "jail");
        statement.setString(4, banned_by.getName());
        statement.setString(5, reason);
        statement.setString(6, allsdf.format(new Date()));
        statement.executeUpdate();
    } catch (SQLException | ClassNotFoundException e) {
        BugReporter(e);
    }
    Bukkit.broadcastMessage("[JAIL] " + ChatColor.GREEN + "プレイヤー:「" + player.getName() + "」を「" + reason + "」という理由で牢獄リストに追加しました。");
    DiscordSend("223582668132974594", "***Jail[追加]***: プレイヤー「" + player.getName() + "」が「" + banned_by.getName() + "」によって「" + reason + "」という理由でJailリストに追加されました。");
    if (banned_by instanceof Player) {
        Player banned_by_player = (Player) banned_by;
        Pointjao pointjao = new Pointjao(banned_by_player);
        pointjao.use(REQUIRED_jao, player.getName() + "をJailに追加したため。(理由: " + reason + ")");
    }
    JailBackupSaveTxt(player.getName(), JailType.ADD, banned_by.getName(), reason);
    return true;
}
Also used : Player(org.bukkit.entity.Player) OfflinePlayer(org.bukkit.OfflinePlayer) SQLException(java.sql.SQLException) NBTTagCompound(net.minecraft.server.v1_12_R1.NBTTagCompound) PreparedStatement(java.sql.PreparedStatement) PlayerInventory(org.bukkit.inventory.PlayerInventory) Date(java.util.Date) ResultSet(java.sql.ResultSet) CraftItemStack(org.bukkit.craftbukkit.v1_12_R1.inventory.CraftItemStack) ItemStack(org.bukkit.inventory.ItemStack) SimpleDateFormat(java.text.SimpleDateFormat) ItemMeta(org.bukkit.inventory.meta.ItemMeta)

Example 13 with Item

use of net.minecraft.server.v1_12_R1.Item in project MyMaid2 by jaoafa.

the class Jail method JailAdd.

/**
 * Jailにプレイヤーを追加
 * @param cmd コマンド情報
 * @param player オフラインのプレイヤー
 * @param banned_by 追加したプレイヤー
 * @return 実行できたかどうか
 * @author mine_book000
 * @throws SQLException
 * @throws NullPointerException
 * @throws ClassNotFoundException
 * @throws EscapeJailException
 */
@Deprecated
public static boolean JailAdd(OfflinePlayer player, CommandSender banned_by) throws ClassNotFoundException, NullPointerException, SQLException, EscapeJailException {
    if (player == null) {
        banned_by.sendMessage("[JAIL] " + ChatColor.GREEN + "指定されたプレイヤーは見つかりません。");
        try {
            throw new java.lang.NullPointerException("JailAdd OfflinePlayer is null...!");
        } catch (java.lang.NullPointerException e) {
            BugReporter(e);
        }
        return false;
    }
    if (banned_by instanceof Player) {
        Player banned_by_player = (Player) banned_by;
        Pointjao pointjao = new Pointjao(banned_by_player);
        if (!pointjao.has(REQUIRED_jao)) {
            // 所持していない
            banned_by.sendMessage("[JAIL] " + ChatColor.GREEN + "あなたはJailするためのjaoポイントが足りません。");
            return true;
        }
    }
    if (Jail.contains(player.getUniqueId().toString())) {
        // 既に牢獄にいるので無理
        banned_by.sendMessage("[JAIL] " + ChatColor.GREEN + "指定されたプレイヤーはすでに牢獄にいるため追加できません。");
        return false;
    }
    // Item Check
    if (player.isOnline()) {
        Boolean EscapeFlag = false;
        Player target = player.getPlayer();
        PlayerInventory inv = target.getInventory();
        for (int n = 0; n < inv.getSize(); n++) {
            ItemStack is = inv.getItem(n);
            if (is == null) {
                continue;
            }
            if (is.getType() == Material.AIR) {
                continue;
            }
            net.minecraft.server.v1_12_R1.ItemStack nms = CraftItemStack.asNMSCopy(is);
            NBTTagCompound nbttag = nms.getTag();
            if (nbttag == null) {
                continue;
            }
            String id = nbttag.getString("MyMaid_EscapeJailID");
            if (id == null) {
                continue;
            } else if (id.equals("")) {
                continue;
            }
            PreparedStatement statement = MySQL.getNewPreparedStatement("SELECT * FROM uniqueitem WHERE id = ? AND type = ?");
            statement.setString(1, id);
            statement.setString(2, "MyMaid_EscapeJailID");
            ResultSet res = statement.executeQuery();
            if (res.next()) {
                // ある
                if (res.getBoolean("used")) {
                    // 使ってる
                    nbttag.remove("MyMaid_EscapeJailID");
                    nms.setTag(nbttag);
                    is = CraftItemStack.asBukkitCopy(nms);
                    ItemMeta meta = is.getItemMeta();
                    meta.setDisplayName(meta.getDisplayName() + ChatColor.RED + " [使用済]");
                    is.setItemMeta(meta);
                    inv.setItem(n, is);
                    continue;
                }
            } else {
                // ない
                nbttag.remove("MyMaid_EscapeJailID");
                nms.setTag(nbttag);
                is = CraftItemStack.asBukkitCopy(nms);
                ItemMeta meta = is.getItemMeta();
                meta.setDisplayName(meta.getDisplayName() + ChatColor.RED + " [無効]");
                is.setItemMeta(meta);
                inv.setItem(n, is);
                continue;
            }
            // 使ってない
            PreparedStatement statement_disable = MySQL.getNewPreparedStatement("UPDATE uniqueitem SET used = ? WHERE id = ? AND type = ?");
            statement_disable.setBoolean(1, true);
            statement_disable.setString(2, id);
            statement_disable.setString(3, "MyMaid_EscapeJailID");
            statement_disable.executeUpdate();
            nbttag.remove("MyMaid_EscapeJailID");
            nms.setTag(nbttag);
            is = CraftItemStack.asBukkitCopy(nms);
            ItemMeta meta = is.getItemMeta();
            meta.setDisplayName(meta.getDisplayName() + ChatColor.RED + " [使用済]");
            is.setItemMeta(meta);
            inv.setItem(n, is);
            EscapeFlag = true;
            break;
        }
        target.updateInventory();
        if (EscapeFlag) {
            if (banned_by instanceof Player) {
                Player banned_by_player = (Player) banned_by;
                Pointjao pointjao = new Pointjao(banned_by_player);
                pointjao.use(REQUIRED_jao, player.getName() + "をJailに追加しようとしたため。(EscapeJailによって失敗)");
            }
            throw new EscapeJailException();
        }
    }
    Jail.add(player.getUniqueId().toString());
    // 設置破壊不可
    block.put(player.getUniqueId().toString(), false);
    // 範囲外移動
    area.put(player.getUniqueId().toString(), false);
    // まだ遺言を残してない
    lasttext.put(player.getUniqueId().toString(), false);
    // データベース登録なし
    Bukkit.broadcastMessage("[JAIL] " + ChatColor.GREEN + "プレイヤー:「" + player.getName() + "」を牢獄リストに追加しました。");
    DiscordSend("223582668132974594", "***Jail[追加]***: プレイヤー「" + player.getName() + "」が「" + banned_by.getName() + "」によってJailリストに追加されました。");
    if (banned_by instanceof Player) {
        Player banned_by_player = (Player) banned_by;
        Pointjao pointjao = new Pointjao(banned_by_player);
        pointjao.use(REQUIRED_jao, player.getName() + "をJailに追加したため。");
    }
    JailBackupSaveTxt(player.getName(), JailType.ADD, banned_by.getName(), "");
    return true;
}
Also used : Player(org.bukkit.entity.Player) OfflinePlayer(org.bukkit.OfflinePlayer) NBTTagCompound(net.minecraft.server.v1_12_R1.NBTTagCompound) PreparedStatement(java.sql.PreparedStatement) PlayerInventory(org.bukkit.inventory.PlayerInventory) ResultSet(java.sql.ResultSet) CraftItemStack(org.bukkit.craftbukkit.v1_12_R1.inventory.CraftItemStack) ItemStack(org.bukkit.inventory.ItemStack) ItemMeta(org.bukkit.inventory.meta.ItemMeta)

Example 14 with Item

use of net.minecraft.server.v1_12_R1.Item in project MyMaid2 by jaoafa.

the class Jail method JailAdd.

/**
 * Jailにプレイヤーを追加
 * @param cmd コマンド情報
 * @param player プレイヤー
 * @param banned_by 追加したプレイヤー
 * @return 実行できたかどうか
 * @author mine_book000
 * @throws SQLException
 * @throws NullPointerException
 * @throws ClassNotFoundException
 * @throws EscapeJailException
 */
@Deprecated
public static boolean JailAdd(Player player, CommandSender banned_by) throws ClassNotFoundException, NullPointerException, SQLException, EscapeJailException {
    if (player == null) {
        banned_by.sendMessage("[JAIL] " + ChatColor.GREEN + "指定されたプレイヤーは見つかりません。");
        try {
            throw new java.lang.NullPointerException("JailAdd Player is null...!");
        } catch (java.lang.NullPointerException e) {
            BugReporter(e);
        }
        return false;
    }
    if (banned_by instanceof Player) {
        Player banned_by_player = (Player) banned_by;
        Pointjao pointjao = new Pointjao(banned_by_player);
        if (!pointjao.has(REQUIRED_jao)) {
            // 所持していない
            banned_by.sendMessage("[JAIL] " + ChatColor.GREEN + "あなたはJailするためのjaoポイントが足りません。");
            return true;
        }
    }
    if (Jail.contains(player.getUniqueId().toString())) {
        // 既に牢獄にいるので無理
        banned_by.sendMessage("[JAIL] " + ChatColor.GREEN + "指定されたプレイヤーはすでに牢獄にいるため追加できません。");
        return false;
    }
    // Item Check
    if (player.isOnline()) {
        Boolean EscapeFlag = false;
        Player target = player.getPlayer();
        PlayerInventory inv = target.getInventory();
        for (int n = 0; n < inv.getSize(); n++) {
            ItemStack is = inv.getItem(n);
            if (is == null) {
                continue;
            }
            if (is.getType() == Material.AIR) {
                continue;
            }
            net.minecraft.server.v1_12_R1.ItemStack nms = CraftItemStack.asNMSCopy(is);
            NBTTagCompound nbttag = nms.getTag();
            if (nbttag == null) {
                continue;
            }
            String id = nbttag.getString("MyMaid_EscapeJailID");
            if (id == null) {
                continue;
            } else if (id.equals("")) {
                continue;
            }
            PreparedStatement statement = MySQL.getNewPreparedStatement("SELECT * FROM uniqueitem WHERE id = ? AND type = ?");
            statement.setString(1, id);
            statement.setString(2, "MyMaid_EscapeJailID");
            ResultSet res = statement.executeQuery();
            if (res.next()) {
                // ある
                if (res.getBoolean("used")) {
                    // 使ってる
                    nbttag.remove("MyMaid_EscapeJailID");
                    nms.setTag(nbttag);
                    is = CraftItemStack.asBukkitCopy(nms);
                    ItemMeta meta = is.getItemMeta();
                    meta.setDisplayName(meta.getDisplayName() + ChatColor.RED + " [使用済]");
                    is.setItemMeta(meta);
                    inv.setItem(n, is);
                    continue;
                }
            } else {
                // ない
                nbttag.remove("MyMaid_EscapeJailID");
                nms.setTag(nbttag);
                is = CraftItemStack.asBukkitCopy(nms);
                ItemMeta meta = is.getItemMeta();
                meta.setDisplayName(meta.getDisplayName() + ChatColor.RED + " [無効]");
                is.setItemMeta(meta);
                inv.setItem(n, is);
                continue;
            }
            // 使ってない
            PreparedStatement statement_disable = MySQL.getNewPreparedStatement("UPDATE uniqueitem SET used = ? WHERE id = ? AND type = ?");
            statement_disable.setBoolean(1, true);
            statement_disable.setString(2, id);
            statement_disable.setString(3, "MyMaid_EscapeJailID");
            statement_disable.executeUpdate();
            nbttag.remove("MyMaid_EscapeJailID");
            nms.setTag(nbttag);
            is = CraftItemStack.asBukkitCopy(nms);
            ItemMeta meta = is.getItemMeta();
            meta.setDisplayName(meta.getDisplayName() + ChatColor.RED + " [使用済]");
            is.setItemMeta(meta);
            inv.setItem(n, is);
            EscapeFlag = true;
            break;
        }
        target.updateInventory();
        if (EscapeFlag) {
            if (banned_by instanceof Player) {
                Player banned_by_player = (Player) banned_by;
                Pointjao pointjao = new Pointjao(banned_by_player);
                pointjao.use(REQUIRED_jao, player.getName() + "をJailに追加しようとしたため。(EscapeJailによって失敗)");
            }
            throw new EscapeJailException();
        }
    }
    Jail.add(player.getUniqueId().toString());
    // 設置破壊不可
    block.put(player.getUniqueId().toString(), false);
    // 範囲外移動
    area.put(player.getUniqueId().toString(), false);
    // まだ遺言を残してない
    lasttext.put(player.getUniqueId().toString(), false);
    if (player.getGameMode() == GameMode.SPECTATOR)
        player.setGameMode(GameMode.CREATIVE);
    World Jao_Afa = Bukkit.getServer().getWorld("Jao_Afa");
    Location minami = new Location(Jao_Afa, 2856, 69, 2888);
    // テレポート
    player.teleport(minami);
    SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
    player.sendMessage(ChatColor.GRAY + "[" + sdf.format(new Date()) + "]" + ChatColor.GOLD + "■jaotan" + ChatColor.WHITE + ": " + "やあ。" + player.getName() + "クン。どうも君はなにかをして南の楽園に来てしまったみたいなんだ");
    player.sendMessage(ChatColor.GRAY + "[" + sdf.format(new Date()) + "]" + ChatColor.GOLD + "■jaotan" + ChatColor.WHITE + ": " + "なにをしてしまったのは知らないけどなにかをしたからここに来たんだと思うんだ。");
    player.sendMessage(ChatColor.GRAY + "[" + sdf.format(new Date()) + "]" + ChatColor.GOLD + "■jaotan" + ChatColor.WHITE + ": " + "ちょっとやったことを反省してみるのもいいかもしれないね");
    player.sendMessage(ChatColor.GRAY + "[" + sdf.format(new Date()) + "]" + ChatColor.GOLD + "■jaotan" + ChatColor.WHITE + ": " + "あ、そうだ、今の君に人権はないよ。");
    player.sendMessage(ChatColor.GRAY + "[" + sdf.format(new Date()) + "]" + ChatColor.GOLD + "■jaotan" + ChatColor.WHITE + ": " + "あと、「/testment <LastText>」で遺言を残せるよ!");
    // データベース登録なし
    Bukkit.broadcastMessage("[JAIL] " + ChatColor.GREEN + "プレイヤー:「" + player.getName() + "」を牢獄リストに追加しました。");
    DiscordSend("223582668132974594", "***Jail[追加]***: プレイヤー「" + player.getName() + "」が「" + banned_by.getName() + "」によってJailリストに追加されました。");
    if (banned_by instanceof Player) {
        Player banned_by_player = (Player) banned_by;
        Pointjao pointjao = new Pointjao(banned_by_player);
        pointjao.use(REQUIRED_jao, player.getName() + "をJailに追加したため。");
    }
    JailBackupSaveTxt(player.getName(), JailType.ADD, banned_by.getName(), "");
    return true;
}
Also used : Player(org.bukkit.entity.Player) OfflinePlayer(org.bukkit.OfflinePlayer) NBTTagCompound(net.minecraft.server.v1_12_R1.NBTTagCompound) PreparedStatement(java.sql.PreparedStatement) PlayerInventory(org.bukkit.inventory.PlayerInventory) World(org.bukkit.World) Date(java.util.Date) ResultSet(java.sql.ResultSet) CraftItemStack(org.bukkit.craftbukkit.v1_12_R1.inventory.CraftItemStack) ItemStack(org.bukkit.inventory.ItemStack) SimpleDateFormat(java.text.SimpleDateFormat) ItemMeta(org.bukkit.inventory.meta.ItemMeta) Location(org.bukkit.Location)

Example 15 with Item

use of net.minecraft.server.v1_12_R1.Item in project MyMaid2 by jaoafa.

the class Event_JoinjaoPoint method OnEvent_JoinjaoPoint.

@EventHandler
public void OnEvent_JoinjaoPoint(PlayerJoinEvent event) {
    Player player = event.getPlayer();
    String uuid = player.getUniqueId().toString();
    Calendar cal = Calendar.getInstance();
    cal.setTimeZone(TimeZone.getTimeZone("Asia/Tokyo"));
    cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH), cal.get(Calendar.DAY_OF_MONTH), 0, 0, 0);
    SimpleDateFormat date_full = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
    date_full.setTimeZone(TimeZone.getTimeZone("Asia/Tokyo"));
    String today = date_full.format(cal.getTime());
    SimpleDateFormat date = new SimpleDateFormat("yyyy/MM/dd");
    try {
        PreparedStatement statement = MySQL.getNewPreparedStatement("SELECT * FROM login WHERE uuid = ? AND date >= cast(? as datetime) AND login_success = ?");
        statement.setString(1, uuid);
        statement.setString(2, today);
        statement.setBoolean(3, true);
        ResultSet res = statement.executeQuery();
        if (res.next()) {
            return;
        }
    } catch (SQLException | ClassNotFoundException e) {
        BugReporter(e);
    }
    try {
        Pointjao Pjao = new Pointjao(player);
        Pjao.add(10, date.format(new Date()) + "のログインボーナス");
    } catch (NullPointerException e) {
        BugReporter(e);
        return;
    } catch (ClassNotFoundException | SQLException e) {
        BugReporter(e);
        return;
    }
    try {
        SimpleDateFormat format = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
        Date start = format.parse("2019/03/05 00:00:00");
        Date end = format.parse("2019/03/15 23:59:59");
        if (isPeriod(start, end)) {
            String group = PermissionsManager.getPermissionMainGroup(player);
            if (!group.equalsIgnoreCase("Admin") && !group.equalsIgnoreCase("Moderator") && !group.equalsIgnoreCase("Regular") && !group.equalsIgnoreCase("Default")) {
                return;
            }
            ItemStack item = new ItemStack(Material.POTATO_ITEM);
            net.minecraft.server.v1_12_R1.ItemStack nms = CraftItemStack.asNMSCopy(item);
            NBTTagCompound nbttag = nms.getTag();
            if (nbttag == null) {
                nbttag = new NBTTagCompound();
            }
            UUID item_uuid = UUID.randomUUID();
            MessageDigest md;
            try {
                md = MessageDigest.getInstance("SHA-1");
            } catch (NoSuchAlgorithmException e) {
                BugReporter(e);
                player.sendMessage("[EscapeJail] " + ChatColor.RED + "新しいEscapeJailアイテムの精製に失敗しました。(2)");
                return;
            }
            byte[] digest = md.digest(item_uuid.toString().getBytes());
            String id = DatatypeConverter.printHexBinary(digest);
            if (id == null) {
                player.sendMessage("[EscapeJail] " + ChatColor.RED + "新しいEscapeJailアイテムの精製に失敗しました。(3)");
                return;
            }
            nbttag.setString("MyMaid_EscapeJailID", id);
            nms.setTag(nbttag);
            item = CraftItemStack.asBukkitCopy(nms);
            ItemMeta meta = item.getItemMeta();
            meta.setDisplayName("EscapeItem - IMO");
            List<String> lore = new ArrayList<String>();
            lore.add("このアイテムをインベントリ内に配置しておくと、Jail(EBan除く)を無効化できます!(アイテム1つにつき1回限り)");
            lore.add(ChatColor.RED + "NBTデータを削除してしまうと、アイテムは無効となります。また、複製をしても1つしか有効ではありません。");
            meta.setLore(lore);
            meta.addEnchant(Enchantment.LOOT_BONUS_BLOCKS, 999, true);
            item.setItemMeta(meta);
            try {
                PreparedStatement statement = MySQL.getNewPreparedStatement("INSERT INTO uniqueitem (id, type) VALUES (?, ?)");
                statement.setString(1, id);
                statement.setString(2, "MyMaid_EscapeJailID");
                statement.executeUpdate();
            } catch (SQLException | ClassNotFoundException e) {
                BugReporter(e);
                player.sendMessage("[EscapeJail] " + ChatColor.RED + "新しいEscapeJailアイテムの精製に失敗しました。(3)");
                return;
            }
            player.sendMessage("[EscapeJail] " + ChatColor.RED + "新しいEscapeJailアイテムの精製に成功しました。");
            player.sendMessage("[EscapeJail] " + ChatColor.RED + "このアイテムをインベントリの中に配置しておくと、Jail(EBan除く)をアイテム個数分だけ無効化できます!");
            if (player.getInventory().firstEmpty() == -1) {
                player.getLocation().getWorld().dropItem(player.getLocation(), item);
                player.sendMessage("[EscapeJail] " + ChatColor.RED + "インベントリがいっぱいだったため、あなたの足元にアイテムをドロップしました。");
                Bukkit.getLogger().info("[EscapeJail] dropped to " + player.getName());
            } else {
                player.getInventory().addItem(item);
                Bukkit.getLogger().info("[EscapeJail] gived to " + player.getName());
            }
        }
    } catch (ParseException e) {
        BugReporter(e);
    }
}
Also used : SQLException(java.sql.SQLException) NBTTagCompound(net.minecraft.server.v1_12_R1.NBTTagCompound) ArrayList(java.util.ArrayList) Pointjao(com.jaoafa.MyMaid2.Lib.Pointjao) NoSuchAlgorithmException(java.security.NoSuchAlgorithmException) ResultSet(java.sql.ResultSet) UUID(java.util.UUID) MessageDigest(java.security.MessageDigest) ItemMeta(org.bukkit.inventory.meta.ItemMeta) Player(org.bukkit.entity.Player) Calendar(java.util.Calendar) PreparedStatement(java.sql.PreparedStatement) Date(java.util.Date) ParseException(java.text.ParseException) CraftItemStack(org.bukkit.craftbukkit.v1_12_R1.inventory.CraftItemStack) ItemStack(org.bukkit.inventory.ItemStack) SimpleDateFormat(java.text.SimpleDateFormat) EventHandler(org.bukkit.event.EventHandler)

Aggregations

CraftItemStack (org.bukkit.craftbukkit.v1_12_R1.inventory.CraftItemStack)30 NBTTagCompound (net.minecraft.server.v1_12_R1.NBTTagCompound)27 ItemStack (org.bukkit.inventory.ItemStack)25 Item (org.orcid.jaxb.model.notification.permission_v2.Item)19 ItemMeta (org.bukkit.inventory.meta.ItemMeta)12 ArrayList (java.util.ArrayList)10 Player (org.bukkit.entity.Player)9 Field (java.lang.reflect.Field)7 PreparedStatement (java.sql.PreparedStatement)7 ItemStack (net.minecraft.server.v1_12_R1.ItemStack)7 Test (org.junit.Test)7 ExternalID (org.orcid.jaxb.model.record_v2.ExternalID)7 ResultSet (java.sql.ResultSet)6 SQLException (java.sql.SQLException)5 SimpleDateFormat (java.text.SimpleDateFormat)5 Date (java.util.Date)5 Item (net.minecraft.server.v1_12_R1.Item)5 NBTTagList (net.minecraft.server.v1_12_R1.NBTTagList)5 Location (org.bukkit.Location)5 OfflinePlayer (org.bukkit.OfflinePlayer)5