• Trong thời gian này, bạn không thể tạo bài mới, đăng comment, hay tạo tài nguyên mới để diễn đàn dọn dẹp nội dung.
    Diễn đàn sẽ sớm mở trở lại, chi tiết hãy theo dõi tại Discord
tranvanhong

Java & Plugin Dev Giftcode

Đây là mã nguồn mở để code Giftcode
Mã:
import net.milkbowl.vault.economy.Economy;
import org.black_ixx.playerpoints.PlayerPoints;
import org.black_ixx.playerpoints.PlayerPointsAPI;
import org.bukkit.Bukkit;
import org.bukkit.Material;
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.inventory.InventoryClickEvent;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import org.bukkit.plugin.RegisteredServiceProvider;
import org.bukkit.plugin.java.JavaPlugin;

import java.util.Collections;
import java.util.HashMap;
import java.util.Map;

public class GiftCodePlugin extends JavaPlugin implements CommandExecutor, Listener {

    private Map<Player, String> playerGiveCodeMap = new HashMap<>();
    private Economy economy;
    private PlayerPointsAPI playerPointsAPI;

    @Override
    public void onEnable() {
        getCommand("givecode").setExecutor(this);
        getServer().getPluginManager().registerEvents(this, this);

        // Thiết lập tích hợp kinh tế
        if (Bukkit.getPluginManager().getPlugin("Vault") != null) {
            setupEconomy();
        } else {
            getLogger().severe("Vault không được tìm thấy! Tích hợp kinh tế sẽ không hoạt động.");
        }

        // Thiết lập tích hợp PlayerPoints
        if (Bukkit.getPluginManager().isPluginEnabled("PlayerPoints")) {
            playerPointsAPI = Bukkit.getServicesManager().getRegistration(PlayerPoints.class).getProvider();
            getLogger().info("PlayerPoints tích hợp thành công.");
        } else {
            getLogger().severe("PlayerPoints không được tìm thấy! Hệ thống điểm sẽ không hoạt động.");
        }
    }

    private boolean setupEconomy() {
        RegisteredServiceProvider<Economy> rsp = getServer().getServicesManager().getRegistration(Economy.class);
        if (rsp != null) {
            economy = rsp.getProvider();
            getLogger().info("Tích hợp kinh tế thành công.");
            return true;
        } else {
            getLogger().severe("Không thể thiết lập tích hợp kinh tế. Vault không được hỗ trợ?");
            return false;
        }
    }

    @Override
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
        if (sender instanceof Player) {
            Player player = (Player) sender;
            playerGiveCodeMap.put(player, ""); // Khởi tạo hoặc xóa mã give code của người chơi
            openGiveCodeGUI(player);
        } else {
            sender.sendMessage("Lệnh này chỉ có thể được thực hiện bởi một người chơi.");
        }
        return true;
    }

    private void openGiveCodeGUI(Player player) {
        Inventory gui = getServer().createInventory(null, 9, "Nhập Mã Quà");

        // Thêm một mục vào GUI để nhập mã give code
        ItemStack giveCodeItem = new ItemStack(Material.NAME_TAG);
        gui.setItem(3, giveCodeItem);

        player.openInventory(gui);
    }

    @EventHandler
    public void onInventoryClick(InventoryClickEvent event) {
        if (event.getView().getTitle().equals("Nhập Mã Quà")) {
            event.setCancelled(true);

            Player player = (Player) event.getWhoClicked();
            ItemStack clickedItem = event.getCurrentItem();

            if (clickedItem != null && clickedItem.getType() == Material.NAME_TAG) {
                player.closeInventory();
                player.sendMessage("Vui lòng nhập mã give code vào chat.");
            }
        } else if (event.getView().getTitle().equals("Menu Quà Tặng")) {
            event.setCancelled(true);

            Player player = (Player) event.getWhoClicked();
            ItemStack clickedItem = event.getCurrentItem();

            if (clickedItem != null && clickedItem.getType() != Material.AIR) {
                handleGiftItem(player, clickedItem);
            }
        }
    }

    // Xử lý sự kiện chat của người chơi để nhập give code
    @EventHandler
    public void onPlayerChat(org.bukkit.event.player.AsyncPlayerChatEvent event) {
        Player player = event.getPlayer();
        String message = event.getMessage();

        if (playerGiveCodeMap.containsKey(player) && playerGiveCodeMap.get(player).isEmpty()) {
            playerGiveCodeMap.put(player, message);
            player.sendMessage("Mã give code được thiết lập thành: " + message);
            event.setCancelled(true); // Hủy sự kiện chat để tránh gửi tin nhắn đến máy chủ
            openGiftGUI(player);
        }
    }

    private void openGiftGUI(Player player) {
        String giveCode = playerGiveCodeMap.get(player);
        if ("diamon".equalsIgnoreCase(giveCode)) { // Thay đổi giá trị này thành mã give code thực tế của bạn
            Inventory giftGUI = getServer().createInventory(null, 9, "Menu Quà Tặng");

            // Thêm các ô trống để đặt quà tặng
            for (int i = 0; i < 9; i++) {
                ItemStack emptySlot = new ItemStack(Material.AIR);
                giftGUI.setItem(i, emptySlot);
            }

            // Thêm các mục vào GUI cho các quà tặng khác nhau
            ItemStack goldItem = createGiftItem(Material.GOLD_INGOT, "Vàng", "Nhấp chuột phải để thêm 10k tiền");
            ItemStack diamondItem = createGiftItem(Material.DIAMOND, "Kim Cương", "Nhấp chuột phải để thêm 5 điểm");
            ItemStack xpBottleItem = createGiftItem(Material.EXPERIENCE_BOTTLE, "Lọ Kinh Nghiệm", "Nhấp chuột phải để thêm 10k XP");

            giftGUI.setItem(0, goldItem);
            giftGUI.setItem(4, diamondItem);
            giftGUI.setItem(8, xpBottleItem);

            player.openInventory(giftGUI);
        } else {
            player.sendMessage("Mã give code không hợp lệ. Vui lòng thử lại.");
        }
    }

    private ItemStack createGiftItem(Material material, String displayName, String lore) {
        ItemStack item = new ItemStack(material);
        ItemMeta meta = item.getItemMeta();
        meta.setDisplayName(displayName);
        meta.setLore(Collections.singletonList(lore));
        item.setItemMeta(meta);
        return item;
    }

    private void handleGiftItem(Player player, ItemStack giftItem) {
        String itemName = giftItem.getItemMeta().getDisplayName();

        switch (itemName) {
            case "Vàng":
                if (economy != null) {
                    economy.depositPlayer(player, 10000);
                    player.sendMessage("Bạn đã nhận được 10k tiền!");
                } else {
                    player.sendMessage("Tích hợp kinh tế không khả dụng. Không thể thêm tiền.");
                }
                break;
            case "Kim Cương":
                if (playerPointsAPI != null) {
                    playerPointsAPI.give(player.getUniqueId(), 5); // Thêm 5 điểm khi nhận được Kim Cương
                    player.sendMessage("Bạn đã nhận được 5 điểm!");
                } else {
                    player.sendMessage("Tích hợp PlayerPoints không khả dụng. Không thể thêm điểm.");
                }
                break;
            case "Lọ Kinh Nghiệm":
                player.giveExp(10000);
                player.sendMessage("Bạn đã nhận được 10k XP!");
                break;
            // Các case khác...
            default:
                break;
        }
    }
}
Mik tự code / đừng ném đá nhé
 
