Java Giftcode

  • Chào bạn, hãy đăng ký hoặc đăng nhập để tham gia cùng bọn mình và sử dụng được đầy đủ chức năng của diễn đàn :).

tranvanhong

THÀNH VIÊN
14/12/23
30
1
40
23
dak lak
Đâ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é
 

Q u a p o tt

THÀNH VIÊN
17/6/23
42
6
70
23
Hải Dương
MeleeShop.site
Đâ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