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;
Compass, kendi pusulamı oluşturdum;
[/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.
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]}
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: