Sol Reklam

Çözüldü Player Tracker Yapamıyorum !

Durum
Mesaj gönderimine kapalı.

Wrandex

Odunlara Vur Vur Vur!
Katılım
21 Ağustos 2023
Mesajlar
29
Elmaslar
2
Puanlar
85
Yaş
16
Yer
Minecraft
Minecraft
Tlauncher

Discord:

wrandex

Arkadaşlar ben bir yabancı kaynaktan bakarak bir player tracker yapmaya çalıştım ve mantığınıda anladım ancak bu kişinin yaptığı player tracker pusulası oyundaki normal bir pusula, ben bu pusulayı değiştirip kendime bir pusula kodladım ama bu pusulayı player tracker kodlarına yerleştiremiyorum.

Main;

Java:
package org;

import java.util.Collection;

import org.Compass.Compass;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
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.block.Action;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.SkullMeta;
import org.bukkit.plugin.java.JavaPlugin;

import static org.bukkit.Material.getMaterial;

public final class Main extends JavaPlugin implements Listener{

 Compass compass1 = new Compass();

 @Override
    public void onEnable() {
 Bukkit.getConsoleSender().sendMessage(ChatColor.GREEN+"Player Tracker Aciliyor...");
 getServer().getPluginManager().registerEvents(this, this);

 getCommand("pusula").setExecutor(new Compass());
    }

  @EventHandler()
 public void onClick(PlayerInteractEvent event) {
 if ((event.getAction().equals(Action.RIGHT_CLICK_AIR))
 && event.getPlayer().getInventory().getItemInMainHand().getType().equals(getMaterial(ChatColor.GOLD+"Özel Pusula"))) {
            event.getPlayer().openInventory(createTrackerMenu(event.getPlayer()));
        }
    }
  @EventHandler()
 public void onItemClick(InventoryClickEvent event) {
 if (event.getWhoClicked().getInventory().getItemInMainHand().getType().equals(getMaterial(ChatColor.GOLD+"Özel Pusula"))) {
            Player player = ((SkullMeta) event.getCurrentItem().getItemMeta()).getOwningPlayer().getPlayer();
            ((Player) event.getWhoClicked()).setCompassTarget(player.getLocation());
            event.getWhoClicked().getLocation().getWorld().playSound(event.getWhoClicked().getLocation(),
 Sound.BLOCK_NOTE_BLOCK_PLING, 1, 1);
 event.setCancelled(true);
        }
    }
 public Inventory createTrackerMenu(Player player) {
 Collection<? extends Player> players = Bukkit.getOnlinePlayers();
  int inventorySize;
 if (players.size() <= 9) {
 inventorySize = 9;
 } else {
 inventorySize = (int) (Math.ceil(players.size() / 9) * 9);
        }
 Inventory compassgui = Bukkit.createInventory(null, inventorySize, ChatColor.BLACK + "Bir Oyuncu Seç!");
  for (Player onlinePlayer : players) {
  if (!onlinePlayer.equals(player)) {
                compassgui.addItem(createPlayerItem(onlinePlayer));
            }
        }
  return compassgui;
    }

 public ItemStack createPlayerItem(Player player) {
 ItemStack item = new ItemStack(Material.PLAYER_HEAD);
        SkullMeta skullMeta = (SkullMeta) item.getItemMeta();
        skullMeta.setDisplayName(player.getDisplayName());
        skullMeta.setOwningPlayer(player);
        item.setItemMeta(skullMeta);
  return item;
    }


}


Compass, kendi pusulamı oluşturdum;

Java:
package org.Compass;

import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
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.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import org.jetbrains.annotations.NotNull;

import java.util.ArrayList;

public class Compass implements CommandExecutor {

 @Override
    public boolean onCommand([USER=123594]@NotNull[/USER] CommandSender commandSender, [USER=123594]@NotNull[/USER] Command command, [USER=123594]@NotNull[/USER] String s, [USER=123594]@NotNull[/USER] String[] strings) {

 if (commandSender instanceof Player) {
            Player player = (Player) commandSender;

 int slot = 0;
 ItemStack compass = new ItemStack(Material.COMPASS);
            ItemMeta compassmeta = compass.getItemMeta();
 compassmeta.setDisplayName(ChatColor.GOLD + "Özel Pusula!");

 ArrayList<String> lore = new ArrayList<>();
 lore.add(" ");
 lore.add(ChatColor.GREEN + "Player Tracker!");
 lore.add(" ");
 lore.add(ChatColor.RED + "By Wrandex");

 Inventory compassgui = Bukkit.createInventory(null, 9, ChatColor.BLACK + "Bir Oyuncu Seç!");

 if (player.getInventory().getItem(0) == null || player.getInventory().getItem(0).getType() == Material.AIR) {
                player.getInventory().setItem(slot, compass);
 } else {
 player.sendMessage(ChatColor.YELLOW + "İlk Slotunu Boşalt!");
            }
        }
  return true;
    }
[INDENT]}
[/INDENT]
Bu oluşturduğum kod pusula komudu ile yaptığım pusulayı çağırıyor ilk slotu dolu ise çalışmıyor ama kodu yazdığımda mcdeki normal pusula elime geliyor! "ilk slotu boşalt if'i çalışıyor ama"

Yardım ederseniz çok iyi olur.
 
Son düzenleme:
kodları kod satırı içinde düzenle ve nasıl bir sistem yapmaya çalıştığını ve ne ile karşılaştığını yaz şahsen ben pek bir şey anlamadım
 
tekrar anlatayım, bir yabancı kaynaktan player tracker kodlarını projeye geçirdim bu kod minecraftta mc nin kendi pusulası üzerinden çalışıyor yani oyunda pusulayı normal bir şekilde kullanmak istersen kullanamazsın, ben de bu yüzden kendim bir pusula oluşturdum ve bunu ana main koda aktarmaya çalıştım ama olmadı. ve oluşturduğum pusulanın elime gelmesi için /pusula diye bir kod yazdım /pusula yazınca 1.slota bu özellikleri olan bir pusula gelmesi gerek ama olmuyo
 
compass.setItemMeta(compassmeta); ekle
compassmeta.setDisplayName(ChatColor.GOLD + "Özel Pusula!");

kodundan sonra
 
Durum
Mesaj gönderimine kapalı.
Neden altınlarını Discord sunucumuzda kazmıyorsun? TIKLA VE KATIL!
Yukarı