You are not logged in.

  • Login
Bitte besucht unser neues Forum unter https://forum.nitrado.net | Please visit our new Forum at https://forum.nitrado.net

Leonardheld

User / Kunde

  • "Leonardheld" started this thread

Posts: 34

  • Send private message

1

Wednesday, August 23rd 2017, 6:54pm

Scoreboard für mehrere Spieler

Hey Leute, ich versuche mich gerade an einem Scoreboard mit Teams was soweit auch funktioniert. Beim Joinen eines Spielers soll ein Scoreboard gesetzt werden und ein Team gesetzt werden. Jedoch ist es so das wenn ich Joine ich zwar dem Team "Räuber" zugeordnet werde was man auch sieht aber wenn ich jetzt mit einem zweiten Account Joine wird der erste Account aus dem Team Räuber gekickt und der zweite Spieler in das Team hinzugefügt. Ich habe auch schon versucht das Scoreboard und die Teams als private static direkt am beginn der Class zu platzieren was jedoch nicht funktioniert weil das Scoreboard dann für alle Spieler dasselbe ist, was heißt das wenn der erste Spieler Team Räuber ist und der andere Team Polizei dann sieht der andere in seinem Scoreboard einmal "Du bist: Räuber" und "Du bist: Polizei". Kann mir wer sagen wie ich es mache das es so funktioniert das die Spieler gleichmäßig auf die Teams aufgeteilt werden und jeder Spieler sein eigenes Scoreboard behält ?

Schon mal danke im Voraus :)

Grüße Leo


Code:


Java source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
	@SuppressWarnings("deprecation")
	public static void setScoreboard(Player player) {


	
		 Scoreboard scoreboard = Bukkit.getScoreboardManager().getNewScoreboard();
		
		Collection<? extends Player> online = Bukkit.getOnlinePlayers();

		Objective obj = scoreboard.getObjective("Sidebar");
		if (obj == null) {
			obj = scoreboard.registerNewObjective("Sidebar", "dummy");
		}

		obj.setDisplayName("\u00a7a\u00a7lStats");
		obj.setDisplaySlot(DisplaySlot.SIDEBAR);

		Team Polizei = scoreboard.registerNewTeam("Polizei");
		Team Räuber = scoreboard.registerNewTeam("Räuber");

		Polizei.setAllowFriendlyFire(false);
		Polizei.setCanSeeFriendlyInvisibles(true);
		Polizei.setDisplayName("§9Polizei");
		Polizei.setPrefix("§9");



		Räuber.setAllowFriendlyFire(false);
		Räuber.setCanSeeFriendlyInvisibles(true);
		Räuber.setDisplayName("§cRäuber");
		Räuber.setPrefix("§c");



		if (Räuber.getSize() < config.getInt("Max-Spieler-Pro-Team")) {
			if (Räuber.getSize() > Polizei.getSize()) {

				Polizei.addPlayer(player);
				
			} else {

				Räuber.addPlayer(player);
							}
		} else {
			if (Polizei.getSize() < config.getInt("Max-Spieler-Pro-Team")) {
				Polizei.addPlayer(player);
				
			} else {


			}
		}

		Score kills = obj.getScore("\u00a7bKills \u00a78\u00bb \u00a7a:");
		if (Polizei.hasPlayer(player)) {
			Score team = obj.getScore("\u00a7bDu bist\u00a78\u00bb \u00a7a: Polizist");
			Score team_members = obj.getScore("\u00a7bTeam Members\u00a78\u00bb \u00a7a:");
			team.setScore(0);
			team_members.setScore(Polizei.getSize());
		}
		if (Räuber.hasPlayer(player)) {
			Score team = obj.getScore("\u00a7bDu bist\u00a78\u00bb \u00a7a: Räuber");
			team.setScore(0);
			Score team_members = obj.getScore("\u00a7bTeam Members\u00a78\u00bb \u00a7a:");
			team_members.setScore(Räuber.getSize());
		}

		Score deaths = obj.getScore("\u00a7bTode \u00a78\u00bb \u00a7a:");
		Score Online = obj.getScore("§bOnline \u00a78\u00bb \u00a7a:");
		Score Health = obj.getScore("§bLeben \u00a78\u00bb \u00a7a: §c" + player._INVALID_getHealth() + "§c  /");

		Online.setScore(online.size());

		Health.setScore(player._INVALID_getMaxHealth());

		kills.setScore(cfg.getInt("kills"));

		deaths.setScore(cfg.getInt("deaths"));

		player.setScoreboard(scoreboard);

	}

	@EventHandler

	public void onConnect(PlayerJoinEvent e) {
		Bukkit.getScheduler().scheduleSyncRepeatingTask(main.getPlugin(main.class), new Runnable() {

			@Override
			public void run() {
				setScoreboard(e.getPlayer());

			}

		}, 20L, 20L);

	}

