Team Color #164
@ -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()));
|
||||
}
|
||||
|
@ -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());
|
||||
}
|
||||
|
@ -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));
|
||||
|
||||
}
|
||||
|
||||
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);
|
||||
Lixfel
hat
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()));
|
||||
Lixfel
hat
Nutze Inventory.close() (also inv.close()); Nutze Inventory.close() (also inv.close());
Chaoscaot
hat
Variable 'inv' might not have been initialized. Variable 'inv' might not have been initialized.
Lixfel
hat
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();
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -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) -> {
|
||||
|
@ -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());
|
||||
Lixfel
hat
Bitte nur einmal Team.get() machen. Bitte nur einmal Team.get() machen.
|
||||
msg = "§" + team.getTeamColor() + team.getTeamKuerzel() + " §r" + msg;
|
||||
}
|
||||
|
||||
String[] msgSplits = msg.split(" ");
|
||||
|
@ -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");
|
||||
Lixfel
hat
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;
|
||||
Lixfel
hat
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 {
|
||||
|
In neuem Issue referenzieren
Einen Benutzer sperren
Welcher Block soll da wie eingefärbt werden?
Das sind die Color Codes auf die Farbstoff Items aus dem SpigotCore