SteamWar/BungeeCore
Archiviert
13
2

Team Color #164

Manuell gemergt
Lixfel hat 10 Commits von team-color nach master 2021-01-02 09:35:16 +01:00 zusammengeführt
7 geänderte Dateien mit 97 neuen und 13 gelöschten Zeilen

Datei anzeigen

@ -73,7 +73,7 @@ public class EventStarter implements Runnable {
eventServer.put(blue.getTeamId(), subserver);
eventServer.put(red.getTeamId(), subserver);
BungeeCore.broadcast(BungeeCore.CHAT_PREFIX + "§7Hier §eklicken §7für den Kampf §e" + blue.getTeamName() + " §8vs §e" + red.getTeamName(),
BungeeCore.broadcast(BungeeCore.CHAT_PREFIX + "§7Hier §eklicken §7für den Kampf §" + blue.getTeamColor() + blue.getTeamName() + " §8vs §" + red.getTeamColor() + red.getTeamName(),
"§eEvent beitreten",
new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/event " + blue.getTeamKuerzel()));
}

Datei anzeigen

@ -91,9 +91,9 @@ public class EventCommand extends BasicCommand {
e.getEventName());
Set<Team> teams = TeamTeilnahme.getTeams(e.getEventID());
if(!teams.isEmpty()){
StringBuilder tline = new StringBuilder("§7 Mit§8: §e");
StringBuilder tline = new StringBuilder("§7 Mit§8: ");
for(Team t : teams){
tline.append(t.getTeamKuerzel()).append(" ");
tline.append("§").append(t.getTeamColor()).append(t.getTeamKuerzel()).append(" ");
}
BungeeCore.send(player, tline.toString());
}

Datei anzeigen

@ -20,6 +20,8 @@
package de.steamwar.bungeecore.commands;
import de.steamwar.bungeecore.BungeeCore;
import de.steamwar.bungeecore.inventory.SWItem;
import de.steamwar.bungeecore.inventory.SWListInv;
import de.steamwar.bungeecore.sql.Event;
import de.steamwar.bungeecore.sql.SteamwarUser;
import de.steamwar.bungeecore.sql.Team;
@ -40,6 +42,31 @@ import static de.steamwar.bungeecore.Storage.teamInvitations;
public class TeamCommand extends BasicCommand {
private static final List<SWListInv.SWListEntry<String>> COLOR_CODES = new ArrayList<>();
static {
addColor("4", 1);
addColor("c", 15);
addColor("6", 14);
addColor("e", 11);
addColor("2", 2);
addColor("a", 10);
addColor("b", 12);
addColor("3", 6);
addColor("1", 4);
addColor("9", 6);
addColor("d", 9);
addColor("5", 5);
addColor("f", 15);
addColor("7", 7);
addColor("8", 8);
addColor("0", 16);
}
private static void addColor(String color, int colorCode) {
COLOR_CODES.add(new SWListInv.SWListEntry(new SWItem("§" + color, colorCode), color));
Review

Welcher Block soll da wie eingefärbt werden?

Welcher Block soll da wie eingefärbt werden?
Review

Das sind die Color Codes auf die Farbstoff Items aus dem SpigotCore

Das sind die Color Codes auf die Farbstoff Items aus dem SpigotCore
}
public TeamCommand() {
super("team", "");
}
@ -67,6 +94,7 @@ public class TeamCommand extends BasicCommand {
BungeeCore.send(sender, BungeeCore.CHAT_PREFIX + "§8/§eteam remove §8- §7Entferne jemanden aus deinem Team");
BungeeCore.send(sender, BungeeCore.CHAT_PREFIX + "§8/§eteam changekuerzel §8- §7Ändere dein Teamkürzel");
BungeeCore.send(sender, BungeeCore.CHAT_PREFIX + "§8/§eteam changename §8- §7Ändere deinen Teamnamen");
BungeeCore.send(sender, BungeeCore.CHAT_PREFIX + "§8/§eteam changecolor §8- §7Ändere deine Teamfarbe");
BungeeCore.send(sender, BungeeCore.CHAT_PREFIX + "§8/§eteam changeleader §8- §7Ernenne jemanden zum Teamleader");
}
}
@ -111,6 +139,9 @@ public class TeamCommand extends BasicCommand {
case "changeleader":
changeleader(player, user, team, args);
break;
case "changecolor":
changeColor(player, user, team);
break;
case "info":
info(player, user, team, args);
Review

Auch noch Fehlend: Teamfarbe bei Team info und team list

Auch noch Fehlend: Teamfarbe bei Team info und team list
break;
@ -371,7 +402,7 @@ public class TeamCommand extends BasicCommand {
return;
}
BungeeCore.send(player, "§7Team §e" + team.getTeamName() + " §8[§e" + team.getTeamKuerzel() + "§8]");
BungeeCore.send(player, "§7Team §e" + team.getTeamName() + " §8[§" + team.getTeamColor() + team.getTeamKuerzel() + "§8]");
BungeeCore.send(player, "§7Leader§8: " + SteamwarUser.get(team.getTeamLeader()).getUserName());
if(team.getMembers().size() > 1) {
@ -423,7 +454,7 @@ public class TeamCommand extends BasicCommand {
for(int i = (page-1) * TEAMS_PER_PAGE; i < (page-1) * TEAMS_PER_PAGE + TEAMS_PER_PAGE && i < all.size(); i++){
Team tm = all.get(i);
BungeeCore.send(player,
"§8" + tm.getTeamKuerzel() + " §e" + tm.getTeamName() + " §8[§7" + SteamwarUser.get(tm.getTeamLeader()).getUserName() + "§8]",
"§" + tm.getTeamColor() + tm.getTeamKuerzel() + " §e" + tm.getTeamName() + " §8[§7" + SteamwarUser.get(tm.getTeamLeader()).getUserName() + "§8]",
"§7Teaminfo",
new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/team info " + tm.getTeamKuerzel()));
}
@ -490,6 +521,28 @@ public class TeamCommand extends BasicCommand {
}
}
private void changeColor(ProxiedPlayer player, SteamwarUser user, Team team) {
if(notLeader(player, user, team))
return;
if(notDuringEvent(player))
return;
List<SWListInv.SWListEntry<String>> colors = new ArrayList<>();
COLOR_CODES.forEach(stringSWListEntry -> {
SWItem item = stringSWListEntry.getItem().clone();
item.setName(stringSWListEntry.getItem().getTitle() + Team.get(user.getTeam()).getTeamKuerzel());
colors.add(new SWListInv.SWListEntry<>(item, stringSWListEntry.getObject()));
Veraltet
Review

Nutze Inventory.close() (also inv.close());

Nutze Inventory.close() (also inv.close());
Review

Variable 'inv' might not have been initialized.

Variable 'inv' might not have been initialized.
Review

Dann musst du den Callback evtl. nach der Initialisierung setzen.

Dann musst du den Callback evtl. nach der Initialisierung setzen.
});
SWListInv<String> inv = new SWListInv<>(player, "§6Farbe wählen", colors, (click, element) -> {});
inv.setCallback((click, element) -> {
inv.close();
team.setTeamColor(element);
});
inv.open();
}
private boolean checkTeamName(ProxiedPlayer player, Team team, String arg){
if(arg.length() < 4 || arg.length() > 15){
BungeeCore.send(player, BungeeCore.CHAT_PREFIX + "§cEin Teamname muss aus 4 bis 15 Buchstaben bestehen");
@ -566,6 +619,7 @@ public class TeamCommand extends BasicCommand {
tab.add("changekuerzel");
tab.add("changename");
tab.add("changeleader");
tab.add("changecolor");
}else if(args.length == 2){
if(args[1].equalsIgnoreCase("event")){
List<Event> coming = Event.getComing();

Datei anzeigen

@ -97,8 +97,13 @@ public class SWItem {
this.hideAttributes = hideAttributes;
}
public void setName(String name) {
public SWItem setName(String name) {
title = name;
return this;
}
public String getTitle() {
return title;
}
public void addLore(String lore) {
@ -151,4 +156,18 @@ public class SWItem {
public void setLore(List<String> lore) {
this.lore = lore;
}
public SWItem clone() {
SWItem item;
if(color != 0) {
item = new SWItem(title, color);
}else {
item = new SWItem(material, title);
}
item.setLore(lore);
item.setCallback(callback);
item.setEnchanted(enchanted);
item.setHideAttributes(hideAttributes);
return item;
}
}

Datei anzeigen

@ -40,7 +40,6 @@ public class SWListInv<T> extends SWInventory {
@Override
public void open(){
setCallback(-999, (InvCallback.ClickType click) -> close());
if(elements.size() > 54){
if(page != 0)
addItem(45, new SWItem("§eSeite zurück", 10), (InvCallback.ClickType click) -> {

Datei anzeigen

@ -166,7 +166,8 @@ public class ChatListener extends BasicListener {
String msg = name + "§7»" + chatcolor + " " + message;
if(user.getTeam() != 0){
msg = "§8" + Team.get(user.getTeam()).getTeamKuerzel() + " §r" + msg;
Team team = Team.get(user.getTeam());
Review

Bitte nur einmal Team.get() machen.

Bitte nur einmal Team.get() machen.
msg = "§" + team.getTeamColor() + team.getTeamKuerzel() + " §r" + msg;
}
String[] msgSplits = msg.split(" ");

Datei anzeigen

@ -34,22 +34,24 @@ public class Team {
private String teamKuerzel;
private String teamName;
private int teamLeader;
private String teamColor;
private static final List<Team> teamCache = new LinkedList<>();
private static final Team pub = new Team(0, "PUB", "Öffentlich", 0);
private static final Team pub = new Team(0, "PUB", "Öffentlich", 0, "8");
Review

Das & wird Fehler verursachen

Das & wird Fehler verursachen
private Team(int id, String kuerzel, String name, int leader){
private Team(int id, String kuerzel, String name, int leader, String color){
teamId = id;
teamKuerzel = kuerzel;
teamName = name;
teamLeader = leader;
teamColor = color;
if (id != 0) {
teamCache.add(this);
}
}
private Team(ResultSet rs) throws SQLException {
this(rs.getInt("TeamID"), rs.getString("TeamKuerzel"), rs.getString("TeamName"), rs.getInt("TeamLeader"));
this(rs.getInt("TeamID"), rs.getString("TeamKuerzel"), rs.getString("TeamName"), rs.getInt("TeamLeader"), rs.getString("TeamColor"));
}
public static void create(String kuerzel, String name, int leader){
@ -58,7 +60,7 @@ public class Team {
public static Team get(int id){
if(id == -1)
return new Team(-1, "?", "?", 0);
return new Team(-1, "?", "?", 0, "8");
if(id == 0)
return pub;
for(Team team : teamCache)
@ -108,7 +110,7 @@ public class Team {
}
private void updateDB(){
SQL.update("INSERT INTO Team (TeamID, TeamKuerzel, TeamName, TeamLeader) VALUES (?, ?, ?, ?) ON DUPLICATE KEY UPDATE TeamName = VALUES(TeamName), TeamKuerzel = VALUES(TeamKuerzel), TeamLeader = VALUES(TeamLeader)", teamId, teamKuerzel, teamName, teamLeader);
SQL.update("INSERT INTO Team (TeamID, TeamKuerzel, TeamName, TeamLeader, TeamColor) VALUES (?, ?, ?, ?, ?) ON DUPLICATE KEY UPDATE TeamName = VALUES(TeamName), TeamKuerzel = VALUES(TeamKuerzel), TeamLeader = VALUES(TeamLeader), TeamColor = VALUES(TeamColor)", teamId, teamKuerzel, teamName, teamLeader, teamColor);
}
public int getTeamId() {
@ -142,6 +144,15 @@ public class Team {
updateDB();
}
public String getTeamColor() {
return teamColor;
}
public void setTeamColor(String teamColor) {
this.teamColor = teamColor;
Review

Ich glaube, nach dem Set muss da updateDB() aufgerufen werden.

Ich glaube, nach dem Set muss da updateDB() aufgerufen werden.
updateDB();
}
public int size(){
ResultSet rs = select("SELECT COUNT(id) FROM UserData WHERE Team = ?", teamId);
try {