This post has been edited 1 times, last edit by "Leonardheld" (Aug 24th 2017, 3:55pm)


Leonardheld

User / Kunde

  • "Leonardheld" started this thread

Posts: 34

  • Send private message

2

Saturday, August 26th 2017, 8:39am

Kann mir da niemand helfen ?

xtrumb

User / Kunde

  • "xtrumb" is male

Posts: 2,295

Location: hier

Occupation: Fachinformatiker für Systemintegration

Thanks: 16

  • Send private message

3

Saturday, August 26th 2017, 11:08am

Hier mal eine Klasse von mir, die ich vor hatte damals für meinen Server zu verwenden. Musste natürlich noch anpassen. Und ja man kann es bestimmt besser lösen BlackBytes... xD

Java source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
public class Scoreboardclass {

	public static HashMap<Scoreboard, Player> boards = new HashMap<Scoreboard, Player>();
	
	public static void sendScoreboard(Player p){
		
		//SCOREBOARD RECHTS
		ScoreboardManager manager = Bukkit.getScoreboardManager();
		Scoreboard board = manager.getNewScoreboard();
		
		Objective obj = board.getObjective("aaa") != null ? board.getObjective("aaa") : board.registerNewObjective("aaa", "bbb");
		
		obj.setDisplayName("§b§lTru§f§lCraft §8» §aRPG");
		obj.setDisplaySlot(DisplaySlot.SIDEBAR);
		
		if(Clan.getClan(p.getName()) != null){
			Team tode = board.registerNewTeam("clan");
			tode.setPrefix("§6Dein Clan§8: ");
			tode.setSuffix("§f" + Clan.getClan(p.getName()));
			tode.addEntry(ChatColor.BLUE.toString());

			Team mobkills = board.registerNewTeam("mobkills");
			mobkills.setPrefix("§6Mobkills§8: ");
			mobkills.setSuffix("§f" + Clan.getMobKills(Clan.getClan(p.getName())));
			mobkills.addEntry(ChatColor.BOLD.toString());
			
			Team playerkills = board.registerNewTeam("playerkills");
			playerkills.setPrefix("§6Playerkills§8: ");
			playerkills.setSuffix("§f" + Clan.getPlayerKills(Clan.getClan(p.getName())));
			playerkills.addEntry(ChatColor.DARK_AQUA.toString());

			Team deaths = board.registerNewTeam("deaths");
			deaths.setPrefix("§6Tode§8: ");
			deaths.setSuffix("§f" + Clan.getPlayerDeaths(Clan.getClan(p.getName())));
			deaths.addEntry(ChatColor.DARK_BLUE.toString());

			obj.getScore("").setScore(17);
			obj.getScore(ChatColor.BLUE.toString()).setScore(16);
			obj.getScore(ChatColor.BOLD.toString()).setScore(15);
			obj.getScore(ChatColor.DARK_AQUA.toString()).setScore(14);
			obj.getScore(ChatColor.DARK_BLUE.toString()).setScore(13);
		}else{
			Team tode = board.registerNewTeam("clan");
			tode.setPrefix("§6Dein Clan§8: ");
			tode.setSuffix("§7---");
			tode.addEntry(ChatColor.BLUE.toString());
			obj.getScore("").setScore(14);
			obj.getScore(ChatColor.BLUE.toString()).setScore(13);
		}

		Team helfer = board.registerNewTeam("helfer");
		helfer.setPrefix("§6Helfer§8: ");
		if(VerteidigerNPC.hasNPC(p.getName())){
			helfer.setSuffix("§f" + VerteidigerNPC.gethealth(p.getName()));
		}else{
			helfer.setSuffix("§7---");
		}
		helfer.addEntry(ChatColor.DARK_GRAY.toString());
		
		Team coins = board.registerNewTeam("coins");
		coins.setPrefix("§6Coins§8: ");
		coins.setSuffix("§f" + Money.getCoins(p.getName()));
		coins.addEntry(ChatColor.BLACK.toString());

		Team time = board.registerNewTeam("time");
		time.setPrefix("§6Spielzeit§8: ");
		time.setSuffix("§f" + Spielzeit.getDays(p.getName()) + "D " + Spielzeit.getHours(p.getName())  + "H " + Spielzeit.getMinutes(p.getName()) + "M");
		time.addEntry(ChatColor.AQUA.toString());
		
		obj.getScore("").setScore(12);
		obj.getScore(ChatColor.DARK_GRAY.toString()).setScore(11);
		obj.getScore(" ").setScore(10);
		obj.getScore(ChatColor.DARK_GRAY.toString()).setScore(9);   //HELFER LEBEN
		obj.getScore("  ").setScore(8);
		obj.getScore(ChatColor.BLACK.toString()).setScore(7);  //COINS
		obj.getScore(ChatColor.AQUA.toString()).setScore(6);   //SPIELZEIT
		obj.getScore("   ").setScore(5);
		obj.getScore("§6====§7[ §a§lSocial Media §7]§6====").setScore(4);
		obj.getScore("    ").setScore(3);
		obj.getScore("§6Twitter§8:§r §fTwitter.TruCraft.de").setScore(2);
		obj.getScore("§6Teamspeak§8:§r §fTruCraft.de").setScore(1);
		obj.getScore("§6Website§8:§r §fTruCraft.de").setScore(0);
		
		boards.put(board, p);
		p.setScoreboard(board);
	}
	