Đây là mã nguồn mở để code Giftcode
Mã:
import net.milkbowl.vault.economy.Economy;
import org.black_ixx.playerpoints.PlayerPoints;
import org.black_ixx.playerpoints.PlayerPointsAPI;
import org.bukkit.Bukkit;
import org.bukkit.Material;
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.inventory.InventoryClickEvent;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import org.bukkit.plugin.RegisteredServiceProvider;
import org.bukkit.plugin.java.JavaPlugin;

import java.util.Collections;
import java.util.HashMap;
import java.util.Map;

public class GiftCodePlugin extends JavaPlugin implements CommandExecutor, Listener {

    private Map<Player, String> playerGiveCodeMap = new HashMap<>();
    private Economy economy;
    private PlayerPointsAPI playerPointsAPI;

    @Override
    public void onEnable() {
        getCommand("givecode").setExecutor(this);
        getServer().getPluginManager().registerEvents(this, this);

        // Thiết lập tích hợp kinh tế
        if (Bukkit.getPluginManager().getPlugin("Vault") != null) {
            setupEconomy();
        } else {
            getLogger().severe("Vault không được tìm thấy! Tích hợp kinh tế sẽ không hoạt động.");
        }

        // Thiết lập tích hợp PlayerPoints
        if (Bukkit.getPluginManager().isPluginEnabled("PlayerPoints")) {
            playerPointsAPI = Bukkit.getServicesManager().getRegistration(PlayerPoints.class).getProvider();
            getLogger().info("PlayerPoints tích hợp thành công.");
        } else {
            getLogger().severe("PlayerPoints không được tìm thấy! Hệ thống điểm sẽ không hoạt động.");
        }
    }

    private boolean setupEconomy() {
        RegisteredServiceProvider<Economy> rsp = getServer().getServicesManager().getRegistration(Economy.class);
        if (rsp != null) {
            economy = rsp.getProvider();
            getLogger().info("Tích hợp kinh tế thành công.");
            return true;
        } else {
            getLogger().severe("Không thể thiết lập tích hợp kinh tế. Vault không được hỗ trợ?");
            return false;
        }
    }

