• 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
LinhDoraemon

Hướng dẫn BUKKIT CODING FOR NEWBIE || Cách làm đồ ăn theo kiểu Slimefun

Bài viết này có hữu ích không ?


  • Số thành viên bình chọn
    7
Mã:
import java.util.ArrayList;
 
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.Sound;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.SkullMeta;
import org.bukkit.plugin.java.JavaPlugin;
 
public class StardewFoods extends JavaPlugin implements Listener {
 
    public void onEnable() {
        Bukkit.getPluginManager().registerEvents(this, this);
    }
 
 

    // Tên đồ ăn là FRIED_CHICKEN. Có thể xem danh sách đồ ăn ở đây
    // https://minecraft-heads.com/player/heads/food-drinks
    public static ItemStack FRIED_CHICKEN() {
 
        // Tạo vật phẩm - KHÔNG ĐỔI GÌ
        ItemStack item = new ItemStack(Material.SKULL_ITEM, 1, (byte) 3);
        // Phần đặt tên cho cái này - ĐỔI RA NGHĨA TIẾNG VIỆT
        // Dùng Google dịch. Ví dụ FRIED_CHICKEN = Gà rán
        // Chú ý dùng dấu "§" để ngi màu (Giống với &). Có thể nhấn nhanh dấu § bằng
        // Cách giữ Alt rồi nhấn 21
        SkullMeta mt = (SkullMeta) item.getItemMeta();
        mt.setDisplayName("§6§lGà Rán");
        // Tên skull ở https://minecraft-heads.com/player/heads/food-drinks.
        // Cách lấy tên : Nhấp vào thức ăn muốn làm. Tìm xuống Other: Playername. Copy
        // rồi paste
        // thay từ StarFirePrime
        mt.setOwner("StarFirePrime");
        // Lore : Chỉ thay đổi thông số.
        ArrayList<String> lore = new ArrayList<String>();
        // Dòng đầu trống
        lore.add("");
        // Dòng hồi máu
        lore.add("§a§l✙§6 7"); // 7 là số máu hồi khi ăn. 0.5 tim = 1 nên 7 = Hồi 3.5 tim
        // Dòng hồi thức ăn
        lore.add("§c§l✙§e 4"); // 4 là số thức ăn hồi khi ăn. 0.5 đùi gà = 1 nên 4 = hồi 2 đùi gà
        // Dòng thêm cho đẹp. GIỮ NGUYÊN
        lore.add("§d§l[Đồ ăn thức uống]");
        // Set lore cho item
        mt.setLore(lore);
        // Set item
        item.setItemMeta(mt);
 
        // Dòng kết thúc
        return item;
    }
 
    //Khi dùng lệnh sẽ đưa đồ ăn
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
       
        Player p = (Player) sender;
       
        //Nếu người chơi dùng /garan thì sẽ đưa gà rán cho người chơi
        if(cmd.getName().equalsIgnoreCase("garan")) {
            p.getInventory().addItem(FRIED_CHICKEN());
        }
       
        return true;
    }

    // Kiểm tra khi người chơi phải chuột với đồ ăn thì sẽ ăn - KHÔNG CHỈNH SỬA
    @EventHandler
    public void andoandominhtaonhehihi(PlayerInteractEvent e) {
 
        Player p = e.getPlayer();
 
        if (p.getInventory().getItemInMainHand() == null) {
            return;
        }
        if (p.getInventory().getItemInMainHand().getItemMeta() == null) {
            return;
        }
        if (p.getInventory().getItemInMainHand().getItemMeta().hasLore() == false) {
            return;
        }
        if (p.getInventory().getItemInMainHand().getItemMeta().getLore().contains("§d§l[Đồ ăn thức uống]") == false) {
            return;
        }
 
        String maulore = p.getInventory().getItemInMainHand().getItemMeta().getLore().get(1);
        String foodlore = p.getInventory().getItemInMainHand().getItemMeta().getLore().get(2);
 
        String maui = Character.toString(maulore.charAt(8));
        String foodi = Character.toString(foodlore.charAt(8));
 
        p.sendMessage(maulore);
        p.sendMessage(foodlore);
 
        int mau = Integer.parseInt(maui);
        int food = Integer.parseInt(foodi);
 
        if (20 - p.getHealth() >= mau) {
            p.setHealth(p.getHealth() + mau);
            p.getInventory().getItemInMainHand().setAmount(p.getInventory().getItemInMainHand().getAmount() - 1);
            p.playSound(p.getLocation(), Sound.ENTITY_GENERIC_EAT, 1, 1);
        } else {
            p.setHealth(20);
            p.getInventory().getItemInMainHand().setAmount(p.getInventory().getItemInMainHand().getAmount() - 1);
            p.playSound(p.getLocation(), Sound.ENTITY_GENERIC_EAT, 1, 1);
        }
 
        if (20 - p.getFoodLevel() >= food) {
            p.setFoodLevel(p.getFoodLevel() + food);
        } else {
            p.setFoodLevel(20);
        }
 
    }
 
}

Cái này yêu cầu các bạn dùng 100% não để đọc với ai mới học code ! Học rồi thì 0.5% cũng hiểu !
 
Hay³
Đọc được dòng chữ này thì quên đi vì đây chỉ là để đủ 10 kí tự
 
quăng vào Enum nó hợp lý hơn nhiều, đúng là newbie :j
 
thế cái này là gì?
qARV6eR.png
 
Fixed XD
*****Nội dung được bổ sung thêm*****

Slimeffun cũng dùng cách này đó thôi :(
Slimefun là cái mớ code hỗn độn nhất trong số các plugin thằng này từng gặp
 
Nội dung tương tự Xem nhiều nhất Xem thêm

Thống kê nội dung

Tạo
LinhDoraemon,
Trả lời lần cuối từ
Quang1999,
Trả lời
9
Lượt xem
1,297
Quay lại
Trên cùng