mirror of https://github.com/lugamii/OtakuFFA.git
too lazy to write this
This commit is contained in:
parent
3e10a8cac9
commit
4d7ea1a388
|
@ -1,7 +1,7 @@
|
|||
package dev.lugami.otaku;
|
||||
|
||||
import dev.lugami.otaku.utils.CC;
|
||||
import lombok.AllArgsConstructor;
|
||||
import org.bukkit.ChatColor;
|
||||
|
||||
import java.text.MessageFormat;
|
||||
import java.util.ArrayList;
|
||||
|
@ -14,24 +14,28 @@ public enum Language {
|
|||
REKIT_COOLDOWN("COOLDOWN.REKIT"),
|
||||
COMBAT_COOLDOWN("COOLDOWN.COMBAT"),
|
||||
NO_PEARL_COOLDOWN("NO-COOLDOWN.PEARL"),
|
||||
NO_COMBAT_COOLDOWN("NO-COOLDOWN.COMBAT");
|
||||
NO_COMBAT_COOLDOWN("NO-COOLDOWN.COMBAT"),
|
||||
CANT_DROP_ITEM("ERROR.CANT-DROP-ITEM"),
|
||||
KIT_DOESNT_EXIST("ERROR.KIT-DOESNT-EXIST"),
|
||||
KIT_ALREADY_EXISTS("ERROR.KIT-ALREADY-EXISTS"),
|
||||
KIT_SPAWN_UNSET("ERROR.KIT-SPAWN-NOT-SET"),
|
||||
NOT_PLAYING("ERROR.NOT-PLAYING-FFA"),
|
||||
ALREADY_PLAYING("ERROR.ALREADY-PLAYING-FFA");
|
||||
|
||||
private String path;
|
||||
|
||||
public String format(Object... objects) {
|
||||
return new MessageFormat(ChatColor.translateAlternateColorCodes('&',
|
||||
Main.getInstance().getLangConfig().getString(path))).format(objects);
|
||||
return new MessageFormat(CC.translate(Main.getInstance().getLangConfig().getString(path))).format(objects);
|
||||
}
|
||||
|
||||
public List<String> formatLines(Object... objects) {
|
||||
List<String> lines = new ArrayList<>();
|
||||
|
||||
if (Main.getInstance().getLangConfig().get(path) instanceof String) {
|
||||
lines.add(new MessageFormat(ChatColor.translateAlternateColorCodes('&',
|
||||
Main.getInstance().getLangConfig().getString(path))).format(objects));
|
||||
lines.add(new MessageFormat(CC.translate(Main.getInstance().getLangConfig().getString(path))).format(objects));
|
||||
} else {
|
||||
for (String string : Main.getInstance().getLangConfig().getStringList(path)) {
|
||||
lines.add(new MessageFormat(ChatColor.translateAlternateColorCodes('&', string))
|
||||
lines.add(new MessageFormat(CC.translate(string))
|
||||
.format(objects));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -76,6 +76,7 @@ public class Main extends JavaPlugin {
|
|||
@Override
|
||||
public void onDisable() {
|
||||
for (Player player : getServer().getOnlinePlayers()) {
|
||||
Profile.getOrCreate(player).save();
|
||||
player.kickPlayer("Server restarting");
|
||||
}
|
||||
Kit.saveAll();
|
||||
|
|
|
@ -20,10 +20,10 @@ public class Board implements AssembleAdapter {
|
|||
|
||||
@Override
|
||||
public List<String> getLines(Player player) {
|
||||
List<String> strings = Lists.newArrayList();
|
||||
List<String> lines = Lists.newArrayList();
|
||||
Profile profile = Profile.getOrCreate(player);
|
||||
if (profile == null) {
|
||||
strings.addAll(CC.translate(Main.getInstance().getScoreboardConfig().getStringList("scoreboard.profile")));
|
||||
lines.addAll(CC.translate(Main.getInstance().getScoreboardConfig().getStringList("scoreboard.profile")));
|
||||
} else {
|
||||
if (!profile.getSettings().scoreboard()) {
|
||||
return null;
|
||||
|
@ -31,38 +31,50 @@ public class Board implements AssembleAdapter {
|
|||
switch (profile.getState()) {
|
||||
case LOBBY:
|
||||
for (String s : Main.getInstance().getScoreboardConfig().getStringList("scoreboard.lobby")) {
|
||||
if (s.equals("<combat>") && !Main.getInstance().getCombatManager().isInCombat(player)
|
||||
|| s.equals("<pearl>") && !Main.getInstance().getEnderpearlManager().isPearlCooldown(player)) continue;
|
||||
strings.add(providePlaceholders(s, player));
|
||||
lines.add(providePlaceholders(s, player));
|
||||
}
|
||||
break;
|
||||
case PLAYING:
|
||||
for (String s : Main.getInstance().getScoreboardConfig().getStringList("scoreboard.ffa")) {
|
||||
if (s.equals("<combat>") && !Main.getInstance().getCombatManager().isInCombat(player)
|
||||
|| s.equals("<pearl>") && !Main.getInstance().getEnderpearlManager().isPearlCooldown(player)) continue;
|
||||
strings.add(providePlaceholders(s, player));
|
||||
|| s.equals("<pearl>") && !Main.getInstance().getEnderpearlManager().isPearlCooldown(player))
|
||||
continue;
|
||||
if (s.equals("<combat>") && Main.getInstance().getCombatManager().isInCombat(player)) {
|
||||
lines.addAll(Main.getInstance().getScoreboardConfig().getStringList("scoreboard.combat-addition"));
|
||||
continue;
|
||||
}
|
||||
if (s.equals("<pearl>") && Main.getInstance().getEnderpearlManager().isPearlCooldown(player)) {
|
||||
if (Main.getInstance().getCombatManager().isInCombat(player)) {
|
||||
for (String z : Main.getInstance().getScoreboardConfig().getStringList("scoreboard.enderpearl-addition.combat")) {
|
||||
if (z.contains("<seconds>")) {
|
||||
z = z.replace("<seconds>", String.valueOf(Main.getInstance().getEnderpearlManager().getPearlCooldown(player)));
|
||||
}
|
||||
lines.add(z);
|
||||
}
|
||||
|
||||
} else {
|
||||
for (String z : Main.getInstance().getScoreboardConfig().getStringList("scoreboard.enderpearl-addition.no-combat")) {
|
||||
if (z.contains("<seconds>")) {
|
||||
z = z.replace("<seconds>", String.valueOf(Main.getInstance().getEnderpearlManager().getPearlCooldown(player)));
|
||||
}
|
||||
lines.add(z);
|
||||
}
|
||||
}
|
||||
continue;
|
||||
}
|
||||
lines.add(providePlaceholders(s, player));
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return strings;
|
||||
return lines;
|
||||
}
|
||||
|
||||
private String providePlaceholders(String s, Player player) {
|
||||
final String COMBAT_PLACEHOLDER = "<combat>";
|
||||
final String PEARL_PLACEHOLDER = "<pearl>";
|
||||
Profile profile = Profile.getOrCreate(player);
|
||||
if (profile == null) return null;
|
||||
|
||||
if (s.equals(COMBAT_PLACEHOLDER) && Main.getInstance().getCombatManager().isInCombat(player)) {
|
||||
String combatAddition = Main.getInstance().getScoreboardConfig().getString("scoreboard.combat-addition");
|
||||
String seconds = String.valueOf(Main.getInstance().getCombatManager().getCombatTime(player));
|
||||
s = s.replace(COMBAT_PLACEHOLDER, combatAddition.replace("<seconds>", seconds));
|
||||
} else if (s.equals(PEARL_PLACEHOLDER) && Main.getInstance().getEnderpearlManager().isPearlCooldown(player)) {
|
||||
String pearlAddition = Main.getInstance().getScoreboardConfig().getString("scoreboard.enderpearl-addition");
|
||||
String seconds = String.valueOf(Main.getInstance().getEnderpearlManager().getPearlCooldown(player));
|
||||
s = s.replace(PEARL_PLACEHOLDER, pearlAddition.replace("<seconds>", seconds));
|
||||
} else if (profile.getState() == ProfileState.PLAYING && profile.getFFA() != null) {
|
||||
if (profile.getState() == ProfileState.PLAYING && profile.getFFA() != null) {
|
||||
s = s.replace("<kills>", String.valueOf(profile.getKitData().get(profile.getFFA()).kills()))
|
||||
.replace("<deaths>", String.valueOf(profile.getKitData().get(profile.getFFA()).deaths()))
|
||||
.replace("<killstreak>", String.valueOf(profile.getKitData().get(profile.getFFA()).killstreak()));
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package dev.lugami.otaku.commands;
|
||||
|
||||
import com.qrakn.honcho.command.CommandMeta;
|
||||
import dev.lugami.otaku.Main;
|
||||
import dev.lugami.otaku.utils.CC;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
|
@ -8,11 +9,16 @@ import org.bukkit.entity.Player;
|
|||
public class FFACommand {
|
||||
|
||||
public void execute(Player player) {
|
||||
player.sendMessage(CC.CHAT_BAR);
|
||||
player.sendMessage(CC.translate("&b/ffa join &7<kit>"));
|
||||
player.sendMessage(CC.translate("&b/ffa leave"));
|
||||
if (player.hasPermission("otaku.admin")) player.sendMessage(CC.translate("&b/ffa setspawn"));
|
||||
player.sendMessage(CC.CHAT_BAR);
|
||||
for (String s : Main.getInstance().getLangConfig().getStringList("COMMANDS.FFA.LINES")) {
|
||||
if (s.contains("<admin>")) {
|
||||
for (String z : Main.getInstance().getLangConfig().getStringList("COMMANDS.FFA.ADMIN-ADDITION")) {
|
||||
player.sendMessage(CC.translate(z));
|
||||
}
|
||||
continue;
|
||||
}
|
||||
player.sendMessage(CC.translate(s));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -2,6 +2,7 @@ package dev.lugami.otaku.commands;
|
|||
|
||||
import com.qrakn.honcho.command.CPL;
|
||||
import com.qrakn.honcho.command.CommandMeta;
|
||||
import dev.lugami.otaku.Language;
|
||||
import dev.lugami.otaku.events.FFAJoinEvent;
|
||||
import dev.lugami.otaku.kit.Kit;
|
||||
import dev.lugami.otaku.profile.Profile;
|
||||
|
@ -21,7 +22,7 @@ public class FFAJoinCommand {
|
|||
FFAJoinEvent event = new FFAJoinEvent(player, Kit.getByName(kit));
|
||||
event.call();
|
||||
} else {
|
||||
player.sendMessage(CC.RED + "You're already on the FFA.");
|
||||
player.sendMessage(Language.ALREADY_PLAYING.format());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
package dev.lugami.otaku.commands;
|
||||
|
||||
import com.qrakn.honcho.command.CommandMeta;
|
||||
import dev.lugami.otaku.Language;
|
||||
import dev.lugami.otaku.events.FFAReKitEvent;
|
||||
import dev.lugami.otaku.profile.Profile;
|
||||
import dev.lugami.otaku.profile.data.ProfileState;
|
||||
import dev.lugami.otaku.utils.CC;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
@CommandMeta(label = "rekit")
|
||||
|
@ -13,7 +13,7 @@ public class ReKitCommand {
|
|||
public void execute(Player player) {
|
||||
Profile profile = Profile.getOrCreate(player);
|
||||
if (profile.getState() != ProfileState.PLAYING || profile.getFFA() == null) {
|
||||
player.sendMessage(CC.RED + "You're not playing on the FFA");
|
||||
player.sendMessage(Language.NOT_PLAYING.format());
|
||||
return;
|
||||
}
|
||||
(new FFAReKitEvent(player, profile.getFFA(), false)).call();
|
||||
|
|
|
@ -2,6 +2,7 @@ package dev.lugami.otaku.commands.kit;
|
|||
|
||||
import com.qrakn.honcho.command.CPL;
|
||||
import com.qrakn.honcho.command.CommandMeta;
|
||||
import dev.lugami.otaku.Language;
|
||||
import dev.lugami.otaku.kit.Kit;
|
||||
import dev.lugami.otaku.utils.CC;
|
||||
import org.bukkit.entity.Player;
|
||||
|
@ -11,7 +12,7 @@ public class KitCreateCommand {
|
|||
|
||||
public void execute(Player player, @CPL("name") String kitName) {
|
||||
if (Kit.getByName(kitName) != null) {
|
||||
player.sendMessage(CC.RED + "A kit with that name already exists.");
|
||||
player.sendMessage(Language.KIT_ALREADY_EXISTS.format());
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package dev.lugami.otaku.commands.kit;
|
||||
|
||||
import com.qrakn.honcho.command.CommandMeta;
|
||||
import dev.lugami.otaku.Language;
|
||||
import dev.lugami.otaku.kit.Kit;
|
||||
import dev.lugami.otaku.utils.CC;
|
||||
import org.bukkit.entity.Player;
|
||||
|
@ -9,7 +10,7 @@ import org.bukkit.entity.Player;
|
|||
public class KitDeleteCommand {
|
||||
public void execute(Player player, Kit kit) {
|
||||
if (kit == null) {
|
||||
player.sendMessage(CC.RED + "A kit with that name does not exist.");
|
||||
player.sendMessage(Language.KIT_DOESNT_EXIST.format());
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -2,6 +2,7 @@ package dev.lugami.otaku.commands.kit;
|
|||
|
||||
import com.qrakn.honcho.command.CPL;
|
||||
import com.qrakn.honcho.command.CommandMeta;
|
||||
import dev.lugami.otaku.Language;
|
||||
import dev.lugami.otaku.kit.Kit;
|
||||
import dev.lugami.otaku.utils.CC;
|
||||
import org.bukkit.entity.Player;
|
||||
|
@ -11,7 +12,7 @@ public class KitGetLoadoutCommand {
|
|||
|
||||
public void execute(Player player, @CPL("kit") String kit) {
|
||||
if (Kit.getByName(kit) == null) {
|
||||
player.sendMessage(CC.RED + "A kit with that name does not exist.");
|
||||
player.sendMessage(Language.KIT_DOESNT_EXIST.format());
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -2,6 +2,7 @@ package dev.lugami.otaku.commands.kit;
|
|||
|
||||
import com.qrakn.honcho.command.CPL;
|
||||
import com.qrakn.honcho.command.CommandMeta;
|
||||
import dev.lugami.otaku.Language;
|
||||
import dev.lugami.otaku.kit.Kit;
|
||||
import dev.lugami.otaku.utils.CC;
|
||||
import org.bukkit.entity.Player;
|
||||
|
@ -11,7 +12,7 @@ public class KitSetIconCommand {
|
|||
|
||||
public void execute(Player player, @CPL("kit") String kit) {
|
||||
if (Kit.getByName(kit) == null) {
|
||||
player.sendMessage(CC.RED + "A kit with that name does not exist.");
|
||||
player.sendMessage(Language.KIT_DOESNT_EXIST.format());
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -2,6 +2,7 @@ package dev.lugami.otaku.commands.kit;
|
|||
|
||||
import com.qrakn.honcho.command.CPL;
|
||||
import com.qrakn.honcho.command.CommandMeta;
|
||||
import dev.lugami.otaku.Language;
|
||||
import dev.lugami.otaku.kit.Kit;
|
||||
import dev.lugami.otaku.utils.CC;
|
||||
import org.bukkit.entity.Player;
|
||||
|
@ -11,7 +12,7 @@ public class KitSetLoadoutCommand {
|
|||
|
||||
public void execute(Player player, @CPL("kit") String kit) {
|
||||
if (Kit.getByName(kit) == null) {
|
||||
player.sendMessage(CC.RED + "A kit with that name does not exist.");
|
||||
player.sendMessage(Language.KIT_DOESNT_EXIST.format());
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -2,20 +2,17 @@ package dev.lugami.otaku.commands.kit;
|
|||
|
||||
import com.qrakn.honcho.command.CPL;
|
||||
import com.qrakn.honcho.command.CommandMeta;
|
||||
import dev.lugami.otaku.Language;
|
||||
import dev.lugami.otaku.kit.Kit;
|
||||
import dev.lugami.otaku.utils.CC;
|
||||
import dev.lugami.otaku.utils.LocationUtil;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
@CommandMeta(label = "kit setlocation", permission = "otaku.kit.setlocation")
|
||||
public class KitSetLocationCommand {
|
||||
|
||||
public void execute(Player player, @CPL("kit") String kit) {
|
||||
if (Kit.getByName(kit) == null) {
|
||||
player.sendMessage(CC.RED + "A kit with that name does not exist.");
|
||||
return;
|
||||
player.sendMessage(Language.KIT_DOESNT_EXIST.format());
|
||||
} else {
|
||||
Kit.getByName(kit).setLocation(player.getLocation());
|
||||
player.sendMessage(CC.GREEN + "The location for " + kit + " has been set!");
|
||||
|
|
|
@ -80,11 +80,6 @@ public class Essentials {
|
|||
if (entity.getType() == EntityType.PLAYER) {
|
||||
continue;
|
||||
}
|
||||
if (entity instanceof Item) {
|
||||
removed++;
|
||||
entity.remove();
|
||||
continue;
|
||||
}
|
||||
|
||||
removed++;
|
||||
entity.remove();
|
||||
|
|
|
@ -1,12 +1,14 @@
|
|||
package dev.lugami.otaku.essentials;
|
||||
|
||||
import dev.lugami.otaku.Main;
|
||||
import dev.lugami.otaku.events.FFADeathEvent;
|
||||
import dev.lugami.otaku.hotbar.Hotbar;
|
||||
import dev.lugami.otaku.kit.Kit;
|
||||
import dev.lugami.otaku.profile.Profile;
|
||||
import dev.lugami.otaku.profile.data.ProfileState;
|
||||
import dev.lugami.otaku.utils.CC;
|
||||
import org.bukkit.GameMode;
|
||||
import org.bukkit.craftbukkit.v1_8_R3.entity.CraftPlayer;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
|
@ -17,12 +19,13 @@ import org.bukkit.event.player.PlayerDropItemEvent;
|
|||
import org.bukkit.event.player.PlayerItemDamageEvent;
|
||||
import org.bukkit.event.world.ChunkUnloadEvent;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
public class EssentialsListener implements Listener {
|
||||
|
||||
private static List<String> BLOCKED_COMMANDS = Arrays.asList(
|
||||
private static final List<String> BLOCKED_COMMANDS = Arrays.asList(
|
||||
"//calc",
|
||||
"//eval",
|
||||
"//solve",
|
||||
|
@ -45,14 +48,12 @@ public class EssentialsListener implements Listener {
|
|||
for (String blockedCommand : BLOCKED_COMMANDS) {
|
||||
for (String part : commandParts) {
|
||||
if (part.startsWith(blockedCommand)) {
|
||||
// Check for exact matches only
|
||||
if (part.equalsIgnoreCase(blockedCommand)) {
|
||||
if (blockedCommand.equalsIgnoreCase("/version") || blockedCommand.equalsIgnoreCase("/ver")) {
|
||||
if (event.getPlayer().isOp()) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
player.sendMessage(CC.RED + "You cannot perform this command.");
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
|
@ -106,8 +107,9 @@ public class EssentialsListener implements Listener {
|
|||
Kit kit = profile.getFFA();
|
||||
if (kit.getKitRules().isNoDamage()) {
|
||||
event.setDamage(0.0);
|
||||
} else if (kit.getKitRules().isNoFall() && event.getCause() == EntityDamageEvent.DamageCause.VOID) {
|
||||
event.setCancelled(true);
|
||||
} else if (event.getCause() == EntityDamageEvent.DamageCause.VOID) {
|
||||
CraftPlayer player = ((CraftPlayer) event.getEntity());
|
||||
new FFADeathEvent(player, new ArrayList<>()).call();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,22 @@
|
|||
package dev.lugami.otaku.events;
|
||||
|
||||
import dev.lugami.otaku.utils.BaseEvent;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
public class FFADeathEvent extends BaseEvent {
|
||||
|
||||
private final Player player;
|
||||
private final List<ItemStack> drops;
|
||||
|
||||
public FFADeathEvent(Player p, List<ItemStack> d) {
|
||||
player = p;
|
||||
drops = d;
|
||||
}
|
||||
}
|
|
@ -1,7 +1,6 @@
|
|||
package dev.lugami.otaku.hotbar;
|
||||
|
||||
import dev.lugami.otaku.Main;
|
||||
import dev.lugami.otaku.profile.Profile;
|
||||
import dev.lugami.otaku.utils.ItemBuilder;
|
||||
import dev.lugami.otaku.utils.PlayerUtil;
|
||||
import lombok.Getter;
|
||||
|
@ -39,8 +38,6 @@ public class Hotbar {
|
|||
}
|
||||
|
||||
public static boolean setup(Player player) {
|
||||
Profile profile = Profile.getOrCreate(player);
|
||||
|
||||
ItemStack[] itemStacks = new ItemStack[9];
|
||||
Arrays.fill(itemStacks, null);
|
||||
try {
|
||||
|
|
|
@ -5,11 +5,12 @@ import lombok.Setter;
|
|||
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
@Getter
|
||||
public enum HotbarItem {
|
||||
MAIN_MENU("menu");
|
||||
|
||||
@Getter private String command;
|
||||
@Getter @Setter private Pattern pattern;
|
||||
private final String command;
|
||||
@Setter private Pattern pattern;
|
||||
|
||||
HotbarItem(String command) {
|
||||
this.command = command;
|
||||
|
|
|
@ -50,7 +50,11 @@ public class Leaderboards {
|
|||
int kills = kitSection.getInt("kills");
|
||||
int killstreak = kitSection.getInt("killstreak");
|
||||
int deaths = kitSection.getInt("deaths");
|
||||
ProfileKitData data = new ProfileKitData(kills, killstreak, deaths);
|
||||
ProfileKitData data = new ProfileKitData();
|
||||
data.kills(kills);
|
||||
data.killstreak(killstreak);
|
||||
data.deaths(deaths);
|
||||
//data.KDR((float) kills / deaths);
|
||||
map.put(name, data);
|
||||
}
|
||||
}
|
||||
|
@ -81,8 +85,6 @@ public class Leaderboards {
|
|||
Integer kills = (kitDocument != null) ? kitDocument.getInteger("kills") : null;
|
||||
Integer killstreak = (kitDocument != null) ? kitDocument.getInteger("killstreak") : null;
|
||||
Integer deaths = (kitDocument != null) ? kitDocument.getInteger("deaths") : null;
|
||||
|
||||
// Use a default value if elo is null
|
||||
kills = (kills != null) ? kills : 0;
|
||||
deaths = (deaths != null) ? deaths : 0;
|
||||
killstreak = (killstreak != null) ? killstreak : 0;
|
||||
|
|
|
@ -53,7 +53,7 @@ public class LeaderboardsMenu extends Menu {
|
|||
}
|
||||
|
||||
@AllArgsConstructor
|
||||
private class KitStatsButton extends Button {
|
||||
private static class KitStatsButton extends Button {
|
||||
|
||||
private final Kit kit;
|
||||
|
||||
|
@ -63,7 +63,7 @@ public class LeaderboardsMenu extends Menu {
|
|||
lore.add(CC.MENU_BAR);
|
||||
int pos = 1;
|
||||
for (LeaderboardsEntry entry : Leaderboards.getLeaderboards().get(kit)) {
|
||||
lore.add("&b" +pos + ". " + entry.name() + "&7 - " + entry.kills() + "/" + entry.killstreak() + "/" + entry.deaths());
|
||||
lore.add("&b" + pos + ". " + entry.name() + "&7 - " + entry.kills() + "/" + entry.killstreak() + "/" + entry.deaths());
|
||||
pos++;
|
||||
}
|
||||
lore.add(CC.MENU_BAR);
|
||||
|
|
|
@ -2,6 +2,7 @@ package dev.lugami.otaku.listener;
|
|||
|
||||
import dev.lugami.otaku.Language;
|
||||
import dev.lugami.otaku.Main;
|
||||
import dev.lugami.otaku.events.FFADeathEvent;
|
||||
import dev.lugami.otaku.events.FFAJoinEvent;
|
||||
import dev.lugami.otaku.events.FFAQuitEvent;
|
||||
import dev.lugami.otaku.events.FFAReKitEvent;
|
||||
|
@ -21,7 +22,6 @@ import org.bukkit.event.EventHandler;
|
|||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.block.Action;
|
||||
import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
||||
import org.bukkit.event.entity.EntityDamageEvent;
|
||||
import org.bukkit.event.entity.PlayerDeathEvent;
|
||||
import org.bukkit.event.player.PlayerInteractEvent;
|
||||
|
@ -38,7 +38,7 @@ public class FFAListener implements Listener {
|
|||
setupFFA(player, event.getKit());
|
||||
Profile.getOrCreate(player).setState(ProfileState.PLAYING);
|
||||
} else {
|
||||
player.sendMessage(CC.RED + "The spawn location for this kit is not set!");
|
||||
player.sendMessage(Language.KIT_SPAWN_UNSET.format());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -117,16 +117,19 @@ public class FFAListener implements Listener {
|
|||
@EventHandler
|
||||
public void death(PlayerDeathEvent event) {
|
||||
event.setDeathMessage(null);
|
||||
Player player = event.getEntity();
|
||||
new FFADeathEvent(event.getEntity(), event.getDrops()).call();
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void handleDeath(FFADeathEvent event) {
|
||||
Player player = event.getPlayer();
|
||||
player.spigot().respawn();
|
||||
Profile profile = Profile.getOrCreate(player);
|
||||
Player killer = PlayerUtil.getLastAttacker(player);
|
||||
ItemStack[] contents = event.getDrops().toArray(new ItemStack[0]);
|
||||
ItemStack[] killerContents = killer != null ? killer.getInventory().getContents() : null;
|
||||
if (profile.getState() == ProfileState.PLAYING && event.getEntity() != null) {
|
||||
if (profile.getState() == ProfileState.PLAYING && event.getPlayer() != null) {
|
||||
for (Player player1 : FFACache.getFFAList().get(profile.getFFA())) {
|
||||
LightningUtil.spawnLightning(player1, player.getLocation());
|
||||
player1.sendMessage(CC.translate("&a" + player.getName() + " [" + PlayerUtil.getRemainingPotions(contents) + "] &7died" + (killer != null ? " to &c" + killer.getName() + " [" + PlayerUtil.getRemainingPotions(killerContents) + "]&7." : "&7.")));
|
||||
player1.sendMessage(CC.translate("&a" + player.getName() + " &7died" + (killer != null ? " to &c" + killer.getName() + "&7." : "&7.")));
|
||||
}
|
||||
PlayerUtil.reset(player);
|
||||
if (player.isDead()) {
|
||||
|
@ -154,6 +157,7 @@ public class FFAListener implements Listener {
|
|||
@Override
|
||||
public void run() {
|
||||
if (setupFFA(player, profile.getFFA())) {
|
||||
// Ignored. I don't even know why this is an boolean but okay :skull:
|
||||
} else this.run();
|
||||
if (killer != null && Profile.getOrCreate(killer).getSettings().autoRekit()) {
|
||||
(new FFAReKitEvent(killer, profile.getFFA(), true)).call();
|
||||
|
@ -202,18 +206,14 @@ public class FFAListener implements Listener {
|
|||
@EventHandler
|
||||
public void onDamage(EntityDamageEvent event) {
|
||||
if (event.getEntity() instanceof Player) {
|
||||
if (Profile.getOrCreate((Player) event.getEntity()).getFFA().getKitRules().isNoDamage()) {
|
||||
event.setDamage(0.0);
|
||||
return;
|
||||
}
|
||||
if (event.getCause() == EntityDamageEvent.DamageCause.FALL) {
|
||||
if (Profile.getOrCreate((Player) event.getEntity()).getState() == ProfileState.PLAYING) event.setCancelled(Profile.getOrCreate((Player) event.getEntity()).getFFA().getKitRules().isNoFall());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onDamage2(EntityDamageByEntityEvent event) {
|
||||
if (event.getEntity() instanceof Player) {
|
||||
if (Profile.getOrCreate((Player) event.getEntity()).getFFA().getKitRules().isNoDamage()) event.setDamage(0.0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package dev.lugami.otaku.listener;
|
||||
|
||||
import dev.lugami.otaku.Language;
|
||||
import dev.lugami.otaku.Main;
|
||||
import dev.lugami.otaku.hotbar.Hotbar;
|
||||
import dev.lugami.otaku.profile.Profile;
|
||||
|
@ -31,7 +32,7 @@ public class GeneralListeners implements Listener {
|
|||
|
||||
if (isSword(droppedItem.getType()) && profile.getSettings().dropProtect()) {
|
||||
event.setCancelled(true);
|
||||
event.getPlayer().sendMessage(CC.RED + "You cannot drop this item.");
|
||||
event.getPlayer().sendMessage(CC.translate(Language.CANT_DROP_ITEM.format()));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -123,7 +124,7 @@ public class GeneralListeners implements Listener {
|
|||
|
||||
if (attacker != null) {
|
||||
PlayerUtil.setLastAttacker(victim, attacker);
|
||||
if (attacker instanceof Player && attacker != victim) {
|
||||
if (attacker != victim) {
|
||||
Main.getInstance().getCombatManager().setCombatTime(victim, 15);
|
||||
Main.getInstance().getCombatManager().setCombatTime(attacker, 15);
|
||||
Main.getInstance().getCombatManager().setInCombat(victim, true);
|
||||
|
|
|
@ -12,6 +12,7 @@ import dev.lugami.otaku.utils.CC;
|
|||
import dev.lugami.otaku.utils.Cooldown;
|
||||
import dev.lugami.otaku.utils.FFACache;
|
||||
import dev.lugami.otaku.utils.SaveMethodType;
|
||||
import dev.lugami.otaku.utils.config.ConfigUtil;
|
||||
import lombok.Data;
|
||||
import lombok.Getter;
|
||||
import org.bson.Document;
|
||||
|
@ -20,7 +21,6 @@ import org.bukkit.configuration.ConfigurationSection;
|
|||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.scheduler.BukkitRunnable;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.*;
|
||||
|
||||
@Data
|
||||
|
@ -136,6 +136,7 @@ public class Profile {
|
|||
profileKitData.kills(kitDocument.getInteger("kills"));
|
||||
profileKitData.deaths(kitDocument.getInteger("deaths"));
|
||||
profileKitData.killstreak(kitDocument.getInteger("killstreak"));
|
||||
//profileKitData.KDR((float) profileKitData.kills() / profileKitData.deaths());
|
||||
|
||||
kitData.put(kit, profileKitData);
|
||||
}
|
||||
|
@ -193,11 +194,7 @@ public class Profile {
|
|||
Main.getInstance().getProfileConfig().getConfiguration().set("settings." + getPlayer().getName() + ".scoreboard", settings.scoreboard());
|
||||
Main.getInstance().getProfileConfig().getConfiguration().set("settings." + getPlayer().getName() + ".autoRekit", settings.autoRekit());
|
||||
Main.getInstance().getProfileConfig().getConfiguration().set("settings." + getPlayer().getName() + ".dropProtect", settings.dropProtect());
|
||||
try {
|
||||
Main.getInstance().getProfileConfig().getConfiguration().save(Main.getInstance().getProfileConfig().getFile());
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
ConfigUtil.save(Main.getInstance().getProfileConfig());
|
||||
if (Main.getInstance().getSaveMethodType() == SaveMethodType.MONGO && collection == null) Bukkit.getLogger().warning("Profile#getCollection was null, so " + player.getName() + "'s profile was saved using the fallback flatfile method.");
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,12 +1,11 @@
|
|||
package dev.lugami.otaku.profile.data;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
@Data @Accessors(fluent = true)
|
||||
@AllArgsConstructor @NoArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class ProfileKitData {
|
||||
|
||||
private int kills;
|
||||
|
|
|
@ -7,7 +7,7 @@ import java.util.UUID;
|
|||
|
||||
@Getter
|
||||
public class PlayerEvent extends BaseEvent {
|
||||
private Player player;
|
||||
private final Player player;
|
||||
|
||||
public PlayerEvent(Player player) {
|
||||
this(player, false);
|
||||
|
@ -17,10 +17,6 @@ public class PlayerEvent extends BaseEvent {
|
|||
this.player = player;
|
||||
}
|
||||
|
||||
public Player getPlayer() {
|
||||
return player;
|
||||
}
|
||||
|
||||
public UUID getUniqueId() {
|
||||
return player.getUniqueId();
|
||||
}
|
||||
|
|
|
@ -6,3 +6,22 @@ COOLDOWN:
|
|||
NO-COOLDOWN:
|
||||
PEARL: "&aYour pearl cooldown expired!"
|
||||
COMBAT: "&aYou're no longer in combat!"
|
||||
|
||||
ERROR:
|
||||
CANT-DROP-ITEM: "&cYou cannot drop this item."
|
||||
KIT-DOESNT-EXIST: "&cA kit with that name does not exist."
|
||||
KIT-ALREADY-EXISTS: "&cA kit with that name already exists."
|
||||
KIT-SPAWN-NOT-SET: "&cThe spawn location for this kit is not set!"
|
||||
NOT-PLAYING-FFA: "&cYou're not playing on FFA."
|
||||
ALREADY-PLAYING-FFA: "&cYou're already on the FFA."
|
||||
|
||||
COMMANDS:
|
||||
FFA:
|
||||
LINES:
|
||||
- "&7&m------------------------------------------------"
|
||||
- "&b/ffa join &7<kit>"
|
||||
- "&b/ffa leave"
|
||||
- "<admin>"
|
||||
- "&7&m------------------------------------------------"
|
||||
ADMIN-ADDITION:
|
||||
- "&b/ffa setspawn"
|
|
@ -1,29 +1,37 @@
|
|||
scoreboard:
|
||||
global:
|
||||
title: "&b&lFFA"
|
||||
title: "&b&lAngolanos"
|
||||
lobby:
|
||||
- "&7&m---------------------"
|
||||
- "&bOnline: &f<online>"
|
||||
- "&bPlaying: &f<playing>"
|
||||
- "&fOnline: &b<online>"
|
||||
- "&fPlaying: &b<playing>"
|
||||
- ""
|
||||
- "&7&oilovefemboys.xyz"
|
||||
- "&7&oangolanos.fun"
|
||||
- "&7&m---------------------"
|
||||
ffa:
|
||||
- "&7&m---------------------"
|
||||
- "&bKills: &f<kills>"
|
||||
- "&bDeaths: &f<deaths>"
|
||||
- "&bKillstreak: &f<killstreak>"
|
||||
- "&fKills: &b<kills>"
|
||||
- "&fDeaths: &b<deaths>"
|
||||
- "&fKillstreak: &b<killstreak>"
|
||||
- "<combat>"
|
||||
- "<pearl>"
|
||||
- ""
|
||||
- "&7&oilovefemboys.xyz"
|
||||
- "&7&oangolanos.fun"
|
||||
- "&7&m---------------------"
|
||||
profile:
|
||||
- "&7&m---------------------"
|
||||
- "&cYour profile was not loaded."
|
||||
- "&cTry rejoining."
|
||||
- ""
|
||||
- "&7&oilovefemboys.xyz"
|
||||
- "&7&oangolanos.fun"
|
||||
- "&7&m---------------------"
|
||||
combat-addition: "&c&lCombat Tag: <seconds>s"
|
||||
enderpearl-addition: "&c&lEnderpearl: <seconds>s"
|
||||
combat-addition:
|
||||
- ""
|
||||
- "&fCombat: &7(<seconds>)"
|
||||
enderpearl-addition:
|
||||
# considering combat will be the priority
|
||||
no-combat:
|
||||
- ""
|
||||
- "&fEnderpearl: &7(<seconds>)"
|
||||
combat:
|
||||
- "&fEnderpearl: &7(<seconds>)"
|
Loading…
Reference in New Issue