    @Override
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
        if (sender instanceof Player) {
            Player player = (Player) sender;
            playerGiveCodeMap.put(player, ""); // Khởi tạo hoặc xóa mã give code của người chơi
            openGiveCodeGUI(player);
        } else {
            sender.sendMessage("Lệnh này chỉ có thể được thực hiện bởi một người chơi.");
        }
        return true;
    }

    private void openGiveCodeGUI(Player player) {
        Inventory gui = getServer().createInventory(null, 9, "Nhập Mã Quà");

        // Thêm một mục vào GUI để nhập mã give code
        ItemStack giveCodeItem = new ItemStack(Material.NAME_TAG);
        gui.setItem(3, giveCodeItem);

        player.openInventory(gui);
    }

    @EventHandler
    public void onInventoryClick(InventoryClickEvent event) {
        if (event.getView().getTitle().equals("Nhập Mã Quà")) {
            event.setCancelled(true);

            Player player = (Player) event.getWhoClicked();
            ItemStack clickedItem = event.getCurrentItem();

            if (clickedItem != null && clickedItem.getType() == Material.NAME_TAG) {
                player.closeInventory();
                player.sendMessage("Vui lòng nhập mã give code vào chat.");
            }
        } else if (event.getView().getTitle().equals("Menu Quà Tặng")) {
            event.setCancelled(true);

            Player player = (Player) event.getWhoClicked();
            ItemStack clickedItem = event.getCurrentItem();

            if (clickedItem != null && clickedItem.getType() != Material.AIR) {
                handleGiftItem(player, clickedItem);
            }
        }
    }

    // Xử lý sự kiện chat của người chơi để nhập give code
    @EventHandler
    public void onPlayerChat(org.bukkit.event.player.AsyncPlayerChatEvent event) {
        Player player = event.getPlayer();
        String message = event.getMessage();

        if (playerGiveCodeMap.containsKey(player) && playerGiveCodeMap.get(player).isEmpty()) {
            playerGiveCodeMap.put(player, message);
            player.sendMessage("Mã give code được thiết lập thành: " + message);
            event.setCancelled(true); // Hủy sự kiện chat để tránh gửi tin nhắn đến máy chủ
            openGiftGUI(player);
        }
    }

    private void openGiftGUI(Player player) {
        String giveCode = playerGiveCodeMap.get(player);
        if ("diamon".equalsIgnoreCase(giveCode)) { // Thay đổi giá trị này thành mã give code thực tế của bạn
            Inventory giftGUI = getServer().createInventory(null, 9, "Menu Quà Tặng");

            // Thêm các ô trống để đặt quà tặng
            for (int i = 0; i < 9; i++) {
                ItemStack emptySlot = new ItemStack(Material.AIR);
                giftGUI.setItem(i, emptySlot);
            }

            // Thêm các mục vào GUI cho các quà tặng khác nhau
            ItemStack goldItem = createGiftItem(Material.GOLD_INGOT, "Vàng", "Nhấp chuột phải để thêm 10k tiền");
            ItemStack diamondItem = createGiftItem(Material.DIAMOND, "Kim Cương", "Nhấp chuột phải để thêm 5 điểm");
            ItemStack xpBottleItem = createGiftItem(Material.EXPERIENCE_BOTTLE, "Lọ Kinh Nghiệm", "Nhấp chuột phải để thêm 10k XP");

            giftGUI.setItem(0, goldItem);
            giftGUI.setItem(4, diamondItem);
            giftGUI.setItem(8, xpBottleItem);

            player.openInventory(giftGUI);
        } else {
            player.sendMessage("Mã give code không hợp lệ. Vui lòng thử lại.");
        }
    }

    private ItemStack createGiftItem(Material material, String displayName, String lore) {
        ItemStack item = new ItemStack(material);
        ItemMeta meta = item.getItemMeta();
        meta.setDisplayName(displayName);
        meta.setLore(Collections.singletonList(lore));
        item.setItemMeta(meta);
        return item;
    }

    private void handleGiftItem(Player player, ItemStack giftItem) {
        String itemName = giftItem.getItemMeta().getDisplayName();

        switch (itemName) {
            case "Vàng":
                if (economy != null) {
                    economy.depositPlayer(player, 10000);
                    player.sendMessage("Bạn đã nhận được 10k tiền!");
                } else {
                    player.sendMessage("Tích hợp kinh tế không khả dụng. Không thể thêm tiền.");
                }
                break;
            case "Kim Cương":
                if (playerPointsAPI != null) {
                    playerPointsAPI.give(player.getUniqueId(), 5); // Thêm 5 điểm khi nhận được Kim Cương
                    player.sendMessage("Bạn đã nhận được 5 điểm!");
                } else {
                    player.sendMessage("Tích hợp PlayerPoints không khả dụng. Không thể thêm điểm.");
                }
                break;
            case "Lọ Kinh Nghiệm":
                player.giveExp(10000);
                player.sendMessage("Bạn đã nhận được 10k XP!");
                break;
            // Các case khác...
            default:
                break;
        }
    }
}
Mik tự code / đừng ném đá nhé
ChatGPT
 
Nội dung tương tự Xem nhiều nhất Xem thêm

Thống kê nội dung

Tạo
tranvanhong,
Trả lời lần cuối từ
DvckAnh,
Trả lời
7
Lượt xem
1,081
Quay lại
Trên cùng