Sie sind nicht angemeldet.

  • Anmelden

[Bukkit-Plugin] Scoreboard 1.7

ItzSInix

User / Kunde

  • »ItzSInix« ist männlich
  • »ItzSInix« ist der Autor dieses Themas

Beiträge: 33

Wohnort: Localhost

  • Nachricht senden

1

Montag, 11. Februar 2019, 17:13

Scoreboard 1.7

Ich programmiere derzeit ein Scoreboard Plugin für die 1.7 und wenn jemand joint mit einer Namenslänge von 14 bekomme der Spieler einen Fehler das der Name zu lang ist, jedoch wie fixe ich dies in der 1.7?

Java-Quelltext

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
	public static void createScoreboard(Player p) {
		clearScoreboard(p);
		Scoreboard board = Bukkit.getScoreboardManager().getNewScoreboard();
		Objective obj = board.registerNewObjective("aaa", "dummy");
		obj.setDisplaySlot(DisplaySlot.SIDEBAR);
		obj.setDisplayName("§7▪ §b§lDylaris Lands §7▪");
		obj.getScore(" ").setScore(6);
		obj.getScore("§eName:").setScore(5);
	    String name = p.getName();
	    if(name.length() > 12){
	    	name.substring(0, 12);
	    }
		obj.getScore("§8» §7" + name).setScore(4);
		obj.getScore("   ").setScore(3);
		obj.getScore("§eRang:").setScore(2);
		obj.getScore("§8» " + getRang(p)).setScore(1);
		obj.getScore("    ").setScore(0);
		p.setScoreboard(board);
	}
	
	public static void clearScoreboard(Player p) {
		p.getScoreboard().clearSlot(DisplaySlot.SIDEBAR);
	}
	
	
	public static String getRang(Player forWhom) {
		if(forWhom.hasPermission("ts.tabcolor.owner")) {
			return "§4Owner";
		}else if(forWhom.hasPermission("ts.tabcolor.admin")) {
			return "§cAdmin";
		}else if(forWhom.hasPermission("ts.tabcolor.dev")) {
			return "§3Entwickler";
		}else if(forWhom.hasPermission("ts.tabcolor.mod")) {
			return "§5Mod";
		}else if(forWhom.hasPermission("ts.tabcolor.supporer")) {
			return "§aSupporter";
		}else if(forWhom.hasPermission("ts.tabcolor.premium")) {
			return "§6Premium";
		}else {
			return "§eSpieler";
		}
	}


Spieler bekommen folgenden Error.

Spoiler Spoiler



Quellcode

1
2
3
if (Bukkit.getPlayerExact("ItzSinix").wasHelpfu()) {
   Like.give();
}

crysis992

User / Kunde

Beiträge: 284

  • Nachricht senden

2

Montag, 11. Februar 2019, 23:23

In der 1.7 darf ein Score nicht läger als 16 Zeichen haben, darunter fallen auch Farbcodes.

Beispiel hier:
obj.getScore("§8» §7" + name).setScore(4);

Dafür verwendest du hier schon 6 Zeichen, demnach darf der Spielername nur maximal 10 Zeichen betragen.
Alternativ könntest du dem Scoreboard Fake Spieler hinzufügen, diesen ein Fake Team zuweisen, damit hättest du 3x 16 Zeichen zur verfügung [TEAM PREFIX] [SCORE] [TEAM SUFFIX].

Oder halt einfach keine 6 Jahre veraltete Software nutzen und mit der neusten Version programmieren.

ItzSInix

User / Kunde

  • »ItzSInix« ist männlich
  • »ItzSInix« ist der Autor dieses Themas

Beiträge: 33

Wohnort: Localhost

  • Nachricht senden

3

Dienstag, 12. Februar 2019, 14:02

In der 1.7 darf ein Score nicht läger als 16 Zeichen haben, darunter fallen auch Farbcodes.

Beispiel hier:
obj.getScore("§8» §7" + name).setScore(4);

Dafür verwendest du hier schon 6 Zeichen, demnach darf der Spielername nur maximal 10 Zeichen betragen.
Alternativ könntest du dem Scoreboard Fake Spieler hinzufügen, diesen ein Fake Team zuweisen, damit hättest du 3x 16 Zeichen zur verfügung [TEAM PREFIX] [SCORE] [TEAM SUFFIX].

Oder halt einfach keine 6 Jahre veraltete Software nutzen und mit der neusten Version programmieren.


Erstmal danke für deine Antwort :)
Wir haben das Problem bereits mit dem Scoreboard gelöst, aufgrund eines eigenen Modpacks + Server sind wir an die 1.7.10 gebunden, jedoch danke für diese Hilfreiche Antwort zu upgraden :)

Quellcode

1
2
3
if (Bukkit.getPlayerExact("ItzSinix").wasHelpfu()) {
   Like.give();
}

Renel2202

User / Kunde

  • »Renel2202« ist männlich

Beiträge: 40

Beruf: Auszubildender Fachinformatiker in der Anwendungsentwicklung

  • Nachricht senden

4

Mittwoch, 13. Februar 2019, 18:20

public static String getRang(Player forWhom) { if(forWhom.hasPermission("ts.tabcolor.owner")) { return "§4Owner"; }else if(forWhom.hasPermission("ts.tabcolor.admin")) { return "§cAdmin"; }else if(forWhom.hasPermission("ts.tabcolor.dev")) { return "§3Entwickler"; }else if(forWhom.hasPermission("ts.tabcolor.mod")) { return "§5Mod"; }else if(forWhom.hasPermission("ts.tabcolor.supporer")) { return "§aSupporter"; }else if(forWhom.hasPermission("ts.tabcolor.premium")) { return "§6Premium"; }else { return "§eSpieler"; }

eine kleine verbesserung zu diesm teil:
die meistenm Permissions Plugins haben eine Schnittstelle welche du direkt den Rang abfragen kannst, dann benötigst du zu einem keine Permissions vergeben,

und du köntest einfacher Ränge hinzu fügen.
MFG
René

ItzSInix

User / Kunde

  • »ItzSInix« ist männlich
  • »ItzSInix« ist der Autor dieses Themas

Beiträge: 33

Wohnort: Localhost

  • Nachricht senden

5

Mittwoch, 13. Februar 2019, 20:40

public static String getRang(Player forWhom) { if(forWhom.hasPermission("ts.tabcolor.owner")) { return "§4Owner"; }else if(forWhom.hasPermission("ts.tabcolor.admin")) { return "§cAdmin"; }else if(forWhom.hasPermission("ts.tabcolor.dev")) { return "§3Entwickler"; }else if(forWhom.hasPermission("ts.tabcolor.mod")) { return "§5Mod"; }else if(forWhom.hasPermission("ts.tabcolor.supporer")) { return "§aSupporter"; }else if(forWhom.hasPermission("ts.tabcolor.premium")) { return "§6Premium"; }else { return "§eSpieler"; }

eine kleine verbesserung zu diesm teil:
die meistenm Permissions Plugins haben eine Schnittstelle welche du direkt den Rang abfragen kannst, dann benötigst du zu einem keine Permissions vergeben,

und du köntest einfacher Ränge hinzu fügen.
MFG
René

Danke für deinen Tipp, jedoch ist dies ein eigen programmiertes Permissions Plugin wo ich den Gruppen noch keine Prefixe zugewiesen hatte. :)

Quellcode

1
2
3
if (Bukkit.getPlayerExact("ItzSinix").wasHelpfu()) {
   Like.give();
}

Ähnliche Themen