Merge branch 'master' into ban-rework
# Conflicts: # src/de/steamwar/messages/BungeeCore.properties
Dieser Commit ist enthalten in:
Commit
823fabec16
@ -239,9 +239,11 @@ public class BauCommand {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static void delete(ProxiedPlayer p, String[] command){
|
private static void delete(ProxiedPlayer p, String[] command){
|
||||||
SWInventory inventory = new SWInventory(p, 9, "§eWirklich Welt löschen?");
|
SWInventory inventory = new SWInventory(p, 9, Message.parse("BAU_DELETE_GUI_NAME", p));
|
||||||
inventory.addItem(new SWItem(8, "§cAbbrechen", 1), click -> inventory.close());
|
inventory.addItem(8, new SWItem(Message.parse("BAU_DELETE_GUI_CANCEL", p), 1), click ->
|
||||||
inventory.addItem(new SWItem(0, "§aLöschen", 10), click -> {
|
inventory.close()
|
||||||
|
);
|
||||||
|
inventory.addItem(0, new SWItem(Message.parse("BAU_DELETE_GUI_DELETE", p), 10), click -> {
|
||||||
if(bau15(p, command, 2)){
|
if(bau15(p, command, 2)){
|
||||||
SteamwarUser user = SteamwarUser.get(p.getUniqueId());
|
SteamwarUser user = SteamwarUser.get(p.getUniqueId());
|
||||||
deleteWorld(p, BungeeCore.USERWORLDS15 + user.getId());
|
deleteWorld(p, BungeeCore.USERWORLDS15 + user.getId());
|
||||||
|
@ -26,44 +26,76 @@ import net.md_5.bungee.api.chat.ClickEvent;
|
|||||||
import net.md_5.bungee.api.connection.ProxiedPlayer;
|
import net.md_5.bungee.api.connection.ProxiedPlayer;
|
||||||
|
|
||||||
public class HelpCommand extends BasicCommand {
|
public class HelpCommand extends BasicCommand {
|
||||||
|
|
||||||
public HelpCommand() {
|
public HelpCommand() {
|
||||||
super("help", "", "?");
|
super("help", "", "?");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void execute(CommandSender sender, String[] args) {
|
public void execute(CommandSender sender, String[] args) {
|
||||||
if(args.length != 1){
|
if (args.length < 1) {
|
||||||
Message.send("HELP_LOBBY", true, sender, ChatMessageType.SYSTEM, Message.parse("HELP_LOBBY_HOVER", sender), new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/l"));
|
Message.send("HELP_LOBBY", true, sender, ChatMessageType.SYSTEM, Message.parse("HELP_LOBBY_HOVER", sender), new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/l"));
|
||||||
Message.send("HELP_BAU", true, sender, ChatMessageType.SYSTEM, Message.parse("HELP_BAU_HOVER", sender), new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/bau"));
|
Message.send("HELP_BAU", true, sender, ChatMessageType.SYSTEM, Message.parse("HELP_BAU_HOVER", sender), new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/bau"));
|
||||||
Message.send("HELP_BAUSERVER", true, sender, ChatMessageType.SYSTEM, Message.parse("HELP_BAUSERVER_HOVER", sender), new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/help bauserver"));
|
Message.send("HELP_BAUSERVER", true, sender, ChatMessageType.SYSTEM, Message.parse("HELP_BAUSERVER_HOVER", sender), new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/help bau"));
|
||||||
Message.send("HELP_FIGHT", true, sender, ChatMessageType.SYSTEM, Message.parse("HELP_FIGHT_HOVER", sender), new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/fight"));
|
Message.send("HELP_FIGHT", true, sender, ChatMessageType.SYSTEM, Message.parse("HELP_FIGHT_HOVER", sender), new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/fight"));
|
||||||
Message.send("HELP_CHALLENGE", true, sender, ChatMessageType.SYSTEM, Message.parse("HELP_CHALLENGE_HOVER", sender), new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/challenge"));
|
Message.send("HELP_CHALLENGE", true, sender, ChatMessageType.SYSTEM, Message.parse("HELP_CHALLENGE_HOVER", sender), new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/challenge"));
|
||||||
Message.send("HELP_HISTORIC", true, sender, ChatMessageType.SYSTEM, Message.parse("HELP_HISTORIC_HOVER", sender), new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/historic"));
|
Message.send("HELP_HISTORIC", true, sender, ChatMessageType.SYSTEM, Message.parse("HELP_HISTORIC_HOVER", sender), new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/historic"));
|
||||||
Message.send("HELP_TEAM", true, sender, ChatMessageType.SYSTEM, Message.parse("HELP_TEAM_HOVER", sender), new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/team"));
|
Message.send("HELP_TEAM", true, sender, ChatMessageType.SYSTEM, Message.parse("HELP_TEAM_HOVER", sender), new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/team"));
|
||||||
Message.send("HELP_JOIN", true, sender, ChatMessageType.SYSTEM, Message.parse("HELP_JOIN_HOVER", sender), new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/join"));
|
Message.send("HELP_JOIN", true, sender, ChatMessageType.SYSTEM, Message.parse("HELP_JOIN_HOVER", sender), new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/join"));
|
||||||
Message.send("HELP_LOCAL", true, sender, ChatMessageType.SYSTEM, Message.parse("HELP_LOCAL_HOVER", sender), new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/local"));
|
Message.send("HELP_LOCAL", true, sender, ChatMessageType.SYSTEM, Message.parse("HELP_LOCAL_HOVER", sender), new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/local"));
|
||||||
}else if(args[0].equalsIgnoreCase("bauserver")){
|
return;
|
||||||
|
}
|
||||||
|
if (args[0].equalsIgnoreCase("bauserver")) {
|
||||||
sendBauHelp((ProxiedPlayer) sender);
|
sendBauHelp((ProxiedPlayer) sender);
|
||||||
}else if(args[0].equalsIgnoreCase("bau")){
|
}
|
||||||
Message.sendPrefixless("HELP_TNT", sender);
|
if (args[0].equalsIgnoreCase("bau")) {
|
||||||
Message.sendPrefixless("HELP_FIRE", sender);
|
bauHelpGroup((ProxiedPlayer) sender, args);
|
||||||
Message.sendPrefixless("HELP_TESTBLOCK", sender);
|
return;
|
||||||
Message.sendPrefixless("HELP_RESET", sender);
|
}
|
||||||
Message.sendPrefixless("HELP_SPEED", sender);
|
|
||||||
Message.sendPrefixless("HELP_NV", sender);
|
}
|
||||||
Message.sendPrefixless("HELP_WV", sender);
|
|
||||||
Message.sendPrefixless("HELP_TRACE", sender);
|
private static void bauHelpGroup(ProxiedPlayer p, String[] args) {
|
||||||
Message.sendPrefixless("HELP_LOADER", sender);
|
if (args.length < 2) {
|
||||||
Message.sendPrefixless("HELP_PROTECT", sender);
|
sendBauHelpGroup(p);
|
||||||
Message.sendPrefixless("HELP_FREEZE", sender);
|
return;
|
||||||
Message.sendPrefixless("HELP_SKULL", sender);
|
}
|
||||||
Message.sendPrefixless("HELP_DEBUGSTICK", sender);
|
|
||||||
Message.sendPrefixless("HELP_BAUINFO", sender);
|
switch (args[1].toLowerCase()) {
|
||||||
Message.sendPrefixless("HELP_BAUSERVER_SHORT", sender);
|
case "admin":
|
||||||
|
case "owner":
|
||||||
|
case "bauwelt":
|
||||||
|
sendBauHelpAdmin(p);
|
||||||
|
return;
|
||||||
|
case "world":
|
||||||
|
sendBauHelpWorld(p);
|
||||||
|
return;
|
||||||
|
case "player":
|
||||||
|
sendBauHelpPlayer(p);
|
||||||
|
return;
|
||||||
|
case "worldedit":
|
||||||
|
case "we":
|
||||||
|
case "world-edit":
|
||||||
|
case "edit":
|
||||||
|
sendBauHelpWorldEdit(p);
|
||||||
|
return;
|
||||||
|
case "other":
|
||||||
|
sendBauHelpOther(p);
|
||||||
|
return;
|
||||||
|
default:
|
||||||
|
sendBauHelpGroup(p);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sendBauHelp(ProxiedPlayer p){
|
private static void sendBauHelpGroup(ProxiedPlayer p) {
|
||||||
|
Message.send("HELP_BAU_GROUP_ADMIN", true, p, ChatMessageType.SYSTEM, Message.parse("HELP_BAU_GROUP_ADMIN_HOVER", p), new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/help bau admin"));
|
||||||
|
Message.send("HELP_BAU_GROUP_WORLD", true, p, ChatMessageType.SYSTEM, Message.parse("HELP_BAU_GROUP_WORLD_HOVER", p), new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/help bau world"));
|
||||||
|
Message.send("HELP_BAU_GROUP_PLAYER", true, p, ChatMessageType.SYSTEM, Message.parse("HELP_BAU_GROUP_PLAYER_HOVER", p), new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/help bau player"));
|
||||||
|
Message.send("HELP_BAU_GROUP_WE", true, p, ChatMessageType.SYSTEM, Message.parse("HELP_BAU_GROUP_WE_HOVER", p), new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/help bau we"));
|
||||||
|
Message.send("HELP_BAU_GROUP_OTHER", true, p, ChatMessageType.SYSTEM, Message.parse("HELP_BAU_GROUP_OTHER_HOVER", p), new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/help bau other"));
|
||||||
|
}
|
||||||
|
|
||||||
|
static void sendBauHelp(ProxiedPlayer p) {
|
||||||
Message.send("HELP_BAU_TP", true, p, ChatMessageType.SYSTEM, Message.parse("HELP_BAU_TP_HOVER", p), new ClickEvent(ClickEvent.Action.SUGGEST_COMMAND, "/bau tp "));
|
Message.send("HELP_BAU_TP", true, p, ChatMessageType.SYSTEM, Message.parse("HELP_BAU_TP_HOVER", p), new ClickEvent(ClickEvent.Action.SUGGEST_COMMAND, "/bau tp "));
|
||||||
Message.send("HELP_BAU_ADDMEMBER", true, p, ChatMessageType.SYSTEM, Message.parse("HELP_BAU_ADDMEMBER_HOVER", p), new ClickEvent(ClickEvent.Action.SUGGEST_COMMAND, "/bau addmember "));
|
Message.send("HELP_BAU_ADDMEMBER", true, p, ChatMessageType.SYSTEM, Message.parse("HELP_BAU_ADDMEMBER_HOVER", p), new ClickEvent(ClickEvent.Action.SUGGEST_COMMAND, "/bau addmember "));
|
||||||
Message.send("HELP_BAU_DELMEMBER", true, p, ChatMessageType.SYSTEM, Message.parse("HELP_BAU_DELMEMBER_HOVER", p), new ClickEvent(ClickEvent.Action.SUGGEST_COMMAND, "/bau delmember "));
|
Message.send("HELP_BAU_DELMEMBER", true, p, ChatMessageType.SYSTEM, Message.parse("HELP_BAU_DELMEMBER_HOVER", p), new ClickEvent(ClickEvent.Action.SUGGEST_COMMAND, "/bau delmember "));
|
||||||
@ -72,6 +104,51 @@ public class HelpCommand extends BasicCommand {
|
|||||||
Message.send("HELP_BAU_TOGGLEWORLD", true, p, ChatMessageType.SYSTEM, Message.parse("HELP_BAU_TOGGLEWORLD_HOVER", p), new ClickEvent(ClickEvent.Action.SUGGEST_COMMAND, "/bau toggleworld "));
|
Message.send("HELP_BAU_TOGGLEWORLD", true, p, ChatMessageType.SYSTEM, Message.parse("HELP_BAU_TOGGLEWORLD_HOVER", p), new ClickEvent(ClickEvent.Action.SUGGEST_COMMAND, "/bau toggleworld "));
|
||||||
Message.send("HELP_BAU_DELETE", true, p, ChatMessageType.SYSTEM, Message.parse("HELP_BAU_DELETE_HOVER", p), new ClickEvent(ClickEvent.Action.SUGGEST_COMMAND, "/bau delete "));
|
Message.send("HELP_BAU_DELETE", true, p, ChatMessageType.SYSTEM, Message.parse("HELP_BAU_DELETE_HOVER", p), new ClickEvent(ClickEvent.Action.SUGGEST_COMMAND, "/bau delete "));
|
||||||
Message.send("HELP_BAU_TESTARENA", true, p, ChatMessageType.SYSTEM, Message.parse("HELP_BAU_TESTARENA_HOVER", p), new ClickEvent(ClickEvent.Action.SUGGEST_COMMAND, "/bau testarena "));
|
Message.send("HELP_BAU_TESTARENA", true, p, ChatMessageType.SYSTEM, Message.parse("HELP_BAU_TESTARENA_HOVER", p), new ClickEvent(ClickEvent.Action.SUGGEST_COMMAND, "/bau testarena "));
|
||||||
Message.send("HELP_BAU_BAU", true, p, ChatMessageType.SYSTEM, Message.parse("HELP_BAU_BAU_HOVER", p), new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/help bau"));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void sendBauHelpWorld(ProxiedPlayer p) {
|
||||||
|
Message.send("HELP_BAU_GROUP_WORLD_TITLE", p);
|
||||||
|
Message.sendPrefixless("HELP_TNT", p);
|
||||||
|
Message.sendPrefixless("HELP_FIRE", p);
|
||||||
|
Message.sendPrefixless("HELP_FREEZE", p);
|
||||||
|
Message.sendPrefixless("HELP_TPSLIMIT", p);
|
||||||
|
Message.sendPrefixless("HELP_PROTECT", p);
|
||||||
|
Message.sendPrefixless("HELP_RESET", p);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void sendBauHelpPlayer(ProxiedPlayer p) {
|
||||||
|
Message.sendPrefixless("HELP_BAU_GROUP_PLAYER_TITLE", p);
|
||||||
|
Message.sendPrefixless("HELP_SPEED", p);
|
||||||
|
Message.sendPrefixless("HELP_NV", p);
|
||||||
|
Message.sendPrefixless("HELP_WV", p);
|
||||||
|
Message.sendPrefixless("HELP_DEBUGSTICK", p);
|
||||||
|
Message.sendPrefixless("HELP_TRACE", p);
|
||||||
|
Message.sendPrefixless("HELP_LOADER", p);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void sendBauHelpAdmin(ProxiedPlayer p) {
|
||||||
|
Message.send("HELP_BAU_GROUP_ADMIN_TITLE", p);
|
||||||
|
sendBauHelp(p);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void sendBauHelpWorldEdit(ProxiedPlayer p) {
|
||||||
|
Message.sendPrefixless("HELP_BAU_GROUP_WE_TITLE", p);
|
||||||
|
Message.sendPrefixless("HELP_WE_POS1", p);
|
||||||
|
Message.sendPrefixless("HELP_WE_POS2", p);
|
||||||
|
Message.sendPrefixless("HELP_WE_COPY", p);
|
||||||
|
Message.sendPrefixless("HELP_WE_PASTE", p);
|
||||||
|
Message.sendPrefixless("HELP_WE_FLOPY", p);
|
||||||
|
Message.sendPrefixless("HELP_WE_FLOPYP", p);
|
||||||
|
Message.sendPrefixless("HELP_WE_ROTATE_90", p);
|
||||||
|
Message.sendPrefixless("HELP_WE_ROTATE_180", p);
|
||||||
|
Message.sendPrefixless("HELP_WE_ROTATE_N90", p);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void sendBauHelpOther(ProxiedPlayer p) {
|
||||||
|
Message.sendPrefixless("HELP_BAU_GROUP_OTHER_TITLE", p);
|
||||||
|
Message.sendPrefixless("HELP_TESTBLOCK", p);
|
||||||
|
Message.sendPrefixless("HELP_SKULL", p);
|
||||||
|
Message.sendPrefixless("HELP_BAUINFO", p);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -20,7 +20,6 @@
|
|||||||
package de.steamwar.bungeecore.comms;
|
package de.steamwar.bungeecore.comms;
|
||||||
|
|
||||||
public class PacketIdManager {
|
public class PacketIdManager {
|
||||||
private PacketIdManager(){}
|
|
||||||
|
|
||||||
//0x0(X) Standalone Packets
|
//0x0(X) Standalone Packets
|
||||||
public static final byte PING_PACKET = 0x01;
|
public static final byte PING_PACKET = 0x01;
|
||||||
|
@ -68,7 +68,7 @@ public class InventoryPacket extends BungeePacket {
|
|||||||
JsonArray array = new JsonArray();
|
JsonArray array = new JsonArray();
|
||||||
for (int i = 0; i < size; i++) {
|
for (int i = 0; i < size; i++) {
|
||||||
if(items.get(i) != null)
|
if(items.get(i) != null)
|
||||||
array.add(items.get(i).writeToString());
|
array.add(items.get(i).writeToString(i));
|
||||||
}
|
}
|
||||||
object.add("items", array);
|
object.add("items", array);
|
||||||
byteArrayDataOutput.writeUTF(object.toString());
|
byteArrayDataOutput.writeUTF(object.toString());
|
||||||
|
@ -25,7 +25,9 @@ import de.steamwar.bungeecore.comms.packets.InventoryPacket;
|
|||||||
import de.steamwar.bungeecore.sql.SteamwarUser;
|
import de.steamwar.bungeecore.sql.SteamwarUser;
|
||||||
import net.md_5.bungee.api.connection.ProxiedPlayer;
|
import net.md_5.bungee.api.connection.ProxiedPlayer;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
public class SWInventory {
|
public class SWInventory {
|
||||||
@ -46,33 +48,26 @@ public class SWInventory {
|
|||||||
next = false;
|
next = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void addItem(SWItem item) {
|
|
||||||
itemMap.put(item.getPosition(), item);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void addItem(SWItem item, InvCallback callback) {
|
|
||||||
item.setCallback(callback);
|
|
||||||
itemMap.put(item.getPosition(), item);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void addItem(int position, SWItem item) {
|
|
||||||
itemMap.put(position, item);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void addItem(int pos, SWItem item, InvCallback callback) {
|
public void addItem(int pos, SWItem item, InvCallback callback) {
|
||||||
|
addItem(pos, item, new ArrayList<>(), callback);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addItem(int pos, SWItem item, List<String> lore, InvCallback callback) {
|
||||||
item.setCallback(callback);
|
item.setCallback(callback);
|
||||||
|
item.setLore(lore);
|
||||||
|
itemMap.put(pos, item);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addItem(int pos, SWItem item) {
|
||||||
itemMap.put(pos, item);
|
itemMap.put(pos, item);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void addItem(int pos, SWItem item, String name, InvCallback callback) {
|
public void addItem(int pos, SWItem item, String name, InvCallback callback) {
|
||||||
|
item.setName(name);
|
||||||
item.setCallback(callback);
|
item.setCallback(callback);
|
||||||
itemMap.put(pos, item);
|
itemMap.put(pos, item);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void removeItem(SWItem item) {
|
|
||||||
itemMap.remove(item.getPosition());
|
|
||||||
}
|
|
||||||
|
|
||||||
public void removeItem(int position) {
|
public void removeItem(int position) {
|
||||||
itemMap.remove(position);
|
itemMap.remove(position);
|
||||||
}
|
}
|
||||||
|
@ -29,29 +29,26 @@ public class SWItem {
|
|||||||
|
|
||||||
private String material, title, skullOwner;
|
private String material, title, skullOwner;
|
||||||
private boolean enchanted, hideAttributes;
|
private boolean enchanted, hideAttributes;
|
||||||
private int position;
|
|
||||||
private List<String> lore;
|
private List<String> lore;
|
||||||
private InvCallback callback;
|
private InvCallback callback;
|
||||||
private int color;
|
private int color;
|
||||||
|
|
||||||
public SWItem(String material, int position, String title) {
|
public SWItem(String material, String title) {
|
||||||
this.material = material.toUpperCase();
|
this.material = material.toUpperCase();
|
||||||
lore = new ArrayList<>();
|
lore = new ArrayList<>();
|
||||||
this.position = position;
|
|
||||||
this.title = title;
|
this.title = title;
|
||||||
color = 0;
|
color = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public SWItem(int position, String title, int color) {
|
public SWItem(String title, int color) {
|
||||||
this.material = "DYE";
|
this.material = "DYE";
|
||||||
lore = new ArrayList<>();
|
lore = new ArrayList<>();
|
||||||
this.position = position;
|
|
||||||
this.title = title;
|
this.title = title;
|
||||||
this.color = color;
|
this.color = color;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static SWItem getSkull(String skullOwner) {
|
public static SWItem getSkull(String skullOwner) {
|
||||||
SWItem item = new SWItem("SKULL", 1, skullOwner);
|
SWItem item = new SWItem("SKULL", skullOwner);
|
||||||
item.setSkullOwner(skullOwner);
|
item.setSkullOwner(skullOwner);
|
||||||
return item;
|
return item;
|
||||||
}
|
}
|
||||||
@ -100,10 +97,6 @@ public class SWItem {
|
|||||||
this.hideAttributes = hideAttributes;
|
this.hideAttributes = hideAttributes;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getPosition() {
|
|
||||||
return position;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setName(String name) {
|
public void setName(String name) {
|
||||||
title = name;
|
title = name;
|
||||||
}
|
}
|
||||||
@ -112,7 +105,7 @@ public class SWItem {
|
|||||||
this.lore.add(lore);
|
this.lore.add(lore);
|
||||||
}
|
}
|
||||||
|
|
||||||
public JsonObject writeToString() {
|
public JsonObject writeToString(int position) {
|
||||||
JsonObject object = new JsonObject();
|
JsonObject object = new JsonObject();
|
||||||
object.addProperty("material", material);
|
object.addProperty("material", material);
|
||||||
object.addProperty("position", position);
|
object.addProperty("position", position);
|
||||||
@ -152,8 +145,10 @@ public class SWItem {
|
|||||||
return false;
|
return false;
|
||||||
if(!item.skullOwner.equals(skullOwner))
|
if(!item.skullOwner.equals(skullOwner))
|
||||||
return false;
|
return false;
|
||||||
if(item.position != position)
|
|
||||||
return false;
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setLore(List<String> lore) {
|
||||||
|
this.lore = lore;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -43,19 +43,19 @@ public class SWListInv<T> extends SWInventory {
|
|||||||
setCallback(-999, (InvCallback.ClickType click) -> close());
|
setCallback(-999, (InvCallback.ClickType click) -> close());
|
||||||
if(elements.size() > 54){
|
if(elements.size() > 54){
|
||||||
if(page != 0)
|
if(page != 0)
|
||||||
addItem(45, new SWItem(45, "§eSeite zurück", 10), (InvCallback.ClickType click) -> {
|
addItem(45, new SWItem("§eSeite zurück", 10), (InvCallback.ClickType click) -> {
|
||||||
page--;
|
page--;
|
||||||
open();
|
open();
|
||||||
});
|
});
|
||||||
else
|
else
|
||||||
addItem(45, new SWItem(45, "§7Seite zurück", 8), (InvCallback.ClickType click) -> {});
|
addItem(45, new SWItem("§7Seite zurück", 8), (InvCallback.ClickType click) -> {});
|
||||||
if(page < elements.size()/45)
|
if(page < elements.size()/45)
|
||||||
addItem(53, new SWItem( 53, "§eSeite vor", 10), "§eSeite vor", (InvCallback.ClickType click) -> {
|
addItem(53, new SWItem("§eSeite vor", 10), "§eSeite vor", (InvCallback.ClickType click) -> {
|
||||||
page++;
|
page++;
|
||||||
open();
|
open();
|
||||||
});
|
});
|
||||||
else
|
else
|
||||||
addItem(53, new SWItem(53, "§eSeite vor", 8), (InvCallback.ClickType click) -> {});
|
addItem(53, new SWItem("§eSeite vor", 8), (InvCallback.ClickType click) -> {});
|
||||||
}
|
}
|
||||||
|
|
||||||
int ipageLimit = elements.size() - page*45;
|
int ipageLimit = elements.size() - page*45;
|
||||||
@ -119,7 +119,7 @@ public class SWListInv<T> extends SWInventory {
|
|||||||
m = "CAULDRON_ITEM";
|
m = "CAULDRON_ITEM";
|
||||||
else
|
else
|
||||||
m = s.getSchemItem();
|
m = s.getSchemItem();
|
||||||
SWItem item = new SWItem(m, 0, "§e" + s.getSchemName());
|
SWItem item = new SWItem(m, "§e" + s.getSchemName());
|
||||||
schemList.add(new SWListEntry<>(item, s));
|
schemList.add(new SWListEntry<>(item, s));
|
||||||
}
|
}
|
||||||
return schemList;
|
return schemList;
|
||||||
|
@ -20,6 +20,7 @@
|
|||||||
package de.steamwar.bungeecore.listeners;
|
package de.steamwar.bungeecore.listeners;
|
||||||
|
|
||||||
import de.steamwar.bungeecore.BungeeCore;
|
import de.steamwar.bungeecore.BungeeCore;
|
||||||
|
import de.steamwar.bungeecore.Message;
|
||||||
import de.steamwar.bungeecore.sql.BannedUserIPs;
|
import de.steamwar.bungeecore.sql.BannedUserIPs;
|
||||||
import de.steamwar.bungeecore.sql.SteamwarUser;
|
import de.steamwar.bungeecore.sql.SteamwarUser;
|
||||||
import net.md_5.bungee.api.ProxyServer;
|
import net.md_5.bungee.api.ProxyServer;
|
||||||
@ -31,6 +32,9 @@ import net.md_5.bungee.api.connection.ProxiedPlayer;
|
|||||||
import net.md_5.bungee.api.event.LoginEvent;
|
import net.md_5.bungee.api.event.LoginEvent;
|
||||||
import net.md_5.bungee.event.EventHandler;
|
import net.md_5.bungee.event.EventHandler;
|
||||||
|
|
||||||
|
import java.sql.Timestamp;
|
||||||
|
import java.time.Instant;
|
||||||
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class BanListener extends BasicListener {
|
public class BanListener extends BasicListener {
|
||||||
@ -47,27 +51,32 @@ public class BanListener extends BasicListener {
|
|||||||
|
|
||||||
List<BannedUserIPs> ips = BannedUserIPs.get(event.getConnection().getAddress().getAddress().getHostAddress());
|
List<BannedUserIPs> ips = BannedUserIPs.get(event.getConnection().getAddress().getAddress().getHostAddress());
|
||||||
if(!ips.isEmpty()){
|
if(!ips.isEmpty()){
|
||||||
StringBuilder potentialBan = new StringBuilder();
|
|
||||||
potentialBan.append(BungeeCore.CHAT_PREFIX);
|
|
||||||
potentialBan.append("§cMögliche Bannumgehung durch §r");
|
|
||||||
potentialBan.append(user.getUserName());
|
|
||||||
potentialBan.append("§c:");
|
|
||||||
|
|
||||||
for(BannedUserIPs banned : ips){
|
Timestamp highestBan = Timestamp.from(Instant.now());
|
||||||
SteamwarUser bannedUser = SteamwarUser.get(banned.getUserID());
|
for(BannedUserIPs banned : ips) {
|
||||||
potentialBan.append(" §e");
|
if(highestBan.before(banned.getTimestamp()))
|
||||||
potentialBan.append(banned.getTimestamp().toLocalDateTime().format(BungeeCore.DATE_FORMAT));
|
highestBan = banned.getTimestamp();
|
||||||
potentialBan.append(" §c");
|
|
||||||
potentialBan.append(bannedUser.getUserName());
|
|
||||||
}
|
}
|
||||||
|
ClickEvent clickEvent = new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/ban " + user.getUserName() + " "
|
||||||
|
+ highestBan.toLocalDateTime().format(DateTimeFormatter.ofPattern("dd.MM.yyyy_HH:mm"))
|
||||||
|
+ " Bannumgehung");
|
||||||
|
|
||||||
TextComponent msg = new TextComponent(potentialBan.toString());
|
|
||||||
msg.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new ComponentBuilder("§cBanne Spieler wegen Bannumgehung").create()));
|
|
||||||
msg.setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/ban " + user.getUserName() + " perma Bannumgehung"));
|
|
||||||
for (ProxiedPlayer target : ProxyServer.getInstance().getPlayers()){
|
for (ProxiedPlayer target : ProxyServer.getInstance().getPlayers()){
|
||||||
if ((target.hasPermission("bungeecore.teamchat"))
|
if ((target.hasPermission("bungeecore.teamchat"))
|
||||||
&& (target.getChatMode() == ProxiedPlayer.ChatMode.COMMANDS_ONLY
|
&& (target.getChatMode() == ProxiedPlayer.ChatMode.COMMANDS_ONLY
|
||||||
|| target.getChatMode() == ProxiedPlayer.ChatMode.SHOWN)){
|
|| target.getChatMode() == ProxiedPlayer.ChatMode.SHOWN)){
|
||||||
|
StringBuilder potentialBan = new StringBuilder();
|
||||||
|
potentialBan.append(Message.parsePrefixed("BAN_AVOIDING_ALERT", target, user.getUserName()));
|
||||||
|
|
||||||
|
for(BannedUserIPs banned : ips) {
|
||||||
|
SteamwarUser bannedUser = SteamwarUser.get(banned.getUserID());
|
||||||
|
potentialBan.append(Message.parse("BAN_AVOIDING_LIST", target, bannedUser.getId(),
|
||||||
|
banned.getTimestamp().toLocalDateTime().format(BungeeCore.DATE_FORMAT), bannedUser.getUserName()));
|
||||||
|
}
|
||||||
|
|
||||||
|
TextComponent msg = new TextComponent(potentialBan.toString());
|
||||||
|
msg.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new ComponentBuilder(Message.parse("BAN_AVOIDING_BAN_HOVER", target)).create()));
|
||||||
|
msg.setClickEvent(clickEvent);
|
||||||
target.sendMessage(msg);
|
target.sendMessage(msg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -209,6 +209,12 @@ public class SteamwarUser {
|
|||||||
if(player != null){
|
if(player != null){
|
||||||
updateBanIP(player.getAddress().getAddress().getHostAddress());
|
updateBanIP(player.getAddress().getAddress().getHostAddress());
|
||||||
player.disconnect(banMessage());
|
player.disconnect(banMessage());
|
||||||
|
for (BannedUserIPs banned:
|
||||||
|
BannedUserIPs.get(player.getAddress().getAddress().getHostAddress())) {
|
||||||
|
SteamwarUser bannedUser = SteamwarUser.get(banned.getUserID());
|
||||||
|
if(bannedUser.isBanned() && banned.getTimestamp().before(time))
|
||||||
|
bannedUser.ban(time, bannedUser.banReason);
|
||||||
|
}
|
||||||
}else
|
}else
|
||||||
updateBanIP("");
|
updateBanIP("");
|
||||||
}
|
}
|
||||||
|
@ -9,7 +9,7 @@ HELP_LOBBY=§7Kehre von überall mit §8/§el §7zur Lobby zurück!
|
|||||||
HELP_LOBBY_HOVER=§eZurück zur Lobby
|
HELP_LOBBY_HOVER=§eZurück zur Lobby
|
||||||
HELP_BAU=§7Komme mit §8/§ebau §7auf den Bauserver!
|
HELP_BAU=§7Komme mit §8/§ebau §7auf den Bauserver!
|
||||||
HELP_BAU_HOVER=§eZum Bauserver
|
HELP_BAU_HOVER=§eZum Bauserver
|
||||||
HELP_BAUSERVER=§7Erhalte mit §8/§ehelp bauserver §7Hilfe zum Bauserver!
|
HELP_BAUSERVER=§7Erhalte mit §8/§ehelp bau §7Hilfe zum Bauserver!
|
||||||
HELP_BAUSERVER_HOVER=§eHilfe zum Bauserver
|
HELP_BAUSERVER_HOVER=§eHilfe zum Bauserver
|
||||||
HELP_FIGHT=§7Starte mit §8/§efight §7einen neuen Kampf!
|
HELP_FIGHT=§7Starte mit §8/§efight §7einen neuen Kampf!
|
||||||
HELP_FIGHT_HOVER=§eZum Kampfsystem
|
HELP_FIGHT_HOVER=§eZum Kampfsystem
|
||||||
@ -32,13 +32,39 @@ HELP_SPEED=§8/§espeed §8- §7Ändert deine Fluggeschwindigkeit
|
|||||||
HELP_NV=§8/§env §8- §7(de)aktiviert Nachtsicht
|
HELP_NV=§8/§env §8- §7(de)aktiviert Nachtsicht
|
||||||
HELP_WV=§8/§ewv §8- §7(de)aktiviert Unterwassersicht
|
HELP_WV=§8/§ewv §8- §7(de)aktiviert Unterwassersicht
|
||||||
HELP_TRACE=§8/§etrace §8- §7Gibt einen Überblick über den TNT-Tracer
|
HELP_TRACE=§8/§etrace §8- §7Gibt einen Überblick über den TNT-Tracer
|
||||||
|
HELP_TPSLIMIT=§8/§etpslimit §8- §7Gibt einen Überblick über den TPS-Limiter
|
||||||
HELP_LOADER=§8/§eloader §8- §7Nutze den automatischen Kanonenlader
|
HELP_LOADER=§8/§eloader §8- §7Nutze den automatischen Kanonenlader
|
||||||
HELP_PROTECT=§8/§eprotect §8- §7Schützt den Boden der (M)WG-Region
|
HELP_PROTECT=§8/§eprotect §8- §7Schützt den Boden der (M)WG-Region
|
||||||
HELP_FREEZE=§8/§efreeze §8- §7Unterbindet Blockupdates
|
HELP_FREEZE=§8/§efreeze §8- §7Unterbindet Blockupdates
|
||||||
HELP_SKULL=§8/§eskull §8- §7Gibt dir den Kopf eines Spielers
|
HELP_SKULL=§8/§eskull §8- §7Gibt dir den Kopf eines Spielers
|
||||||
HELP_DEBUGSTICK=§8/§edebugstick §8- §7Gibt dir einen Debugstick (nur 1.15)
|
HELP_DEBUGSTICK=§8/§edebugstick §8- §7Gibt dir einen Debugstick (nur 1.15)
|
||||||
HELP_BAUINFO=§8/§ebauinfo §8- §7Gibt dir Informationen über den Bauserver
|
HELP_BAUINFO=§8/§ebauinfo §8- §7Gibt dir Informationen über den Bauserver
|
||||||
HELP_BAUSERVER_SHORT=§8/§ehelp bauserver §8- §7Hilfe zum Bauserver
|
|
||||||
|
HELP_WE_POS1=§8//§e1 §7» §8//§epos1
|
||||||
|
HELP_WE_POS2=§8//§e2 §7» §8//§epos2
|
||||||
|
HELP_WE_COPY=§8//§ec §7» §8//§ecopy
|
||||||
|
HELP_WE_PASTE=§8//§ep §7» §8//§epaste
|
||||||
|
HELP_WE_FLOPY=§8//§eflopy §7» §8//§ecopy §7& §8//§eflip
|
||||||
|
HELP_WE_FLOPYP=§8//§eflopyp §7» §8//§ecopy §7& §8//§eflip §7& §8//§epaste
|
||||||
|
HELP_WE_ROTATE_90=§8//§e90 §7» §8//§erotate 90
|
||||||
|
HELP_WE_ROTATE_180=§8//§e180 §7» §8//§erotate 180
|
||||||
|
HELP_WE_ROTATE_N90=§8//§e-90 §7» §8//§erotate -90
|
||||||
|
|
||||||
|
HELP_BAU_GROUP_ADMIN=§7Bauserver-Verwaltungsbefehle
|
||||||
|
HELP_BAU_GROUP_ADMIN_HOVER=§eAlle Verwaltungsbefehle
|
||||||
|
HELP_BAU_GROUP_ADMIN_TITLE=§7Alle Verwaltungsbefehle§8:
|
||||||
|
HELP_BAU_GROUP_OTHER=§7Weitere Bauserverbefehle
|
||||||
|
HELP_BAU_GROUP_OTHER_HOVER=§eWeitere Bauserverbefehle
|
||||||
|
HELP_BAU_GROUP_OTHER_TITLE=§7Weitere Bauserverbefehle§8:
|
||||||
|
HELP_BAU_GROUP_WE=§7WorldEdit-Abkürzungen
|
||||||
|
HELP_BAU_GROUP_WE_HOVER=§eWorldEdit-Abkürzungen
|
||||||
|
HELP_BAU_GROUP_WE_TITLE=§7WorldEdit-Abkürzungen§8:
|
||||||
|
HELP_BAU_GROUP_PLAYER=§7Spielerbefehle
|
||||||
|
HELP_BAU_GROUP_PLAYER_HOVER=§eSpielerbefehle
|
||||||
|
HELP_BAU_GROUP_PLAYER_TITLE=§7Spielerbefehle§8:
|
||||||
|
HELP_BAU_GROUP_WORLD=§7Weltverändernde Bauserverbefehle
|
||||||
|
HELP_BAU_GROUP_WORLD_HOVER=§eWeltverändernde Bauserverbefehle
|
||||||
|
HELP_BAU_GROUP_WORLD_TITLE=§7Weltverändernde Bauserverbefehle§8:
|
||||||
|
|
||||||
HELP_BAU_TP=§8/§ebau tp §8- §7Gehe auf Bauserver von Freunden!
|
HELP_BAU_TP=§8/§ebau tp §8- §7Gehe auf Bauserver von Freunden!
|
||||||
HELP_BAU_TP_HOVER=§eZu einem anderen Bauserver
|
HELP_BAU_TP_HOVER=§eZu einem anderen Bauserver
|
||||||
@ -56,8 +82,6 @@ HELP_BAU_DELETE=§8/§ebau delete §8- §7Setzt deine Bauwelt zurück
|
|||||||
HELP_BAU_DELETE_HOVER=§eBauwelt zurücksetzen
|
HELP_BAU_DELETE_HOVER=§eBauwelt zurücksetzen
|
||||||
HELP_BAU_TESTARENA=§8/§ebau testarena §8- §7Starte eine Testarena
|
HELP_BAU_TESTARENA=§8/§ebau testarena §8- §7Starte eine Testarena
|
||||||
HELP_BAU_TESTARENA_HOVER=§eTestarena starten
|
HELP_BAU_TESTARENA_HOVER=§eTestarena starten
|
||||||
HELP_BAU_BAU=§8/§ehelp bau §8- §7Hilfe zu nützlichen Werkzeugen
|
|
||||||
HELP_BAU_BAU_HOVER=§eNützliche Zusatzfunktionen
|
|
||||||
|
|
||||||
#Usage description of various commands
|
#Usage description of various commands
|
||||||
USAGE_ALERT=§8/§7alert §8[§eNachricht§8]
|
USAGE_ALERT=§8/§7alert §8[§eNachricht§8]
|
||||||
@ -92,4 +116,9 @@ IGNORE_MESSAGE=§7Du ignorierst nun §e{0}§8.
|
|||||||
#PollresultCommand
|
#PollresultCommand
|
||||||
POLLRESULT_NOPOLL=§cDerzeit läuft keine Umfrage.
|
POLLRESULT_NOPOLL=§cDerzeit läuft keine Umfrage.
|
||||||
POLLRESULT_HEADER=§eEs haben {0} abgestimmt auf die Frage: §7{1}
|
POLLRESULT_HEADER=§eEs haben {0} abgestimmt auf die Frage: §7{1}
|
||||||
POLLRESULT_LIST=§e{0}§8: §7{1}
|
POLLRESULT_LIST=§e{0}§8: §7{1}
|
||||||
|
|
||||||
|
#BauCommand
|
||||||
|
BAU_DELETE_GUI_NAME=§eWirklich Welt löschen?
|
||||||
|
BAU_DELETE_GUI_CANCEL=§cAbbrechen
|
||||||
|
BAU_DELETE_GUI_DELETE=§aLöschen
|
In neuem Issue referenzieren
Einen Benutzer sperren