Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[Problem] Scoreboard


xAsky

Rekomendowane odpowiedzi

Opublikowano

Hej, to mój kod z klasy głównej: 

package me.xasky.pvp.main;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import me.xasky.pvp.admin.SetCommand;
import me.xasky.pvp.cmds.Lobby;
import me.xasky.pvp.cmds.Rank;
import me.xasky.pvp.lists.BookInteract;
import me.xasky.pvp.lists.HideInteract;
import me.xasky.pvp.lists.OneOne;
import me.xasky.pvp.lists.PlayerChat;
import me.xasky.pvp.lists.PlayerJoin;
import me.xasky.pvp.lists.ShopInteract;
import me.xasky.pvp.lists.SpawnWand;

import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.scoreboard.DisplaySlot;
import org.bukkit.scoreboard.Objective;
import org.bukkit.scoreboard.Score;
import org.bukkit.scoreboard.Scoreboard;
import org.bukkit.scoreboard.ScoreboardManager;

public class Main extends JavaPlugin{
	
	//PERMISSIONS\\
	//PVP.* - WSZYSTKIE
	
	public static Scoreboard sb;
	private Objective ob;
	
	public static Map<String, Integer> rank = new HashMap<String, Integer>();
	public static Map<String, Integer> kills = new HashMap<String, Integer>();
	public static Map<String, Integer> deads = new HashMap<String, Integer>();
	
	public static List<String> lobby = new ArrayList<String>();
	
	public static List<String> nicks = new ArrayList<String>();
	
	private static Main instance;
	
	String online = "§6" + Bukkit.getOnlinePlayers() + "§7/§8" + Bukkit.getMaxPlayers();
	
	@Override
	public void onEnable(){
		if(!Bukkit.getPluginManager().isPluginEnabled("HolographicDisplays")){
			getLogger().severe("Plugin 'HolographicDisplays' nie jest zaladowany.");
			this.setEnabled(false);
			return;
		}
		instance = this;
	
		Bukkit.getPluginManager().registerEvents(new PlayerJoin(), this);
		Bukkit.getPluginManager().registerEvents(new HideInteract(), this);
		Bukkit.getPluginManager().registerEvents(new SpawnWand(), this);
		Bukkit.getPluginManager().registerEvents(new ShopInteract(), this);
		Bukkit.getPluginManager().registerEvents(new BookInteract(), this);
		Bukkit.getPluginManager().registerEvents(new PlayerChat(), this);
		Bukkit.getPluginManager().registerEvents(new OneOne(), this);
		
		getCommand("ranking").setExecutor(new Rank());
		getCommand("set").setExecutor(new SetCommand());
		getCommand("lobby").setExecutor(new Lobby());
		
		ScoreboardManager sm = Bukkit.getScoreboardManager();
		sb = sm.getNewScoreboard();
		ob = sb.registerNewObjective("obj", "dummy");
		ob.setDisplayName("§a4§cFUN.PL");
		ob.setDisplaySlot(DisplaySlot.SIDEBAR);
		refresh();
		
		
	}
	
	private void refresh() {
		Bukkit.getScheduler().runTaskTimer(this, new Runnable(){
			public void run() {
				for (String s : nicks){
					if(Bukkit.getPlayer(s) !=null){
						Player p = Bukkit.getPlayer(s);
						Score s1 = ob.getScore(Bukkit.getOfflinePlayer(" "));
						s1.setScore(6);
						Score s2 = ob.getScore(Bukkit.getOfflinePlayer("§8> §aOnline " + online));
						s2.setScore(5);
						Score s3 = ob.getScore(Bukkit.getOfflinePlayer(" j"));
						s3.setScore(4);
						Score s4 = ob.getScore(Bukkit.getOfflinePlayer("§8> §cJestes na:"));
						s4.setScore(3);
						Score s5 = ob.getScore(Bukkit.getOfflinePlayer("§6  Lobby"));
						s5.setScore(2);
						p.setScoreboard(sb);
					}
				}
			}
			
		}, 0, 40);
		}

	@Override
	public void onDisable(){
		
	}
	
	public static Main getInst(){
		return instance;
	}

}

Wiecie może czemu nie działa? ;/

Opublikowano
	public static Scoreboard sb;
	private Objective ob;
	
	public static Map<String, Integer> rank = new HashMap<String, Integer>();
	public static Map<String, Integer> kills = new HashMap<String, Integer>();
	public static Map<String, Integer> deads = new HashMap<String, Integer>();
	
	public static List<String> lobby = new ArrayList<String>();
	
	public static List<String> nicks = new ArrayList<String>();
	
	private static Main instance;

kamilkime? wziales spisales private static a reszta public static, bo po co hermetyzacja, po co...

ps. nie lepiej zrobic obiekt np. User?

ps2. po resecie sie to zresetuje :>

 

@topic

sb = sm.getNewScoreboard();

po co scoreboard do zmiennej?

po co getNewScoreboard? robisz gildie czy co?

nie dziala to bo nie setujesz graczowi nowego scoreboarda

Do podstawowych dzialan wystarczy player.getScoreboard() (wtedy nei bedzie sie gliczowac z innymi pluginami na scoreboard), badz getMainScoreboard() (moze sie gliczowac z innymi pluginami na scoreboard)

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...