• 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 :).
iGostZ

Đã giải quyết getAmount()

Trạng thái
Không mở trả lời sau này.

iGostZ

DEVELOPER
DONATOR
THÀNH VIÊN
Tham gia
03/08/2018
Bài viết
381
- vấn đề là đã code như vầy rồi nhưng hoạt động thì lại khác!

kiểm tra vật phẩm trên tay >= 1 thì sẽ xảy ra event nhưng nếu vật phẩm = 1 thì lại không?

- Bác nào rành thì vào giúp em với :v



Mã:
@EventHandler
        public void onDouble2Drop(PlayerDropItemEvent e) {
        String pf = Main.Color(main.getConfig().getString("Double2Drop.Prefix"));
        Player p = e.getPlayer();
        final UUID uuid = p.getUniqueId();
        ItemStack item = e.getItemDrop().getItemStack();
        List<String> block = main.getConfig().getStringList("Double2Drop.WhitelistItem");
        for(String bl : block) {
            if((p.getInventory().getItemInMainHand().getType() == Material.getMaterial(bl)) && item.getAmount() >=1 ) {
                if ((!Main.disablePlayers.contains(uuid)) && (p.hasPermission("double2drop.bypass"))) {
                    if (!Main.players.contains(uuid)) {
                        e.setCancelled(true);
                        p.sendMessage(Main.Color(pf + main.getConfig().getString("Double2Drop.Messages.2QtoDrop")));
                        int delay = main.getConfig().getInt("Double2Drop.DelayDrop");
                        new BukkitRunnable() {
                            public void run() {
                                Main.players.remove(uuid);
                            }
                        }.runTaskLater(main, delay * 20);
                        Main.players.add(uuid);
                    } else {
                        Main.players.remove(uuid);
                        p.sendMessage(Main.Color(pf + main.getConfig().getString("Double2Drop.Messages.Dropped")));
                    }
                }
            }
            continue;
        }
 
- vấn đề là đã code như vầy rồi nhưng hoạt động thì lại khác!

kiểm tra vật phẩm trên tay >= 1 thì sẽ xảy ra event nhưng nếu vật phẩm = 1 thì lại không?

- Bác nào rành thì vào giúp em với :v



Mã:
public void onDouble2Drop(PlayerDropItemEvent e) {
        String pf = Main.Color(main.getConfig().getString("Double2Drop.Prefix"));
        Player p = e.getPlayer();
        final UUID uuid = p.getUniqueId();
        ItemStack item = e.getItemDrop().getItemStack();
        List<String> block = main.getConfig().getStringList("Double2Drop.WhitelistItem");
        for(String bl : block) {
            if((p.getInventory().getItemInMainHand().getType() == Material.getMaterial(bl)) && item.getAmount() >=1 ) {
                if ((!Main.disablePlayers.contains(uuid)) && (p.hasPermission("double2drop.bypass"))) {
                    if (!Main.players.contains(uuid)) {
                        e.setCancelled(true);
                        p.sendMessage(Main.Color(pf + main.getConfig().getString("Double2Drop.Messages.2QtoDrop")));
                        int delay = main.getConfig().getInt("Double2Drop.DelayDrop");
                        new BukkitRunnable() {
                            public void run() {
                                Main.players.remove(uuid);
                            }
                        }.runTaskLater(main, delay * 20);
                        Main.players.add(uuid);
                    } else {
                        Main.players.remove(uuid);
                        p.sendMessage(Main.Color(pf + main.getConfig().getString("Double2Drop.Messages.Dropped")));
                    }
                }
            }
            continue;
        }
Nên dùng #matchMaterial()
Lý do: Nó tự động so sánh không dùng viết hoa viết thường cho mình.
 
Nên dùng #matchMaterial()
Lý do: Nó tự động so sánh không dùng viết hoa viết thường cho mình.
đã dùng nhưng cũng vậy, vấn đề là: trong code ghi >=1 (lớn hơn hoặc bằng) nhưng vô test thì item = 1 thì k xảy ra event
 
s
đã dùng nhưng cũng vậy, vấn đề là: trong code ghi >=1 (lớn hơn hoặc bằng) nhưng vô test thì item = 1 thì k xảy ra event
Có @EventHandler chưa.
 
chưa check null kìa
k cần check amount đâu
 
Có ai nghĩ đến việc cái này trả về false chưa?
-
Mã:
if (!Main.players.contains(uuid)) {
    //Magic                           
}
 
Trạng thái
Không mở trả lời sau này.
Back
Top Bottom