further Componentization + language supp stub
+ fixes to tab complete and lang support stub
This commit is contained in:
1 parent
8f471a25d4
commit
d1c931cff0
10 files changed
+87
-74
No files matched your search
@@ -173,16 +173,22 @@ public class AdminCommandManager implements TabExecutor {
|
||||
}
|
||||
if (args.length == 3) {
|
||||
List<String> arguments = new ArrayList<>();
|
||||
arguments.add("&1");
|
||||
arguments.add("&2");
|
||||
arguments.add("&3");
|
||||
arguments.add("&4");
|
||||
arguments.add("&5");
|
||||
arguments.add("&6");
|
||||
arguments.add("&7");
|
||||
arguments.add("&8");
|
||||
arguments.add("&9");
|
||||
arguments.add("&0");
|
||||
arguments.add("black");
|
||||
arguments.add("dark_blue");
|
||||
arguments.add("dark_green");
|
||||
arguments.add("dark_aqua");
|
||||
arguments.add("dark_red");
|
||||
arguments.add("dark_purple");
|
||||
arguments.add("gold");
|
||||
arguments.add("gray");
|
||||
arguments.add("dark_gray");
|
||||
arguments.add("blue");
|
||||
arguments.add("green");
|
||||
arguments.add("aqua");
|
||||
arguments.add("red");
|
||||
arguments.add("light_purple");
|
||||
arguments.add("yellow");
|
||||
arguments.add("white");
|
||||
|
||||
return arguments;
|
||||
}
|
||||
@@ -265,7 +271,7 @@ public class AdminCommandManager implements TabExecutor {
|
||||
autoComplete.add("pause");
|
||||
return autoComplete;
|
||||
}
|
||||
if (args[1].equalsIgnoreCase("start")){
|
||||
if (args[1].equalsIgnoreCase("start") || args[1].equalsIgnoreCase("stop") ){
|
||||
if (args.length == 3) {
|
||||
List<String> autoComplete = new ArrayList<>();
|
||||
for (AbstractEvent event : globalEventManager.enabledByConfig) {
|
||||
|
||||
@@ -28,6 +28,8 @@ import net.kyori.adventure.text.Component;
|
||||
import net.kyori.adventure.text.format.NamedTextColor;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
public final class PureKitPvP extends JavaPlugin {
|
||||
|
||||
@Override
|
||||
@@ -76,6 +78,15 @@ public final class PureKitPvP extends JavaPlugin {
|
||||
EventData.get().options().copyDefaults(true);
|
||||
EventData.save();
|
||||
|
||||
File lang = new File(getDataFolder(), "lang");
|
||||
if(!lang.exists()) {
|
||||
lang.mkdirs();
|
||||
}
|
||||
//TODO Check what language is selected in config
|
||||
//Based on that load map from en_US.yml into a translation Map
|
||||
// Use this map everywhere to query text
|
||||
|
||||
|
||||
TabManager tabManager = new TabManager(this);
|
||||
tabManager.addHeader(Component.text("Hello there!").color(NamedTextColor.RED));
|
||||
tabManager.showTab();
|
||||
|
||||
+30
-28
@@ -34,6 +34,7 @@ import org.bukkit.potion.PotionEffect;
|
||||
import org.bukkit.potion.PotionEffectType;
|
||||
import org.bukkit.projectiles.ProjectileSource;
|
||||
|
||||
import java.text.DecimalFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
@@ -425,6 +426,7 @@ public class DeathHandler implements Listener {
|
||||
public void onPlayerCombatHit(EntityDamageByEntityEvent event){
|
||||
Player player = null;
|
||||
Player damager = null;
|
||||
boolean rangedCombat = true; // whether a chat message should be sent; if ranged; yes
|
||||
// HAND-TO-HAND COMBAT
|
||||
if (!(event.getEntity().getWorld().getName().equalsIgnoreCase(plugin.getConfig().getString("world")))){
|
||||
// If the entity that is damaged is in this world, the entire event should be in this world
|
||||
@@ -440,12 +442,12 @@ public class DeathHandler implements Listener {
|
||||
if (!(player.getWorld().getName().equalsIgnoreCase(plugin.getConfig().getString("world")))){
|
||||
return;
|
||||
}
|
||||
|
||||
rangedCombat = false;
|
||||
PerkFireHandler.fireCombatPerks(player, damager);
|
||||
PerkFireHandler.fireVampirePerk(event);
|
||||
|
||||
} else if ((event.getDamager() instanceof Arrow || event.getDamager() instanceof SpectralArrow) && event.getEntity() instanceof Player) {
|
||||
//This branch is a fuckin nightmare: too many hacked in exceptions because fucking spectral arrows and fucking skeletons
|
||||
//This branch is a fuckin nightmare: too many hacked in exceptions because spectral arrows and skeletons
|
||||
//Projectile combat
|
||||
|
||||
if(((AbstractArrow) event.getDamager()).getShooter() instanceof Player){
|
||||
@@ -460,13 +462,7 @@ public class DeathHandler implements Listener {
|
||||
|
||||
PerkFireHandler.fireRangedPerks(event, damager);
|
||||
|
||||
double damage = event.getDamage();
|
||||
double playerHP = player.getHealth() - damage;
|
||||
if (playerHP < 0) {
|
||||
playerHP = 0;
|
||||
}
|
||||
damager.sendMessage(ChatColor.translateAlternateColorCodes(
|
||||
'&', "&a" + player.getName() + " &cis on &a" + (int) playerHP + " &cHP."));
|
||||
|
||||
} else if(((AbstractArrow) event.getDamager()).getShooter() instanceof Monster){
|
||||
// Shooter is a skeleton probably
|
||||
player = (Player) event.getEntity();
|
||||
@@ -483,13 +479,7 @@ public class DeathHandler implements Listener {
|
||||
ThrownPotion potion = (ThrownPotion) event.getDamager();
|
||||
|
||||
damager = (Player) potion.getShooter(); //works
|
||||
double damage = event.getDamage();
|
||||
double playerHP = player.getHealth() - damage;
|
||||
if (playerHP < 0){
|
||||
playerHP = 0;
|
||||
}
|
||||
damager.sendMessage(ChatColor.translateAlternateColorCodes(
|
||||
'&', "&a" + player.getName() + " &cis on &a" + (int) playerHP + " &cHP."));
|
||||
|
||||
|
||||
} else if (event.getDamager() instanceof Trident && event.getEntity() instanceof Player){
|
||||
|
||||
@@ -498,13 +488,7 @@ public class DeathHandler implements Listener {
|
||||
Trident trident = (Trident) event.getDamager();
|
||||
|
||||
damager = (Player) trident.getShooter(); //works
|
||||
double damage = event.getDamage();
|
||||
double playerHP = player.getHealth() - damage;
|
||||
if (playerHP < 0){
|
||||
playerHP = 0;
|
||||
}
|
||||
damager.sendMessage(ChatColor.translateAlternateColorCodes(
|
||||
'&', "&a" + player.getName() + " &cis on &a" + (int) playerHP + " &cHP."));
|
||||
|
||||
|
||||
} else if (event.getDamager() instanceof Monster && event.getEntity() instanceof Player) {
|
||||
|
||||
@@ -515,20 +499,38 @@ public class DeathHandler implements Listener {
|
||||
} else if (event.getDamager() instanceof EnderPearl && event.getEntity() instanceof Player) {
|
||||
|
||||
PerkFireHandler.fireEnderpearlDamagePerks((Player) event.getEntity(), event);
|
||||
return;
|
||||
}
|
||||
else if (event.getDamager() instanceof Firework && event.getEntity() instanceof Player){
|
||||
} else if (event.getDamager() instanceof Firework && event.getEntity() instanceof Player){
|
||||
Firework fw = (Firework) event.getDamager();
|
||||
if (fw.getShooter() instanceof Player){
|
||||
player = (Player) event.getEntity();
|
||||
damager = (Player) fw.getShooter();
|
||||
} else {return;}
|
||||
}
|
||||
}
|
||||
else {
|
||||
//If we end up here idk what happened but nothing relevant (probably a zombie hitting a pig or something)
|
||||
|
||||
return;
|
||||
}
|
||||
// HP Message
|
||||
if (rangedCombat){
|
||||
double damage = event.getDamage();
|
||||
double playerHP = player.getHealth() - damage;
|
||||
if (playerHP < 0){
|
||||
playerHP = 0;
|
||||
}
|
||||
DecimalFormat decimalFormat = new DecimalFormat("#.#");
|
||||
String formattedDamage = decimalFormat.format(damage);
|
||||
String formattedHP = decimalFormat.format(playerHP);
|
||||
damager.sendMessage(
|
||||
Component.text(player.getName(), NamedTextColor.GREEN).append(
|
||||
Component.text(" is on ", NamedTextColor.RED).append(
|
||||
Component.text(formattedHP, NamedTextColor.GREEN).append(
|
||||
Component.text(" HP!", NamedTextColor.RED)
|
||||
))));
|
||||
damager.sendMessage(
|
||||
Component.text(" You dealt ", NamedTextColor.GRAY).append(
|
||||
Component.text(formattedDamage, NamedTextColor.GREEN).append(
|
||||
Component.text(" damage!", NamedTextColor.GRAY))));
|
||||
}
|
||||
|
||||
int damageAmount = (int) event.getDamage();
|
||||
|
||||
|
||||
+5
-2
@@ -3,6 +3,7 @@ package me.lifelessnerd.purekitpvp.cosmetics.cosmeticsCommand;
|
||||
import me.lifelessnerd.purekitpvp.kitCommand.GetKit;
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.kyori.adventure.text.TextComponent;
|
||||
import net.kyori.adventure.text.format.NamedTextColor;
|
||||
import net.kyori.adventure.text.format.TextColor;
|
||||
import net.kyori.adventure.text.format.TextDecoration;
|
||||
import org.bukkit.Bukkit;
|
||||
@@ -25,7 +26,7 @@ import java.util.List;
|
||||
public class CosmeticsCommand implements CommandExecutor {
|
||||
Plugin plugin;
|
||||
|
||||
public CosmeticsCommand(Plugin plugin) {
|
||||
public CosmeticsCommand(Plugin plugin) {
|
||||
this.plugin = plugin;
|
||||
}
|
||||
|
||||
@@ -38,7 +39,9 @@ public class CosmeticsCommand implements CommandExecutor {
|
||||
Player player = (Player) sender;
|
||||
|
||||
if (!(player.getWorld().getName().equalsIgnoreCase(plugin.getConfig().getString("world")))){
|
||||
player.sendMessage(ChatColor.RED + "You can only use this menu in " + ChatColor.GRAY + plugin.getConfig().getString("world"));
|
||||
player.sendMessage(
|
||||
Component.text("You can only use this menu in ", NamedTextColor.RED).append(
|
||||
Component.text(plugin.getConfig().getString("world"), NamedTextColor.GRAY)));
|
||||
return true;
|
||||
}
|
||||
//Create inventory GUI
|
||||
|
||||
@@ -62,6 +62,9 @@ public class CreateKit extends Subcommand {
|
||||
try {
|
||||
displayColor = NamedTextColor.NAMES.value(args[2]);
|
||||
// System.out.println(displayColor);
|
||||
if (displayColor == null){
|
||||
throw new NullPointerException();
|
||||
}
|
||||
} catch(Exception e) {
|
||||
player.sendMessage(Component.text("Color is not valid!", NamedTextColor.RED));
|
||||
return false;
|
||||
@@ -93,12 +96,6 @@ public class CreateKit extends Subcommand {
|
||||
killItem = "AIR";
|
||||
}
|
||||
|
||||
//Storing all contents
|
||||
ItemStack helmet = player.getInventory().getHelmet();
|
||||
ItemStack chestplate = player.getInventory().getChestplate();
|
||||
ItemStack leggings = player.getInventory().getLeggings();
|
||||
ItemStack boots = player.getInventory().getBoots();
|
||||
|
||||
ItemStack[] kitContents = player.getInventory().getContents();
|
||||
|
||||
//Create kit in config
|
||||
@@ -107,16 +104,12 @@ public class CreateKit extends Subcommand {
|
||||
KitConfig.get().set("kits." + kitName + ".displayname", displayColor.toString());
|
||||
KitConfig.get().set("kits." + kitName + ".guiitem", kitIcon);
|
||||
KitConfig.get().set("kits." + kitName + ".guilore", "");
|
||||
KitConfig.get().set("kits." + kitName + ".helmet", helmet);
|
||||
KitConfig.get().set("kits." + kitName + ".chestplate", chestplate);
|
||||
KitConfig.get().set("kits." + kitName + ".leggings", leggings);
|
||||
KitConfig.get().set("kits." + kitName + ".boots", boots);
|
||||
KitConfig.get().set("kits." + kitName + ".contents", kitContents);
|
||||
|
||||
//Killitem
|
||||
Material killItemMat = Material.getMaterial(killItem);
|
||||
ItemStack killItemStack = new ItemStack(killItemMat); // Forced by contains in MatList above
|
||||
KitConfig.get().addDefault("kits." + kitName + ".killitem", "GOLDEN_APPLE");
|
||||
// KitConfig.get().addDefault("kits." + kitName + ".killitem", "GOLDEN_APPLE"); //what does addDefault even do? not this at least
|
||||
KitConfig.get().set("kits." + kitName + ".killitem", killItemStack);
|
||||
|
||||
KitConfig.get().options().copyDefaults(true);
|
||||
|
||||
@@ -1,10 +1,8 @@
|
||||
package me.lifelessnerd.purekitpvp.globalevents;
|
||||
|
||||
import me.lifelessnerd.purekitpvp.Subcommand;
|
||||
import me.lifelessnerd.purekitpvp.globalevents.events.AbstractEvent;
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.kyori.adventure.text.format.NamedTextColor;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
|
||||
|
||||
@@ -75,7 +75,7 @@ public class GUIListener implements Listener {
|
||||
player.chat("/perks");
|
||||
|
||||
} else if (e.getRawSlot() == 48){ // Prev page button
|
||||
if (e.getCurrentItem().equals(new ItemStack(Material.AIR))){
|
||||
if (e.getCurrentItem() == null){
|
||||
return;
|
||||
}
|
||||
e.setCancelled(true);
|
||||
@@ -84,7 +84,7 @@ public class GUIListener implements Listener {
|
||||
player.chat("/kit " + prevPage);
|
||||
|
||||
} else if (e.getRawSlot() == 50){ // Next page button
|
||||
if (e.getCurrentItem().equals(new ItemStack(Material.AIR))){
|
||||
if (e.getCurrentItem() == null){
|
||||
return;
|
||||
}
|
||||
e.setCancelled(true);
|
||||
|
||||
@@ -3,6 +3,8 @@ package me.lifelessnerd.purekitpvp.kitCommand;
|
||||
import me.lifelessnerd.purekitpvp.files.KitConfig;
|
||||
import me.lifelessnerd.purekitpvp.files.KitStatsConfig;
|
||||
import me.lifelessnerd.purekitpvp.files.PlayerStatsConfig;
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.kyori.adventure.text.format.NamedTextColor;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.command.Command;
|
||||
@@ -53,22 +55,24 @@ public class GetKit implements TabExecutor, Listener {
|
||||
String kitNameArg = args[0].substring(0, 1).toUpperCase() + args[0].substring(1);
|
||||
|
||||
if (!(player.getWorld().getName().equalsIgnoreCase(plugin.getConfig().getString("world")))){
|
||||
player.sendMessage("You cannot use that command in this world!");
|
||||
player.sendMessage(
|
||||
Component.text("You can only use this menu in ", NamedTextColor.RED).append(
|
||||
Component.text(plugin.getConfig().getString("world"), NamedTextColor.GRAY)));
|
||||
return true;
|
||||
}
|
||||
|
||||
if (hasKit.contains(player.getName())){
|
||||
player.sendMessage(ChatColor.GRAY + "You already have a kit!");
|
||||
player.sendMessage(Component.text("You already have a kit!", NamedTextColor.RED));
|
||||
return true;
|
||||
}
|
||||
|
||||
if (args.length != 1) {
|
||||
player.sendMessage(ChatColor.RED + "Incorrect arguments!");
|
||||
player.sendMessage(Component.text("Incorrect arguments!", NamedTextColor.RED));
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!(KitConfig.get().isSet("kits." + kitNameArg))){
|
||||
player.sendMessage(ChatColor.GRAY + "That kit does not exist.");
|
||||
player.sendMessage(Component.text("That kit does not exist!", NamedTextColor.RED));
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -88,7 +92,7 @@ public class GetKit implements TabExecutor, Listener {
|
||||
FileConfiguration fileConfiguration = KitConfig.get();
|
||||
List<ItemStack> kitItems = (List<ItemStack>) fileConfiguration.get("kits." + kitNameArg + ".contents");
|
||||
|
||||
//Remove any potion effects that make PvP unfair
|
||||
//Remove any active potion effects that make PvP unfair
|
||||
for (PotionEffect effect : player.getActivePotionEffects())
|
||||
player.removePotionEffect(effect.getType());
|
||||
|
||||
@@ -98,18 +102,10 @@ public class GetKit implements TabExecutor, Listener {
|
||||
if (item == null) {
|
||||
item = new ItemStack(Material.AIR);
|
||||
}
|
||||
// This code is from PureKits, idk why it works (.setHelmet is called for every armor piece?)
|
||||
player.getInventory().setItem(index, item);
|
||||
ItemStack helmet = fileConfiguration.getItemStack("kits." + kitNameArg + ".helmet");
|
||||
player.getInventory().setHelmet(helmet);
|
||||
ItemStack chestplate = fileConfiguration.getItemStack("kits." + kitNameArg + ".helmet");
|
||||
player.getInventory().setHelmet(chestplate);
|
||||
ItemStack leggings = fileConfiguration.getItemStack("kits." + kitNameArg + ".helmet");
|
||||
player.getInventory().setHelmet(leggings);
|
||||
ItemStack boots = fileConfiguration.getItemStack("kits." + kitNameArg + ".helmet");
|
||||
player.getInventory().setHelmet(boots);
|
||||
}
|
||||
|
||||
|
||||
hasKit.add(player.getName());
|
||||
|
||||
//Add current kit to config
|
||||
|
||||
@@ -47,12 +47,14 @@ public class KitsGUI implements TabExecutor {
|
||||
}
|
||||
|
||||
if (!KitConfig.get().isSet("kits.")) {
|
||||
player.sendMessage(ChatColor.GRAY + "There aren't any kits yet!");
|
||||
player.sendMessage(Component.text("There are no kits!", NamedTextColor.RED));
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!(player.getWorld().getName().equalsIgnoreCase(plugin.getConfig().getString("world")))){
|
||||
player.sendMessage(ChatColor.RED + "You can only use this menu in " + ChatColor.GRAY + plugin.getConfig().getString("world"));
|
||||
player.sendMessage(
|
||||
Component.text("You can only use this menu in ", NamedTextColor.RED).append(
|
||||
Component.text(plugin.getConfig().getString("world"), NamedTextColor.GRAY)));
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -228,7 +230,6 @@ public class KitsGUI implements TabExecutor {
|
||||
itemMeta.setDisplayName(ChatColor.translateAlternateColorCodes('&', kitDisplayColor + key)); //For legacy kits
|
||||
} else {
|
||||
itemMeta.displayName(Component.text(key, NamedTextColor.NAMES.value(kitDisplayColor)));
|
||||
System.out.println(NamedTextColor.NAMES.value(kitDisplayColor));
|
||||
}
|
||||
itemStack.setItemMeta(itemMeta);
|
||||
|
||||
|
||||
+4
-1
@@ -8,6 +8,7 @@ import me.lifelessnerd.purekitpvp.utils.ComponentUtils;
|
||||
import me.lifelessnerd.purekitpvp.utils.MyStringUtils;
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.kyori.adventure.text.TextComponent;
|
||||
import net.kyori.adventure.text.format.NamedTextColor;
|
||||
import net.kyori.adventure.text.format.TextColor;
|
||||
import net.kyori.adventure.text.format.TextDecoration;
|
||||
import org.bukkit.Bukkit;
|
||||
@@ -46,7 +47,9 @@ public class PerkCommand implements CommandExecutor {
|
||||
Player player = (Player) sender;
|
||||
|
||||
if (!(player.getWorld().getName().equalsIgnoreCase(plugin.getConfig().getString("world")))){
|
||||
player.sendMessage(ChatColor.RED + "You can only use this menu in " + ChatColor.GRAY + plugin.getConfig().getString("world"));
|
||||
player.sendMessage(
|
||||
Component.text("You can only use this menu in ", NamedTextColor.RED).append(
|
||||
Component.text(plugin.getConfig().getString("world"), NamedTextColor.GRAY)));
|
||||
return true;
|
||||
}
|
||||
if (GetKit.hasKit.contains(player.getName())){
|
||||
|
||||
Reference in new issue
Block a user