forked from SteamWar/SteamWar
Merge branch 'main' into BauSystem/tracer-lua-lib
This commit is contained in:
@@ -406,6 +406,8 @@ BLOCK_COUNTER_MESSAGE_SECOND=§7Damage §8> §e{0} §7Blocks §e{1} §7TNT §e
|
||||
BLOCK_COUNTER_ENABLE=§7BlockCounter activated
|
||||
BLOCK_COUNTER_DISABLE=§7BlockCounter deactivated
|
||||
# DepthCounter
|
||||
DEPTH_COUNTER_DISABLE=§7Depth Counter disabled
|
||||
DEPTH_COUNTER_ENABLE=§7Depth Counter enabled
|
||||
DEPTH_COUNTER_MESSAGE=§7Depth §8> §7
|
||||
DEPTH_COUNTER_COUNT={0}{1}§8×{2}{3}§8×{4}{5}
|
||||
DEPTH_COUNTER_HOVER=§7X§8×§7Y§8×§7Z
|
||||
|
||||
@@ -369,6 +369,8 @@ BLOCK_COUNTER_MESSAGE_SECOND=§7Schaden §8> §e{0} §7Blöcke §e{1} §7TNT
|
||||
BLOCK_COUNTER_ENABLE=§7BlockCounter angemacht
|
||||
BLOCK_COUNTER_DISABLE=§7BlockCounter ausgemacht
|
||||
# DepthCounter
|
||||
DEPTH_COUNTER_DISABLE=§7Depth Counter deaktiviert
|
||||
DEPTH_COUNTER_ENABLE=§7Depth Counter aktiviert
|
||||
DEPTH_COUNTER_MESSAGE=§7Tiefe §8> §7
|
||||
# TPSLimit
|
||||
TPSLIMIT_FREEZE_HELP=§8/§etpslimit 0 §8-§7 Friere TPS ein
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
package de.steamwar.bausystem.features.cannon.depth;
|
||||
|
||||
import de.steamwar.bausystem.BauSystem;
|
||||
import de.steamwar.bausystem.configplayer.Config;
|
||||
import de.steamwar.bausystem.region.Region;
|
||||
import de.steamwar.bausystem.region.RegionUtils;
|
||||
import de.steamwar.bausystem.region.utils.RegionExtensionType;
|
||||
@@ -65,7 +66,9 @@ public class Depth {
|
||||
dimensions.setZ(Math.abs(dimensions.getZ()));
|
||||
|
||||
RegionUtils.message(region, player -> {
|
||||
player.spigot().sendMessage(getMessage(player, dimensions.getBlockX() + 1, dimensions.getBlockY() + 1, dimensions.getBlockZ() + 1, tntCount));
|
||||
if (Config.getInstance().get(player).getPlainValueOrDefault("depth_message", true)) {
|
||||
player.spigot().sendMessage(getMessage(player, dimensions.getBlockX() + 1, dimensions.getBlockY() + 1, dimensions.getBlockZ() + 1, tntCount));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
+45
@@ -0,0 +1,45 @@
|
||||
/*
|
||||
* This file is a part of the SteamWar software.
|
||||
*
|
||||
* Copyright (C) 2020 SteamWar.de-Serverteam
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package de.steamwar.bausystem.features.cannon.depth;
|
||||
|
||||
import de.steamwar.bausystem.BauSystem;
|
||||
import de.steamwar.bausystem.configplayer.Config;
|
||||
import de.steamwar.command.SWCommand;
|
||||
import de.steamwar.linkage.Linked;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
@Linked
|
||||
public class DepthCommand extends SWCommand {
|
||||
|
||||
public DepthCommand() {
|
||||
super("depth");
|
||||
}
|
||||
|
||||
@Register
|
||||
public void toggle(Player player) {
|
||||
if (Config.getInstance().get(player).getPlainValueOrDefault("depth_message", true)) {
|
||||
Config.getInstance().get(player).put("depth_message", false);
|
||||
BauSystem.MESSAGE.send("DEPTH_COUNTER_DISABLE", player);
|
||||
} else {
|
||||
Config.getInstance().get(player).put("depth_message", true);
|
||||
BauSystem.MESSAGE.send("DEPTH_COUNTER_ENABLE", player);
|
||||
}
|
||||
}
|
||||
}
|
||||
+6
-2
@@ -160,6 +160,11 @@ public class ShieldPrinting implements Listener {
|
||||
|
||||
private void paste(Map<Material, BlockDataConfiguration<?>[]> stateConfiguration) {
|
||||
for (Map.Entry<Vector, BlockData> entry : shieldData.entrySet()) {
|
||||
BlockData copied = entry.getValue();
|
||||
if (copied.getMaterial().isAir()) {
|
||||
continue;
|
||||
}
|
||||
|
||||
Block block = entry.getKey().toLocation(WORLD).getBlock();
|
||||
if (entry.getValue().getMaterial() != block.getType()) {
|
||||
block.setBlockData(entry.getValue(), false);
|
||||
@@ -171,12 +176,11 @@ public class ShieldPrinting implements Listener {
|
||||
|
||||
BlockDataConfiguration[] stateConfigurations = stateConfiguration.get(entry.getValue().getMaterial());
|
||||
if (stateConfigurations == null) {
|
||||
block.setBlockData(entry.getValue(), false);
|
||||
continue;
|
||||
}
|
||||
|
||||
BlockData worldOriginal = block.getBlockData();
|
||||
BlockData copied = entry.getValue().clone();
|
||||
copied = copied.clone();
|
||||
for (BlockDataConfiguration blockDataConfiguration : stateConfigurations) {
|
||||
if (blockDataConfiguration == null) continue;
|
||||
blockDataConfiguration.apply(copied, worldOriginal);
|
||||
|
||||
+10
@@ -53,6 +53,16 @@ public class SimulatorMaterialGui extends SimulatorPageGui<Material> {
|
||||
this.back = back;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean shouldOpen() {
|
||||
if (player.getItemOnCursor().getType().isAir()) {
|
||||
return true;
|
||||
}
|
||||
change.accept(player.getItemOnCursor().getType());
|
||||
SimulatorWatcher.update(simulator);
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String baseTitle() {
|
||||
return "Material";
|
||||
|
||||
+6
@@ -46,6 +46,8 @@ public abstract class SimulatorBaseGui {
|
||||
}
|
||||
|
||||
public final void open() {
|
||||
if (!shouldOpen()) return;
|
||||
|
||||
String newTitle = title();
|
||||
String originalTitle = player.getOpenInventory().getTitle();
|
||||
|
||||
@@ -86,6 +88,10 @@ public abstract class SimulatorBaseGui {
|
||||
inventory.open();
|
||||
}
|
||||
|
||||
public boolean shouldOpen() {
|
||||
return true;
|
||||
}
|
||||
|
||||
private void setup() {
|
||||
for (int i = 0; i < 9; i++) {
|
||||
inventory.setItem(i, new SWItem(Material.GRAY_STAINED_GLASS_PANE, "§8", clickType -> {
|
||||
|
||||
@@ -176,15 +176,15 @@ UI_WIN={0}Victory {1}
|
||||
UI_DRAW=§7Draw
|
||||
|
||||
BAR_PRE_LEADER=§7Waiting for team leader
|
||||
BAR_PRE_SCHEM={1} §7Schematic selection {0} {2}
|
||||
BAR_PREPARE={1} {3} §7Preparation {0} {4} {2}
|
||||
BAR_PRE_RUNNING={1} {3} §7Start of fight in {0} {4} {2}
|
||||
BAR_RUNNING0={1} {3} {0} {4} {2}
|
||||
BAR_RUNNING1={1} {3} {5} {0} {6} {4} {2}
|
||||
BAR_RUNNING2={1} {3} {5} {7} {0} {6} {8} {4} {2}
|
||||
BAR_RUNNING3={1} {3} {5} {7} {9} {0} {6} {8} {10} {4} {2}
|
||||
BAR_TIE={1} §7Draw {0} {2}
|
||||
BAR_WIN={1} §7Victory {3} {0} {2}
|
||||
BAR_PRE_SCHEM = {1} §7Schematic selection {0} {2}
|
||||
BAR_PREPARE = {1} {3} §7Preparation {0} {4} {2}
|
||||
BAR_PRE_RUNNING = {1} {3} §7Start of fight in {0} {4} {2}
|
||||
BAR_RUNNING0 = {1} {3} {0} {4} {2}
|
||||
BAR_RUNNING1 = {1} {3} {5} {0} {6} {4} {2}
|
||||
BAR_RUNNING2 = {1} {3} {5} {7} {0} {6} {8} {4} {2}
|
||||
BAR_RUNNING3 = {1} {3} {5} {7} {9} {0} {6} {8} {10} {4} {2}
|
||||
BAR_TIE = {1} §7Draw {0} {2}
|
||||
BAR_WIN = {1} §7Victory {3} {0} {2}
|
||||
BAR_POINTS={0} §8Points
|
||||
BAR_POINTS_OF={0}§8/§7{1} §8Points
|
||||
BAR_PERCENT={0}§8%
|
||||
|
||||
@@ -161,11 +161,11 @@ UI_WIN={0}Sieg {1}
|
||||
UI_DRAW=§7Unentschieden
|
||||
|
||||
BAR_PRE_LEADER=§7Warten auf Teamleader
|
||||
BAR_PRE_SCHEM={1} §7Schemauswahl {0} {2}
|
||||
BAR_PREPARE={1} {3} §7Vorbereitung {0} {4} {2}
|
||||
BAR_PRE_RUNNING={1} {3} §7Kampfbeginn in {0} {4} {2}
|
||||
BAR_TIE={1} §7Unentschieden {0} {2}
|
||||
BAR_WIN={1} §7Sieg {3} {0} {2}
|
||||
BAR_PRE_SCHEM = {1} §7Schemauswahl {0} {2}
|
||||
BAR_PREPARE = {1} {3} §7Vorbereitung {0} {4} {2}
|
||||
BAR_PRE_RUNNING = {1} {3} §7Kampfbeginn in {0} {4} {2}
|
||||
BAR_TIE = {1} §7Unentschieden {0} {2}
|
||||
BAR_WIN = {1} §7Sieg {3} {0} {2}
|
||||
BAR_POINTS={0} §8Punkte
|
||||
BAR_POINTS_OF={0}§8/§7{1} §8Punkte
|
||||
BAR_PERCENT={0}§8%
|
||||
|
||||
@@ -185,7 +185,6 @@ public class MWTeam {
|
||||
public void leave(Player p) {
|
||||
if (!players.contains(p)) return;
|
||||
|
||||
players.remove(p);
|
||||
for (ItemStack stack : p.getInventory().getContents()) {
|
||||
if (stack == null) continue;
|
||||
if (stack.getType() == Material.AIR) continue;
|
||||
@@ -196,9 +195,11 @@ public class MWTeam {
|
||||
p.getInventory().clear();
|
||||
|
||||
p.setDisplayName("§7" + p.getName());
|
||||
sbteam.removePlayer(p);
|
||||
if (players.isEmpty() && MissileWars.getFightState() == FightState.FIGHTING)
|
||||
MissileWars.end(WinReasons.NO_ENEMY, enemy());
|
||||
|
||||
players.remove(p);
|
||||
sbteam.removePlayer(p);
|
||||
}
|
||||
|
||||
public void reset() {
|
||||
|
||||
@@ -213,10 +213,14 @@ public interface Chatter {
|
||||
}
|
||||
|
||||
static Chatter of(SteamwarUser user) {
|
||||
return of(user.getUUID());
|
||||
return of(user.getUUID(), false);
|
||||
}
|
||||
|
||||
static Chatter of(UUID uuid) {
|
||||
return of(uuid, false);
|
||||
}
|
||||
|
||||
static Chatter of(UUID uuid, boolean playerlessChatShown) {
|
||||
Player player = VelocityCore.getProxy().getPlayer(uuid).orElse(null);
|
||||
if(player != null)
|
||||
return Chatter.of(player);
|
||||
@@ -229,7 +233,7 @@ public interface Chatter {
|
||||
|
||||
@Override
|
||||
public boolean chatShown() {
|
||||
return false;
|
||||
return playerlessChatShown;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -110,7 +110,7 @@ public class ServerStarter {
|
||||
fightMap = eventFight.getMap();
|
||||
gameMode = eventFight.getSpielmodus();
|
||||
|
||||
String serverName = Team.get(eventFight.getTeamBlue()).getTeamKuerzel() + " vs " + Team.get(eventFight.getTeamRed()).getTeamKuerzel();
|
||||
String serverName = Team.get(eventFight.getTeamBlue()).getTeamKuerzel() + "_vs_" + Team.get(eventFight.getTeamRed()).getTeamKuerzel();
|
||||
serverNameProvider = port -> serverName;
|
||||
worldName = serverToWorldName(serverName + eventFight.getStartTime().toLocalDateTime().format(DateTimeFormatter.ISO_TIME));
|
||||
return this;
|
||||
|
||||
@@ -49,11 +49,15 @@ public class SendCommand extends SWCommand {
|
||||
@Register("to")
|
||||
public void sendCommand(Chatter sender, RegisteredServer toServer, Player... players) {
|
||||
String serverName = toServer.getServerInfo().getName();
|
||||
int count = 0;
|
||||
for (Player player : players) {
|
||||
player.createConnectionRequest(toServer).fireAndForget();
|
||||
Chatter.of(player).send(true, null, null, new Message("SEND_MESSAGE", sender.user().getUserName(), serverName));
|
||||
if (sender.user().hasPerm(UserPerm.ADMINISTRATION) || check(sender.user(), player.getCurrentServer().map(ServerConnection::getServer).orElse(null))) {
|
||||
player.createConnectionRequest(toServer).fireAndForget();
|
||||
Chatter.of(player).send(true, null, null, new Message("SEND_MESSAGE", sender.user().getUserName(), serverName));
|
||||
count++;
|
||||
}
|
||||
}
|
||||
sender.send(true, null, null, new Message("SEND_MESSAGE_SELF", players.length, serverName));
|
||||
sender.send(true, null, null, new Message("SEND_MESSAGE_SELF", count, serverName));
|
||||
}
|
||||
|
||||
private boolean check(SteamwarUser user, RegisteredServer registeredServer) {
|
||||
|
||||
@@ -71,7 +71,7 @@ public class WhoisCommand extends SWCommand {
|
||||
if (!sender.user().hasPerm(UserPerm.TEAM))
|
||||
return;
|
||||
|
||||
if (sender.user().hasPerm(UserPerm.MODERATION)) {
|
||||
if (sender.user().hasPerm(UserPerm.MODERATION) || sender.user().hasPerm(UserPerm.PREFIX_DEVELOPER)) {
|
||||
sender.system("WHOIS_ID", user.getId());
|
||||
sender.system("WHOIS_UUID", new Message("WHOIS_UUID_HOVER"), ClickEvent.copyToClipboard(user.getUUID().toString()), user.getUUID().toString());
|
||||
if (user.getDiscordId() != null)
|
||||
|
||||
@@ -47,6 +47,6 @@ public class DiscordChatRoom extends DiscordChannel {
|
||||
return;
|
||||
}
|
||||
|
||||
ChatListener.sendChat(Chatter.of(user), target.get(), format, null, event.getMessage().getContentDisplay().replace('§', '&').replace('\n', ' '));
|
||||
ChatListener.sendChat(Chatter.of(user.getUUID(), true), target.get(), format, null, event.getMessage().getContentDisplay().replace('§', '&').replace('\n', ' '));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user