geforkt von SteamWar/BungeeCore
Merge pull request 'Team Color' (#164) from team-color into master
Reviewed-by: Lixfel <lixfel@steamwar.de>
Dieser Commit ist enthalten in:
Commit
49ac19602b
@ -73,7 +73,7 @@ public class EventStarter implements Runnable {
|
|||||||
|
|
||||||
eventServer.put(blue.getTeamId(), subserver);
|
eventServer.put(blue.getTeamId(), subserver);
|
||||||
eventServer.put(red.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",
|
"§eEvent beitreten",
|
||||||
new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/event " + blue.getTeamKuerzel()));
|
new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/event " + blue.getTeamKuerzel()));
|
||||||
}
|
}
|
||||||
|
@ -91,9 +91,9 @@ public class EventCommand extends BasicCommand {
|
|||||||
e.getEventName());
|
e.getEventName());
|
||||||
Set<Team> teams = TeamTeilnahme.getTeams(e.getEventID());
|
Set<Team> teams = TeamTeilnahme.getTeams(e.getEventID());
|
||||||
if(!teams.isEmpty()){
|
if(!teams.isEmpty()){
|
||||||
StringBuilder tline = new StringBuilder("§7 Mit§8: §e");
|
StringBuilder tline = new StringBuilder("§7 Mit§8: ");
|
||||||
for(Team t : teams){
|
for(Team t : teams){
|
||||||
tline.append(t.getTeamKuerzel()).append(" ");
|
tline.append("§").append(t.getTeamColor()).append(t.getTeamKuerzel()).append(" ");
|
||||||
}
|
}
|
||||||
BungeeCore.send(player, tline.toString());
|
BungeeCore.send(player, tline.toString());
|
||||||
}
|
}
|
||||||
|
@ -20,6 +20,8 @@
|
|||||||
package de.steamwar.bungeecore.commands;
|
package de.steamwar.bungeecore.commands;
|
||||||
|
|
||||||
import de.steamwar.bungeecore.BungeeCore;
|
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.Event;
|
||||||
import de.steamwar.bungeecore.sql.SteamwarUser;
|
import de.steamwar.bungeecore.sql.SteamwarUser;
|
||||||
import de.steamwar.bungeecore.sql.Team;
|
import de.steamwar.bungeecore.sql.Team;
|
||||||
@ -40,6 +42,31 @@ import static de.steamwar.bungeecore.Storage.teamInvitations;
|
|||||||
|
|
||||||
public class TeamCommand extends BasicCommand {
|
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() {
|
public TeamCommand() {
|
||||||
super("team", "");
|
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 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 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 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");
|
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":
|
case "changeleader":
|
||||||
changeleader(player, user, team, args);
|
changeleader(player, user, team, args);
|
||||||
break;
|
break;
|
||||||
|
case "changecolor":
|
||||||
|
changeColor(player, user, team);
|
||||||
|
break;
|
||||||
case "info":
|
case "info":
|
||||||
info(player, user, team, args);
|
info(player, user, team, args);
|
||||||
break;
|
break;
|
||||||
@ -371,7 +402,7 @@ public class TeamCommand extends BasicCommand {
|
|||||||
return;
|
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());
|
BungeeCore.send(player, "§7Leader§8: " + SteamwarUser.get(team.getTeamLeader()).getUserName());
|
||||||
|
|
||||||
if(team.getMembers().size() > 1) {
|
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++){
|
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);
|
Team tm = all.get(i);
|
||||||
BungeeCore.send(player,
|
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",
|
"§7Teaminfo",
|
||||||
new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/team info " + tm.getTeamKuerzel()));
|
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()));
|
||||||
|
});
|
||||||
|
|
||||||
|
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){
|
private boolean checkTeamName(ProxiedPlayer player, Team team, String arg){
|
||||||
if(arg.length() < 4 || arg.length() > 15){
|
if(arg.length() < 4 || arg.length() > 15){
|
||||||
BungeeCore.send(player, BungeeCore.CHAT_PREFIX + "§cEin Teamname muss aus 4 bis 15 Buchstaben bestehen");
|
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("changekuerzel");
|
||||||
tab.add("changename");
|
tab.add("changename");
|
||||||
tab.add("changeleader");
|
tab.add("changeleader");
|
||||||
|
tab.add("changecolor");
|
||||||
}else if(args.length == 2){
|
}else if(args.length == 2){
|
||||||
if(args[1].equalsIgnoreCase("event")){
|
if(args[1].equalsIgnoreCase("event")){
|
||||||
List<Event> coming = Event.getComing();
|
List<Event> coming = Event.getComing();
|
||||||
|
@ -97,8 +97,13 @@ public class SWItem {
|
|||||||
this.hideAttributes = hideAttributes;
|
this.hideAttributes = hideAttributes;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setName(String name) {
|
public SWItem setName(String name) {
|
||||||
title = name;
|
title = name;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTitle() {
|
||||||
|
return title;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void addLore(String lore) {
|
public void addLore(String lore) {
|
||||||
@ -151,4 +156,18 @@ public class SWItem {
|
|||||||
public void setLore(List<String> lore) {
|
public void setLore(List<String> lore) {
|
||||||
this.lore = 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
|
@Override
|
||||||
public void open(){
|
public void open(){
|
||||||
setCallback(-999, (InvCallback.ClickType click) -> close());
|
|
||||||
if(elements.size() > 54){
|
if(elements.size() > 54){
|
||||||
if(page != 0)
|
if(page != 0)
|
||||||
addItem(45, new SWItem("§eSeite zurück", 10), (InvCallback.ClickType click) -> {
|
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;
|
String msg = name + "§7»" + chatcolor + " " + message;
|
||||||
if(user.getTeam() != 0){
|
if(user.getTeam() != 0){
|
||||||
msg = "§8" + Team.get(user.getTeam()).getTeamKuerzel() + " §r" + msg;
|
Team team = Team.get(user.getTeam());
|
||||||
|
msg = "§" + team.getTeamColor() + team.getTeamKuerzel() + " §r" + msg;
|
||||||
}
|
}
|
||||||
|
|
||||||
String[] msgSplits = msg.split(" ");
|
String[] msgSplits = msg.split(" ");
|
||||||
|
@ -34,22 +34,24 @@ public class Team {
|
|||||||
private String teamKuerzel;
|
private String teamKuerzel;
|
||||||
private String teamName;
|
private String teamName;
|
||||||
private int teamLeader;
|
private int teamLeader;
|
||||||
|
private String teamColor;
|
||||||
|
|
||||||
private static final List<Team> teamCache = new LinkedList<>();
|
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");
|
||||||
|
|
||||||
private Team(int id, String kuerzel, String name, int leader){
|
private Team(int id, String kuerzel, String name, int leader, String color){
|
||||||
teamId = id;
|
teamId = id;
|
||||||
teamKuerzel = kuerzel;
|
teamKuerzel = kuerzel;
|
||||||
teamName = name;
|
teamName = name;
|
||||||
teamLeader = leader;
|
teamLeader = leader;
|
||||||
|
teamColor = color;
|
||||||
if (id != 0) {
|
if (id != 0) {
|
||||||
teamCache.add(this);
|
teamCache.add(this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private Team(ResultSet rs) throws SQLException {
|
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){
|
public static void create(String kuerzel, String name, int leader){
|
||||||
@ -58,7 +60,7 @@ public class Team {
|
|||||||
|
|
||||||
public static Team get(int id){
|
public static Team get(int id){
|
||||||
if(id == -1)
|
if(id == -1)
|
||||||
return new Team(-1, "?", "?", 0);
|
return new Team(-1, "?", "?", 0, "8");
|
||||||
if(id == 0)
|
if(id == 0)
|
||||||
return pub;
|
return pub;
|
||||||
for(Team team : teamCache)
|
for(Team team : teamCache)
|
||||||
@ -108,7 +110,7 @@ public class Team {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void updateDB(){
|
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() {
|
public int getTeamId() {
|
||||||
@ -142,6 +144,15 @@ public class Team {
|
|||||||
updateDB();
|
updateDB();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getTeamColor() {
|
||||||
|
return teamColor;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTeamColor(String teamColor) {
|
||||||
|
this.teamColor = teamColor;
|
||||||
|
updateDB();
|
||||||
|
}
|
||||||
|
|
||||||
public int size(){
|
public int size(){
|
||||||
ResultSet rs = select("SELECT COUNT(id) FROM UserData WHERE Team = ?", teamId);
|
ResultSet rs = select("SELECT COUNT(id) FROM UserData WHERE Team = ?", teamId);
|
||||||
try {
|
try {
|
||||||
|
In neuem Issue referenzieren
Einen Benutzer sperren