	public static void updateAllScoreboards(){
		new BukkitRunnable() {
			
			@Override
			public void run() {
				
				//SCOREBOARD RECHTS
				for(Scoreboard board : boards.keySet()){
					Player p = boards.get(board);
					
					board.getTeam("time").setSuffix("§f" + Spielzeit.getDays(p.getName()) + "D " + Spielzeit.getHours(p.getName()) + "H " + Spielzeit.getMinutes(p.getName()) + "M");
					board.getTeam("coins").setSuffix("§f" + Money.getCoins(p.getName()));

					if(VerteidigerNPC.hasNPC(p.getName())){
						board.getTeam("helfer").setSuffix("§f" + VerteidigerNPC.gethealth(p.getName()));
					}else{
						board.getTeam("helfer").setSuffix("§7---");
					}
					if(Clan.getClan(p.getName()) != null){
						board.getTeam("clan").setSuffix("§f" + Clan.getClan(p.getName()));
						board.getTeam("mobkills").setSuffix("§f" + Clan.getMobKills(Clan.getClan(p.getName())));
						board.getTeam("playerkills").setSuffix("§f" + Clan.getPlayerKills(Clan.getClan(p.getName())));
						board.getTeam("deaths").setSuffix("§f" + Clan.getPlayerDeaths(Clan.getClan(p.getName())));
					}else{
						board.getTeam("clan").setSuffix("§7---");
					}
				}
				
			}
		}.runTaskTimerAsynchronously(Main.plugin, 0, 100);
	}
Mit freundlichen Grüßen
TrueMB

Dienstleistungs Service
Unser Csgo Team

BlvckBytes

User / Kunde

  • "BlvckBytes" is male

Posts: 797

Location: (*blvckbytes).home

Occupation: Schüler -> HTL für Informationstechnologie und Netzwerktechnik

  • Send private message

4

Saturday, August 26th 2017, 1:45pm

Wenn du jedem Spieler ein eigenes Scoreboard geben willst, musst du natürlich für jeden Spieler auch ein mal alle Spieler durchschleifen, und den Teams zuweisen.

LG BlvckBytes

Bitte besucht unser neues Forum unter https://forum.nitrado.net| Please visit our new Forum at https://forum.nitrado.net