Signed-off-by: Lixfel <agga-games@gmx.de>
Dieser Commit ist enthalten in:
Ursprung
436a1949e4
Commit
4f2d1cb41d
@ -84,17 +84,20 @@ public class FlatteningWrapper14 implements FlatteningWrapper.IFlatteningWrapper
|
||||
}
|
||||
|
||||
@Override
|
||||
public Material onBreak(Material type) {
|
||||
public ItemStack onBreak(Block block) {
|
||||
Material type = block.getType();
|
||||
switch(type){
|
||||
case REDSTONE_WIRE:
|
||||
return Material.REDSTONE;
|
||||
type = Material.REDSTONE;
|
||||
break;
|
||||
case PISTON_HEAD:
|
||||
return Material.PISTON;
|
||||
type = Material.PISTON;
|
||||
break;
|
||||
case ICE:
|
||||
return Material.AIR;
|
||||
default:
|
||||
return type;
|
||||
type = Material.AIR;
|
||||
break;
|
||||
}
|
||||
return new ItemStack(type);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -63,17 +63,8 @@ public class FlatteningWrapper8 implements FlatteningWrapper.IFlatteningWrapper
|
||||
}
|
||||
|
||||
@Override
|
||||
public Material onBreak(Material type) {
|
||||
switch(type){
|
||||
case REDSTONE_WIRE:
|
||||
return Material.REDSTONE;
|
||||
case PISTON_EXTENSION:
|
||||
return Material.PISTON_BASE;
|
||||
case ICE:
|
||||
return Material.AIR;
|
||||
default:
|
||||
return type;
|
||||
}
|
||||
public ItemStack onBreak(Block block) {
|
||||
return block.getDrops().stream().findAny().orElse(new ItemStack(Material.AIR));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -49,6 +49,7 @@ public class FightSystem extends JavaPlugin {
|
||||
private static Player eventLeiter;
|
||||
|
||||
private Message message;
|
||||
private FightTeam lastWinner;
|
||||
|
||||
@Override
|
||||
public void onLoad() {
|
||||
@ -71,6 +72,7 @@ public class FightSystem extends JavaPlugin {
|
||||
new InFightDamage();
|
||||
new InFightInventory();
|
||||
new DenyWorldInteraction();
|
||||
new DenyInventoryMovement();
|
||||
new EventJoin();
|
||||
new Recording();
|
||||
//new ResourcePack();
|
||||
@ -81,6 +83,7 @@ public class FightSystem extends JavaPlugin {
|
||||
new TestJoin();
|
||||
new NormalJoin();
|
||||
new RankedJoin();
|
||||
new RunningWorldInteraction();
|
||||
new PersonalKitCreator();
|
||||
new ArrowStopper();
|
||||
new ArrowPickup();
|
||||
@ -186,6 +189,7 @@ public class FightSystem extends JavaPlugin {
|
||||
}
|
||||
|
||||
public static void setSpectateState(FightTeam winFightTeam, String winreason, String subtitle, Object... params) {
|
||||
plugin.lastWinner = winFightTeam;
|
||||
FightUI.printWin(winFightTeam, subtitle, params);
|
||||
|
||||
FightState.setFightState(FightState.SPECTATE);
|
||||
@ -233,6 +237,10 @@ public class FightSystem extends JavaPlugin {
|
||||
return plugin.message;
|
||||
}
|
||||
|
||||
public static FightTeam getLastWinner() {
|
||||
return plugin.lastWinner;
|
||||
}
|
||||
|
||||
public static void shutdown() {
|
||||
//Staggered kick to prevent lobby overloading
|
||||
if(Bukkit.getOnlinePlayers().isEmpty()){
|
||||
|
@ -193,6 +193,8 @@ 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_SPECTATE={1} §7Kampf vorbei {0} {2}
|
||||
BAR_TIE={1} §7Unentschieden {0} {2}
|
||||
BAR_WIN={1} §7Sieg {3} {0} {2}
|
||||
BAR_POINTS={0} §8Punkte
|
||||
BAR_PERCENT={0}§8%
|
||||
BAR_CANNONS={0} §8Kanonen
|
||||
|
@ -61,6 +61,7 @@ public class FightPlayer {
|
||||
if(enternCountdown != null){
|
||||
enternCountdown.disable();
|
||||
}
|
||||
enternCountdown = null;
|
||||
}
|
||||
|
||||
public Player getPlayer() {
|
||||
|
@ -66,6 +66,7 @@ public class FightTeam {
|
||||
private final Region schemRegion;
|
||||
private final Region extendRegion;
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
public FightTeam(String name, String prefix, Location spawn, Region schemRegion, Region extendRegion, boolean rotate, boolean blue, UUID designatedLeader) {
|
||||
this.spawn = spawn;
|
||||
this.schemRegion = schemRegion;
|
||||
@ -87,7 +88,6 @@ public class FightTeam {
|
||||
assert team != null;
|
||||
WorldOfColorWrapper.impl.setTeamColor(team, color);
|
||||
BountifulWrapper.impl.setNametagVisibility(team);
|
||||
//noinspection deprecation
|
||||
team.setNameTagVisibility(NameTagVisibility.HIDE_FOR_OTHER_TEAMS);
|
||||
team.setAllowFriendlyFire(false);
|
||||
}
|
||||
@ -167,10 +167,10 @@ public class FightTeam {
|
||||
|
||||
if(leaderBackup != null){
|
||||
playerSet.remove(leaderBackup.getPlayer());
|
||||
addMember(leaderBackup.getPlayer());
|
||||
addMember(leaderBackup.getPlayer(), true);
|
||||
}
|
||||
|
||||
playerSet.forEach(this::addMember);
|
||||
playerSet.forEach(p -> addMember(p, true));
|
||||
|
||||
if(ArenaMode.VariableTeams.contains(Config.mode) && isLeaderless()){
|
||||
for(Player player : Bukkit.getOnlinePlayers()){
|
||||
@ -195,6 +195,10 @@ public class FightTeam {
|
||||
}
|
||||
|
||||
public void addMember(Player player) {
|
||||
addMember(player, false);
|
||||
}
|
||||
|
||||
public void addMember(Player player, boolean silent) {
|
||||
final List<TechHider.ChunkPos> chunksToReload = TechHider.prepareChunkReload(player, false);
|
||||
FightPlayer fightPlayer = new FightPlayer(player, this);
|
||||
players.put(player, fightPlayer);
|
||||
@ -214,8 +218,8 @@ public class FightTeam {
|
||||
TechHider.reloadChunks(player, chunksToReload, false);
|
||||
|
||||
if(isLeaderless())
|
||||
setLeader(fightPlayer);
|
||||
else
|
||||
setLeader(fightPlayer, silent);
|
||||
else if(!silent)
|
||||
FightUI.addSubtitle("UI_PLAYER_JOINS", prefix, player.getName());
|
||||
}
|
||||
|
||||
@ -257,13 +261,13 @@ public class FightTeam {
|
||||
private void removeLeader() {
|
||||
this.leader = null;
|
||||
if(!players.isEmpty()) {
|
||||
setLeader(players.values().iterator().next());
|
||||
setLeader(players.values().iterator().next(), false);
|
||||
}else if(FightState.getFightState() != FightState.PRE_LEADER_SETUP && !ArenaMode.RankedEvent.contains(Config.mode)){
|
||||
Bukkit.getScheduler().runTaskLater(FightSystem.getPlugin(), FightSystem::setPreLeaderState, 1);
|
||||
}
|
||||
}
|
||||
|
||||
private void setLeader(FightPlayer leader) {
|
||||
private void setLeader(FightPlayer leader, boolean silent) {
|
||||
PersonalKitCreator.closeIfInKitCreator(leader.getPlayer());
|
||||
|
||||
this.leader = leader;
|
||||
@ -271,7 +275,8 @@ public class FightTeam {
|
||||
if(ready)
|
||||
setReady(false);
|
||||
|
||||
FightUI.addSubtitle("UI_LEADER_JOINS", prefix, leader.getPlayer().getName());
|
||||
if(!silent)
|
||||
FightUI.addSubtitle("UI_LEADER_JOINS", prefix, leader.getPlayer().getName());
|
||||
|
||||
Optional<Integer> maxRank = Schematic.getSchemsOfType(leader.getPlayer().getUniqueId(), Config.SchematicType).stream().map(Schematic::getRank).max(Integer::compare);
|
||||
if(Config.RanksEnabled)
|
||||
|
@ -0,0 +1,51 @@
|
||||
/*
|
||||
This file is a part of the SteamWar software.
|
||||
|
||||
Copyright (C) 2021 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.fightsystem.listener;
|
||||
|
||||
import de.steamwar.fightsystem.ArenaMode;
|
||||
import de.steamwar.fightsystem.states.FightState;
|
||||
import de.steamwar.fightsystem.states.StateDependentListener;
|
||||
import de.steamwar.fightsystem.utils.BountifulWrapper;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
||||
import org.bukkit.event.inventory.InventoryDragEvent;
|
||||
|
||||
public class DenyInventoryMovement implements Listener {
|
||||
|
||||
public DenyInventoryMovement() {
|
||||
new StateDependentListener(ArenaMode.AntiTest, FightState.AntiIngame, this);
|
||||
|
||||
Listener listener = BountifulWrapper.impl.newDenyHandSwapListener();
|
||||
new StateDependentListener(ArenaMode.AntiTest, FightState.AntiIngame, listener);
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onInventoryClick(InventoryClickEvent event) {
|
||||
if(!PersonalKitCreator.inKitCreator(event.getWhoClicked()))
|
||||
event.setCancelled(true);
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onInventoryDrag(InventoryDragEvent event) {
|
||||
if(!PersonalKitCreator.inKitCreator(event.getWhoClicked()))
|
||||
event.setCancelled(true);
|
||||
}
|
||||
}
|
@ -23,7 +23,6 @@ import de.steamwar.fightsystem.ArenaMode;
|
||||
import de.steamwar.fightsystem.FightSystem;
|
||||
import de.steamwar.fightsystem.states.FightState;
|
||||
import de.steamwar.fightsystem.states.StateDependentListener;
|
||||
import de.steamwar.fightsystem.utils.BountifulWrapper;
|
||||
import net.md_5.bungee.api.ChatMessageType;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
@ -32,8 +31,6 @@ import org.bukkit.event.block.BlockBreakEvent;
|
||||
import org.bukkit.event.block.BlockPlaceEvent;
|
||||
import org.bukkit.event.entity.EntityExplodeEvent;
|
||||
import org.bukkit.event.entity.ProjectileLaunchEvent;
|
||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
||||
import org.bukkit.event.inventory.InventoryDragEvent;
|
||||
import org.bukkit.event.player.PlayerKickEvent;
|
||||
|
||||
public class DenyWorldInteraction implements Listener {
|
||||
@ -41,10 +38,6 @@ public class DenyWorldInteraction implements Listener {
|
||||
public DenyWorldInteraction() {
|
||||
new StateDependentListener(ArenaMode.Test, FightState.PreRunning, this);
|
||||
new StateDependentListener(ArenaMode.AntiTest, FightState.AntiRunning, this);
|
||||
|
||||
Listener listener = BountifulWrapper.impl.newDenyHandSwapListener();
|
||||
new StateDependentListener(ArenaMode.Test, FightState.PreRunning, listener);
|
||||
new StateDependentListener(ArenaMode.AntiTest, FightState.AntiRunning, listener);
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
@ -72,18 +65,6 @@ public class DenyWorldInteraction implements Listener {
|
||||
e.setCancelled(true);
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onInventoryClick(InventoryClickEvent event) {
|
||||
if(!PersonalKitCreator.inKitCreator(event.getWhoClicked()))
|
||||
event.setCancelled(true);
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onInventoryDrag(InventoryDragEvent event) {
|
||||
if(!PersonalKitCreator.inKitCreator(event.getWhoClicked()))
|
||||
event.setCancelled(true);
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void handleProjectileLaunch(ProjectileLaunchEvent event) {
|
||||
event.setCancelled(true);
|
||||
|
@ -20,19 +20,12 @@
|
||||
package de.steamwar.fightsystem.listener;
|
||||
|
||||
import de.steamwar.fightsystem.ArenaMode;
|
||||
import de.steamwar.fightsystem.FightSystem;
|
||||
import de.steamwar.fightsystem.fight.Fight;
|
||||
import de.steamwar.fightsystem.fight.FightPlayer;
|
||||
import de.steamwar.fightsystem.states.FightState;
|
||||
import de.steamwar.fightsystem.states.StateDependentListener;
|
||||
import de.steamwar.fightsystem.utils.FlatteningWrapper;
|
||||
import net.md_5.bungee.api.ChatMessageType;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.block.BlockBreakEvent;
|
||||
import org.bukkit.event.block.BlockDispenseEvent;
|
||||
import org.bukkit.event.block.BlockPlaceEvent;
|
||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
||||
import org.bukkit.event.inventory.InventoryDragEvent;
|
||||
import org.bukkit.event.inventory.InventoryType;
|
||||
@ -42,7 +35,7 @@ import org.bukkit.inventory.ItemStack;
|
||||
public class InFightInventory implements Listener {
|
||||
|
||||
public InFightInventory() {
|
||||
new StateDependentListener(ArenaMode.AntiReplay, FightState.Running, this);
|
||||
new StateDependentListener(ArenaMode.AntiReplay, FightState.Ingame, this);
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
@ -79,44 +72,6 @@ public class InFightInventory implements Listener {
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onBlockBreak(BlockBreakEvent event) {
|
||||
Inventory inventory = event.getPlayer().getInventory();
|
||||
|
||||
Material type = FlatteningWrapper.impl.onBreak(event.getBlock().getType());
|
||||
ItemStack itemStack;
|
||||
|
||||
for (int i = 0; i <= 35; i++) { //35 is the last normal inventory slot
|
||||
itemStack = inventory.getItem(i);
|
||||
if (itemStack != null && itemStack.getType().equals(type) && itemStack.getAmount() != itemStack.getMaxStackSize()) {
|
||||
itemStack.setType(type);
|
||||
itemStack.setAmount(itemStack.getAmount() + 1);
|
||||
inventory.setItem(i, itemStack);
|
||||
event.getPlayer().updateInventory();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
for (int i = 0; i <= 35; i++) { //35 is the last normal inventory slot
|
||||
itemStack = inventory.getItem(i);
|
||||
if (itemStack == null || itemStack.getType().equals(Material.AIR)) {
|
||||
itemStack = new ItemStack(type, 1);
|
||||
inventory.setItem(i, itemStack);
|
||||
event.getPlayer().updateInventory();
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onBlockPlace(BlockPlaceEvent e) {
|
||||
FightPlayer fp = Fight.getFightPlayer(e.getPlayer());
|
||||
if(fp != null && !fp.getKit().isTnt() && e.getBlockPlaced().getType() == Material.TNT){
|
||||
FightSystem.getMessage().sendPrefixless("NO_TNT_PLACE", e.getPlayer(), ChatMessageType.ACTION_BAR);
|
||||
e.setCancelled(true);
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onBlockDispense(BlockDispenseEvent e) {
|
||||
if(e.getItem().getType() == Material.TNT)
|
||||
|
@ -0,0 +1,78 @@
|
||||
/*
|
||||
This file is a part of the SteamWar software.
|
||||
|
||||
Copyright (C) 2021 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.fightsystem.listener;
|
||||
|
||||
import de.steamwar.fightsystem.ArenaMode;
|
||||
import de.steamwar.fightsystem.FightSystem;
|
||||
import de.steamwar.fightsystem.fight.Fight;
|
||||
import de.steamwar.fightsystem.fight.FightPlayer;
|
||||
import de.steamwar.fightsystem.states.FightState;
|
||||
import de.steamwar.fightsystem.states.StateDependentListener;
|
||||
import de.steamwar.fightsystem.utils.FlatteningWrapper;
|
||||
import net.md_5.bungee.api.ChatMessageType;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.block.BlockBreakEvent;
|
||||
import org.bukkit.event.block.BlockPlaceEvent;
|
||||
import org.bukkit.inventory.Inventory;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
public class RunningWorldInteraction implements Listener {
|
||||
|
||||
public RunningWorldInteraction() {
|
||||
new StateDependentListener(ArenaMode.AntiReplay, FightState.Running, this);
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onBlockBreak(BlockBreakEvent event) {
|
||||
Inventory inventory = event.getPlayer().getInventory();
|
||||
|
||||
ItemStack stack = FlatteningWrapper.impl.onBreak(event.getBlock());
|
||||
|
||||
for (int i = 0; i <= 35; i++) { //35 is the last normal inventory slot
|
||||
ItemStack itemStack = inventory.getItem(i);
|
||||
if (itemStack != null && itemStack.isSimilar(stack) && itemStack.getAmount() != itemStack.getMaxStackSize()) {
|
||||
itemStack.setAmount(itemStack.getAmount() + 1);
|
||||
inventory.setItem(i, itemStack);
|
||||
event.getPlayer().updateInventory();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
for (int i = 0; i <= 35; i++) { //35 is the last normal inventory slot
|
||||
ItemStack itemStack = inventory.getItem(i);
|
||||
if (itemStack == null || itemStack.getType().equals(Material.AIR)) {
|
||||
inventory.setItem(i, stack);
|
||||
event.getPlayer().updateInventory();
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onBlockPlace(BlockPlaceEvent e) {
|
||||
FightPlayer fp = Fight.getFightPlayer(e.getPlayer());
|
||||
if(fp != null && !fp.getKit().isTnt() && e.getBlockPlaced().getType() == Material.TNT){
|
||||
FightSystem.getMessage().sendPrefixless("NO_TNT_PLACE", e.getPlayer(), ChatMessageType.ACTION_BAR);
|
||||
e.setCancelled(true);
|
||||
}
|
||||
}
|
||||
}
|
@ -38,13 +38,18 @@ public class FileSource extends PacketSource {
|
||||
return;
|
||||
}
|
||||
|
||||
InputStream input = de.steamwar.sql.Fight.getReplay(Config.ReplayID);
|
||||
de.steamwar.sql.Fight.getReplay(Config.ReplayID, input -> {
|
||||
try {
|
||||
Files.copy(
|
||||
input,
|
||||
FileRecorder.getFile().toPath(),
|
||||
StandardCopyOption.REPLACE_EXISTING);
|
||||
} catch (IOException e) {
|
||||
throw new SecurityException("Could not start replay", e);
|
||||
}
|
||||
});
|
||||
|
||||
try {
|
||||
Files.copy(
|
||||
input,
|
||||
FileRecorder.getFile().toPath(),
|
||||
StandardCopyOption.REPLACE_EXISTING);
|
||||
input.close();
|
||||
new FileSource(FileRecorder.getFile());
|
||||
} catch (IOException e) {
|
||||
throw new SecurityException("Could not start replay", e);
|
||||
|
@ -44,6 +44,7 @@ public enum FightState {
|
||||
public static final Set<FightState> Schem = Collections.unmodifiableSet(EnumSet.complementOf(EnumSet.of(PRE_LEADER_SETUP, PRE_SCHEM_SETUP)));
|
||||
public static final Set<FightState> Recording = Collections.unmodifiableSet(EnumSet.complementOf(EnumSet.of(PRE_LEADER_SETUP, PRE_SCHEM_SETUP, SPECTATE)));
|
||||
public static final Set<FightState> AntiRunning = Collections.unmodifiableSet(EnumSet.complementOf(EnumSet.of(RUNNING)));
|
||||
public static final Set<FightState> AntiIngame = Collections.unmodifiableSet(EnumSet.complementOf(EnumSet.of(PRE_RUNNING, RUNNING)));
|
||||
public static final Set<FightState> AntiSpectate = Collections.unmodifiableSet(EnumSet.complementOf(EnumSet.of(SPECTATE)));
|
||||
|
||||
private static final Map<IStateDependent, Boolean> stateDependentFeatures = new HashMap<>();
|
||||
|
@ -33,7 +33,7 @@ import de.steamwar.sql.Schematic;
|
||||
import de.steamwar.sql.SteamwarUser;
|
||||
import org.bukkit.Bukkit;
|
||||
|
||||
import java.nio.file.Files;
|
||||
import java.io.FileInputStream;
|
||||
import java.sql.Timestamp;
|
||||
import java.time.Instant;
|
||||
import java.util.logging.Level;
|
||||
@ -97,9 +97,9 @@ public class FightStatistics {
|
||||
for (FightPlayer fp : Fight.getRedTeam().getPlayers())
|
||||
savePlayerStats(fp, fightId);
|
||||
|
||||
setReplay(fightId, Files.readAllBytes(FileRecorder.getFile().toPath()));
|
||||
setReplay(fightId, new FileInputStream(FileRecorder.getFile()));
|
||||
|
||||
if(ArenaMode.Event.contains(Config.mode)){
|
||||
if(ArenaMode.Event.contains(Config.mode)) {
|
||||
FightSystem.getEventFight().setFight(fightId);
|
||||
}
|
||||
}catch(Exception e){
|
||||
|
@ -105,7 +105,12 @@ public class FightUI {
|
||||
break;
|
||||
case SPECTATE:
|
||||
default:
|
||||
generator = (l, r, lP, rP, lW, rW) -> new Message("BAR_SPECTATE", time, l.getColoredName(), r.getColoredName());
|
||||
generator = (l, r, lP, rP, lW, rW) -> {
|
||||
if(FightSystem.getLastWinner() == null)
|
||||
return new Message("BAR_TIE", time, l.getColoredName(), r.getColoredName());
|
||||
else
|
||||
return new Message("BAR_WIN", time, l.getColoredName(), r.getColoredName(), FightSystem.getLastWinner().getColoredName());
|
||||
};
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -21,7 +21,6 @@ package de.steamwar.fightsystem.utils;
|
||||
|
||||
import de.steamwar.fightsystem.VersionDependent;
|
||||
import org.bukkit.DyeColor;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.entity.EntityType;
|
||||
@ -43,7 +42,7 @@ public class FlatteningWrapper {
|
||||
boolean containsBlockMeta(ItemMeta meta);
|
||||
boolean hasAttributeModifier(ItemStack stack);
|
||||
|
||||
Material onBreak(Material type);
|
||||
ItemStack onBreak(Block type);
|
||||
|
||||
boolean doRecord(BlockPhysicsEvent e);
|
||||
|
||||
|
In neuem Issue referenzieren
Einen Benutzer sperren