diff --git a/pom.xml b/pom.xml
index 56b0b527..2e0b6e3d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -13,8 +13,8 @@
150+ Toggleable Tweaks & Features including Vanilla Tweaks as a plugin, and more!
- 14
- UTF-8
+ 21
+ 21
https://twitter.com/TeakIvyYT
@@ -22,13 +22,46 @@
TeaksTweaks - ${project.version}
+
+ net.md-5
+ specialsource-maven-plugin
+ 2.0.3
+
+
+ package
+
+ remap
+
+ remap-obf
+
+ org.spigotmc:minecraft-server:1.21-R0.1-SNAPSHOT:txt:maps-mojang
+ true
+ org.spigotmc:spigot:1.21-R0.1-SNAPSHOT:jar:remapped-mojang
+ true
+ remapped-obf
+
+
+
+ package
+
+ remap
+
+ remap-spigot
+
+ ${project.build.directory}/${project.artifactId}-${project.version}-remapped-obf.jar
+ org.spigotmc:minecraft-server:1.21-R0.1-SNAPSHOT:csrg:maps-spigot
+ org.spigotmc:spigot:1.21-R0.1-SNAPSHOT:jar:remapped-obf
+
+
+
+
org.apache.maven.plugins
maven-compiler-plugin
3.8.1
- 16
- 16
+ 21
+ 21
@@ -47,25 +80,25 @@
-
- org.apache.maven.plugins
- maven-compiler-plugin
- 3.8.1
-
- eclipse
- ${java.version}
- ${java.version}
-
-
-
-
-
- org.codehaus.plexus
- plexus-compiler-eclipse
- 2.8.8
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
org.apache.maven.plugins
maven-jar-plugin
@@ -108,16 +141,38 @@
- io.papermc.paper
- paper-api
+ org.spigotmc
+ spigot
+ remapped-mojang
1.21-R0.1-SNAPSHOT
provided
+
+
+
+
+
+
com.mojang
authlib
1.5.25
provided
+
+ net.kyori
+ adventure-text-minimessage
+ 4.17.0
+
+
+ net.kyori
+ adventure-platform-bukkit
+ 4.3.3
+
+
+ com.googlecode.json-simple
+ json-simple
+ 1.1.1
+
diff --git a/src/main/java/me/teakivy/teakstweaks/TeaksTweaks.java b/src/main/java/me/teakivy/teakstweaks/TeaksTweaks.java
index 40d32501..6a0bd6d0 100644
--- a/src/main/java/me/teakivy/teakstweaks/TeaksTweaks.java
+++ b/src/main/java/me/teakivy/teakstweaks/TeaksTweaks.java
@@ -9,6 +9,7 @@
import me.teakivy.teakstweaks.utils.metrics.Metrics;
import me.teakivy.teakstweaks.utils.update.UpdateChecker;
import me.teakivy.teakstweaks.utils.update.UpdateJoinAlert;
+import net.kyori.adventure.platform.bukkit.BukkitAudiences;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.minimessage.MiniMessage;
import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder;
@@ -25,14 +26,28 @@
public final class TeaksTweaks extends JavaPlugin implements Listener {
private final ArrayList activePacks = new ArrayList<>();
private final ArrayList activeCraftingTweaks = new ArrayList<>();
+ private BukkitAudiences adventure;
private Register register;
+
+ public BukkitAudiences adventure() {
+ if(this.adventure == null) {
+ throw new IllegalStateException("Tried to access Adventure when the plugin was disabled!");
+ }
+ return this.adventure;
+ }
+
+ public static BukkitAudiences getAdventure() {
+ return getInstance().adventure();
+ }
/**
* Called when the plugin is enabled
*/
@Override
public void onEnable() {
+ // Initialize an audiences instance for the plugin
+ this.adventure = BukkitAudiences.create(this);
// Credits
createCredits();
@@ -81,6 +96,10 @@ public void onEnable() {
*/
@Override
public void onDisable() {
+ if(this.adventure != null) {
+ this.adventure.close();
+ this.adventure = null;
+ }
// Plugin shutdown logic
Logger.info(Translatable.get("startup.plugin.shutting_down"));
}
diff --git a/src/main/java/me/teakivy/teakstweaks/commands/AltsCommand.java b/src/main/java/me/teakivy/teakstweaks/commands/AltsCommand.java
index d6ed8729..2d134257 100644
--- a/src/main/java/me/teakivy/teakstweaks/commands/AltsCommand.java
+++ b/src/main/java/me/teakivy/teakstweaks/commands/AltsCommand.java
@@ -25,7 +25,7 @@ public void playerCommand(PlayerCommandEvent event) {
String action = event.getArg(0);
if (event.hasArgs(2)) {
- secondary = Bukkit.getPlayerUniqueId(event.getArg(1));
+ secondary = getUUID(event.getArg(1));
if (secondary == null) {
sendError(ErrorType.PLAYER_DNE);
@@ -39,7 +39,7 @@ public void playerCommand(PlayerCommandEvent event) {
return;
}
- main = Bukkit.getPlayerUniqueId(event.getArg(2));
+ main = getUUID(event.getArg(2));
if (main == null) {
sendError(ErrorType.PLAYER_DNE);
@@ -159,4 +159,13 @@ public boolean canAddAlt(Player player) {
if (getPackConfig().getInt("max-alts") == -1) return true;
return SpectatorAlts.getAlts(player.getUniqueId()).size() < getPackConfig().getInt("max-alts");
}
+
+ private UUID getUUID(String name) {
+ for (OfflinePlayer p : Bukkit.getOfflinePlayers()) {
+ if (p.getName().equalsIgnoreCase(name)) {
+ return p.getUniqueId();
+ }
+ }
+ return null;
+ }
}
diff --git a/src/main/java/me/teakivy/teakstweaks/commands/TPACommand.java b/src/main/java/me/teakivy/teakstweaks/commands/TPACommand.java
index 22a1bab6..4ac6a318 100644
--- a/src/main/java/me/teakivy/teakstweaks/commands/TPACommand.java
+++ b/src/main/java/me/teakivy/teakstweaks/commands/TPACommand.java
@@ -3,6 +3,7 @@
import me.teakivy.teakstweaks.TeaksTweaks;
import me.teakivy.teakstweaks.packs.teleportation.back.Back;
import me.teakivy.teakstweaks.utils.ErrorType;
+import me.teakivy.teakstweaks.utils.MM;
import me.teakivy.teakstweaks.utils.command.*;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.minimessage.MiniMessage;
@@ -67,7 +68,7 @@ public void playerCommand(PlayerCommandEvent event) {
TPARequest req = new TPARequest(player, to);
requests.add(req);
- to.sendMessage(message);
+ MM.player(to).sendMessage(message);
sendMessage("request_sent", insert("player", to.getName()));
Bukkit.getScheduler().scheduleSyncDelayedTask(TeaksTweaks.getInstance(), () -> {
@@ -164,8 +165,8 @@ public void accept() {
accepted = true;
Back.backLoc.put(to.getUniqueId(), to.getLocation());
from.teleport(to.getLocation());
- to.sendMessage(getText("teleporting_to_you", insert("player", from.getName())));
- from.sendMessage(getText("teleporting", insert("player", to.getName())));
+ MM.player(to).sendMessage(getText("teleporting_to_you", insert("player", from.getName())));
+ MM.player(from).sendMessage(getText("teleporting", insert("player", to.getName())));
}
}
}
diff --git a/src/main/java/me/teakivy/teakstweaks/commands/TagGameCommand.java b/src/main/java/me/teakivy/teakstweaks/commands/TagGameCommand.java
index f6b2ce28..07fb48db 100644
--- a/src/main/java/me/teakivy/teakstweaks/commands/TagGameCommand.java
+++ b/src/main/java/me/teakivy/teakstweaks/commands/TagGameCommand.java
@@ -8,6 +8,7 @@
import net.kyori.adventure.text.format.NamedTextColor;
import net.kyori.adventure.text.format.TextDecoration;
import org.bukkit.Bukkit;
+import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
@@ -36,7 +37,7 @@ public void playerCommand(PlayerCommandEvent event) {
if (team == null) {
team = sb.registerNewTeam("TaggedTeam");
- team.color(NamedTextColor.RED);
+ team.setColor(ChatColor.RED);
}
team.addEntry(player.getName());
diff --git a/src/main/java/me/teakivy/teakstweaks/commands/TeaksTweaksCommand.java b/src/main/java/me/teakivy/teakstweaks/commands/TeaksTweaksCommand.java
index b1e28d68..21778ddf 100644
--- a/src/main/java/me/teakivy/teakstweaks/commands/TeaksTweaksCommand.java
+++ b/src/main/java/me/teakivy/teakstweaks/commands/TeaksTweaksCommand.java
@@ -12,11 +12,15 @@
public class TeaksTweaksCommand extends AbstractCommand {
public TeaksTweaksCommand() {
- super(CommandType.ALL, null, "teakstweaks", Arrays.asList("tweaks", "tt"), "teakstweakscommand", Arg.required("info", "version", "support", "update"));
+ super(CommandType.ALL, null, "teakstweaks", Arrays.asList("tweaks", "tt"), "teakstweakscommand", Arg.optional("info", "version", "support", "update"));
}
@Override
public void command(CommandEvent event) {
+ if (!event.hasArgs()) {
+ sendInfoMessage();
+ return;
+ }
switch (event.getArg(0)) {
case "info":
sendInfoMessage();
diff --git a/src/main/java/me/teakivy/teakstweaks/craftingtweaks/AbstractCraftingTweak.java b/src/main/java/me/teakivy/teakstweaks/craftingtweaks/AbstractCraftingTweak.java
index 5d830d97..3af9eeed 100644
--- a/src/main/java/me/teakivy/teakstweaks/craftingtweaks/AbstractCraftingTweak.java
+++ b/src/main/java/me/teakivy/teakstweaks/craftingtweaks/AbstractCraftingTweak.java
@@ -3,6 +3,7 @@
import me.teakivy.teakstweaks.TeaksTweaks;
import me.teakivy.teakstweaks.packs.PackType;
import me.teakivy.teakstweaks.utils.Logger;
+import me.teakivy.teakstweaks.utils.MM;
import me.teakivy.teakstweaks.utils.config.Config;
import me.teakivy.teakstweaks.utils.lang.Translatable;
import me.teakivy.teakstweaks.utils.metrics.CustomMetrics;
@@ -12,6 +13,7 @@
import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder;
import org.bukkit.Material;
import org.bukkit.inventory.ItemStack;
+import org.bukkit.inventory.meta.ItemMeta;
import java.util.ArrayList;
import java.util.List;
@@ -66,14 +68,14 @@ public void init() {
lore.add(PackType.CRAFTING_TWEAKS.getName());
- List components = new ArrayList<>();
+ List components = new ArrayList<>();
for (String l : lore) {
- components.add(MiniMessage.miniMessage().deserialize(l).decoration(TextDecoration.ITALIC, false));
+ components.add(MM.toString(MiniMessage.miniMessage().deserialize(l).decoration(TextDecoration.ITALIC, false)));
}
-
- item.lore(components);
-
- item.editMeta(meta -> meta.displayName(MiniMessage.miniMessage().deserialize(PackType.CRAFTING_TWEAKS.getColor() + name).decoration(TextDecoration.ITALIC, false)));
+ ItemMeta meta = item.getItemMeta();
+ meta.setLore(components);
+ meta.setDisplayName(MM.toString(MiniMessage.miniMessage().deserialize(PackType.CRAFTING_TWEAKS.getColor() + name).decoration(TextDecoration.ITALIC, false)));
+ item.setItemMeta(meta);
}
/**
diff --git a/src/main/java/me/teakivy/teakstweaks/packs/BasePack.java b/src/main/java/me/teakivy/teakstweaks/packs/BasePack.java
index 0ede2f72..5c4567bc 100644
--- a/src/main/java/me/teakivy/teakstweaks/packs/BasePack.java
+++ b/src/main/java/me/teakivy/teakstweaks/packs/BasePack.java
@@ -2,6 +2,7 @@
import me.teakivy.teakstweaks.TeaksTweaks;
import me.teakivy.teakstweaks.utils.Logger;
+import me.teakivy.teakstweaks.utils.MM;
import me.teakivy.teakstweaks.utils.config.Config;
import me.teakivy.teakstweaks.utils.lang.Translatable;
import me.teakivy.teakstweaks.utils.metrics.CustomMetrics;
@@ -17,6 +18,7 @@
import org.bukkit.event.HandlerList;
import org.bukkit.event.Listener;
import org.bukkit.inventory.ItemStack;
+import org.bukkit.inventory.meta.ItemMeta;
import org.intellij.lang.annotations.Subst;
import java.util.ArrayList;
@@ -76,13 +78,15 @@ public BasePack(String path, PackType packType, Material material) {
lore.add(packType.getColor() + packType.getName());
- List loreComponents = new ArrayList<>();
+ List loreComponents = new ArrayList<>();
for (String line : lore) {
- loreComponents.add(MiniMessage.miniMessage().deserialize("" + line).decoration(TextDecoration.ITALIC, false));
+ loreComponents.add(MM.toString(MiniMessage.miniMessage().deserialize("" + line).decoration(TextDecoration.ITALIC, false)));
}
- item.lore(loreComponents);
- item.editMeta(meta -> meta.displayName(MiniMessage.miniMessage().deserialize(packType.getColor() + name).decoration(TextDecoration.ITALIC, false)));
+ ItemMeta meta = item.getItemMeta();
+ meta.setLore(loreComponents);
+ meta.setDisplayName(MM.toString(MiniMessage.miniMessage().deserialize(packType.getColor() + name).decoration(TextDecoration.ITALIC, false)));
+ item.setItemMeta(meta);
CustomMetrics.addPackEnabled(name);
}
diff --git a/src/main/java/me/teakivy/teakstweaks/packs/experimental/confetticreepers/ConfettiCreeper.java b/src/main/java/me/teakivy/teakstweaks/packs/experimental/confetticreepers/ConfettiCreeper.java
index 726017fa..c9f3362d 100644
--- a/src/main/java/me/teakivy/teakstweaks/packs/experimental/confetticreepers/ConfettiCreeper.java
+++ b/src/main/java/me/teakivy/teakstweaks/packs/experimental/confetticreepers/ConfettiCreeper.java
@@ -54,7 +54,7 @@ public void onPrime(ExplosionPrimeEvent event) {
Firework fw = (Firework) entity.getWorld().spawnEntity(entity.getLocation(), EntityType.FIREWORK_ROCKET);
FireworkMeta fwMeta = fw.getFireworkMeta();
- fwMeta.displayName(Component.text("Confetti"));
+ fwMeta.setDisplayName("Confetti");
fwMeta.addEffect(fwEffect);
fw.setFireworkMeta(fwMeta);
fw.detonate();
diff --git a/src/main/java/me/teakivy/teakstweaks/packs/experimental/elevators/Elevator.java b/src/main/java/me/teakivy/teakstweaks/packs/experimental/elevators/Elevator.java
index a40a41d4..a634d7de 100644
--- a/src/main/java/me/teakivy/teakstweaks/packs/experimental/elevators/Elevator.java
+++ b/src/main/java/me/teakivy/teakstweaks/packs/experimental/elevators/Elevator.java
@@ -1,6 +1,5 @@
package me.teakivy.teakstweaks.packs.experimental.elevators;
-import com.destroystokyo.paper.event.player.PlayerJumpEvent;
import me.teakivy.teakstweaks.packs.BasePack;
import me.teakivy.teakstweaks.packs.PackType;
import org.bukkit.*;
@@ -12,6 +11,7 @@
import org.bukkit.event.EventHandler;
import org.bukkit.event.block.BlockBreakEvent;
import org.bukkit.event.player.PlayerDropItemEvent;
+import org.bukkit.event.player.PlayerMoveEvent;
import org.bukkit.event.player.PlayerToggleSneakEvent;
import org.bukkit.inventory.ItemStack;
import org.bukkit.scheduler.BukkitRunnable;
@@ -84,8 +84,9 @@ public void onSneak(PlayerToggleSneakEvent event) {
}
@EventHandler
- public void onJump(PlayerJumpEvent e) {
+ public void onJump(PlayerMoveEvent e) {
Player player = e.getPlayer();
+ if (e.getFrom().getY() < e.getTo().getY()) return;
Location loc = player.getLocation();
Block standingBlock = loc.add(0, -1, 0).getBlock();
if (!isElevator(standingBlock)) return;
diff --git a/src/main/java/me/teakivy/teakstweaks/packs/experimental/xpmanagement/XPManagement.java b/src/main/java/me/teakivy/teakstweaks/packs/experimental/xpmanagement/XPManagement.java
index dbf02945..9cbe369e 100644
--- a/src/main/java/me/teakivy/teakstweaks/packs/experimental/xpmanagement/XPManagement.java
+++ b/src/main/java/me/teakivy/teakstweaks/packs/experimental/xpmanagement/XPManagement.java
@@ -3,6 +3,7 @@
import me.teakivy.teakstweaks.packs.BasePack;
import me.teakivy.teakstweaks.packs.PackType;
import me.teakivy.teakstweaks.utils.Key;
+import me.teakivy.teakstweaks.utils.MM;
import me.teakivy.teakstweaks.utils.config.Config;
import net.kyori.adventure.text.Component;
import org.bukkit.Bukkit;
@@ -118,9 +119,9 @@ public void bottleXP(PlayerInteractEvent event) {
ItemMeta xpMeta = xpBottle.getItemMeta();
if (getConfig().getBoolean("display-amount")) {
- List lore = new ArrayList<>();
- lore.add(getText("bottle_contains", insert("amount", getConfig().getInt("take-xp-amount"))));
- xpMeta.lore(lore);
+ List lore = new ArrayList<>();
+ lore.add(MM.toString(getText("bottle_contains", insert("amount", getConfig().getInt("take-xp-amount")))));
+ xpMeta.setLore(lore);
}
PersistentDataContainer data = xpMeta.getPersistentDataContainer();
diff --git a/src/main/java/me/teakivy/teakstweaks/packs/hermitcraft/tag/Tag.java b/src/main/java/me/teakivy/teakstweaks/packs/hermitcraft/tag/Tag.java
index 4e50a046..6c7060cf 100644
--- a/src/main/java/me/teakivy/teakstweaks/packs/hermitcraft/tag/Tag.java
+++ b/src/main/java/me/teakivy/teakstweaks/packs/hermitcraft/tag/Tag.java
@@ -3,11 +3,13 @@
import me.teakivy.teakstweaks.packs.BasePack;
import me.teakivy.teakstweaks.packs.PackType;
import me.teakivy.teakstweaks.packs.survival.afkdisplay.AFK;
+import me.teakivy.teakstweaks.utils.MM;
import me.teakivy.teakstweaks.utils.lang.Translatable;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.NamedTextColor;
import net.kyori.adventure.text.format.TextDecoration;
import org.bukkit.Bukkit;
+import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
@@ -41,7 +43,7 @@ public void tagPlayer(EntityDamageByEntityEvent event) {
if (AFK.afk.get(player.getUniqueId())) {
if (!getConfig().getBoolean("allow-tagging-afk")) {
- damager.sendMessage(getText("error.cant_tag_afk"));
+ MM.player(damager).sendMessage(getText("error.cant_tag_afk"));
event.setCancelled(true);
return;
}
@@ -55,7 +57,7 @@ public void tagPlayer(EntityDamageByEntityEvent event) {
Scoreboard sb = Bukkit.getScoreboardManager().getMainScoreboard();
if (sb.getTeam("TaggedTeam") == null) {
Team taggedTeam = sb.registerNewTeam("TaggedTeam");
- taggedTeam.color(NamedTextColor.RED);
+ taggedTeam.setColor(ChatColor.RED);
}
Team taggedTeam = sb.getTeam("TaggedTeam");
taggedTeam.removeEntry(damager.getName());
@@ -76,7 +78,7 @@ public void tagPlayer(EntityDamageByEntityEvent event) {
}
if (getConfig().getBoolean("display-when-tagged")) {
for (Player onlinePlayer : Bukkit.getOnlinePlayers()) {
- onlinePlayer.sendMessage(getText("tagged_message",
+ MM.player(onlinePlayer).sendMessage(getText("tagged_message",
insert("tagged_name", player.getName()),
insert("tagger_name", damager.getName())));
}
@@ -105,7 +107,7 @@ public void onPickup(EntityPickupItemEvent event) {
@EventHandler
public void onDeath(PlayerDeathEvent event) {
- if (!event.getPlayer().getScoreboardTags().contains("tag_it")) return;
+ if (!event.getEntity().getScoreboardTags().contains("tag_it")) return;
event.getDrops().remove(getTagItem());
}
@@ -132,7 +134,7 @@ private static Component getTagItemName() {
public static ItemStack getTagItem() {
ItemStack tag = new ItemStack(Material.NAME_TAG);
ItemMeta tagMeta = tag.getItemMeta();
- tagMeta.displayName(getTagItemName());
+ tagMeta.setDisplayName(MM.toString(getTagItemName()));
tagMeta.setUnbreakable(true);
tag.setItemMeta(tagMeta);
diff --git a/src/main/java/me/teakivy/teakstweaks/packs/hermitcraft/thundershrine/Shrine.java b/src/main/java/me/teakivy/teakstweaks/packs/hermitcraft/thundershrine/Shrine.java
index 91fbba5e..38556b3f 100644
--- a/src/main/java/me/teakivy/teakstweaks/packs/hermitcraft/thundershrine/Shrine.java
+++ b/src/main/java/me/teakivy/teakstweaks/packs/hermitcraft/thundershrine/Shrine.java
@@ -4,6 +4,7 @@
import me.teakivy.teakstweaks.packs.BasePack;
import me.teakivy.teakstweaks.packs.PackType;
import me.teakivy.teakstweaks.utils.Key;
+import me.teakivy.teakstweaks.utils.MM;
import me.teakivy.teakstweaks.utils.config.Config;
import me.teakivy.teakstweaks.utils.lang.Translatable;
import org.bukkit.*;
@@ -88,7 +89,7 @@ public static void startThunder(Player player, Location loc) {
if (!config.getBoolean("summoning.brodcast-message")) return;
for (Player oPlayer : Bukkit.getOnlinePlayers()) {
- oPlayer.sendMessage(Translatable.get("storm_initialize"));
+ MM.player(oPlayer).sendMessage(Translatable.get("storm_initialize"));
}
}
diff --git a/src/main/java/me/teakivy/teakstweaks/packs/hermitcraft/wanderingtrades/MiniBlockTrade.java b/src/main/java/me/teakivy/teakstweaks/packs/hermitcraft/wanderingtrades/MiniBlockTrade.java
index 4fc9cd7d..911923cc 100644
--- a/src/main/java/me/teakivy/teakstweaks/packs/hermitcraft/wanderingtrades/MiniBlockTrade.java
+++ b/src/main/java/me/teakivy/teakstweaks/packs/hermitcraft/wanderingtrades/MiniBlockTrade.java
@@ -2,6 +2,7 @@
import com.mojang.authlib.GameProfile;
import com.mojang.authlib.properties.Property;
+import me.teakivy.teakstweaks.utils.MM;
import me.teakivy.teakstweaks.utils.config.Config;
import net.kyori.adventure.text.format.TextDecoration;
import net.kyori.adventure.text.minimessage.MiniMessage;
@@ -46,7 +47,7 @@ public ItemStack getSkull() {
field.set(headMeta, profile);
} catch (NoSuchFieldException | IllegalArgumentException | IllegalAccessException ignored) {}
- headMeta.displayName(MiniMessage.miniMessage().deserialize("" + this.name).decoration(TextDecoration.ITALIC, false));
+ headMeta.setDisplayName(MM.toString(MiniMessage.miniMessage().deserialize("" + this.name).decoration(TextDecoration.ITALIC, false)));
head.setItemMeta(headMeta);
return head;
diff --git a/src/main/java/me/teakivy/teakstweaks/packs/items/armoredelytra/ArmoredElytras.java b/src/main/java/me/teakivy/teakstweaks/packs/items/armoredelytra/ArmoredElytras.java
index e3b498d7..2903f3ec 100644
--- a/src/main/java/me/teakivy/teakstweaks/packs/items/armoredelytra/ArmoredElytras.java
+++ b/src/main/java/me/teakivy/teakstweaks/packs/items/armoredelytra/ArmoredElytras.java
@@ -4,7 +4,9 @@
import me.teakivy.teakstweaks.packs.BasePack;
import me.teakivy.teakstweaks.packs.PackType;
import me.teakivy.teakstweaks.utils.Base64Serializer;
+import me.teakivy.teakstweaks.utils.ItemSerializer;
import me.teakivy.teakstweaks.utils.Key;
+import me.teakivy.teakstweaks.utils.MM;
import net.kyori.adventure.text.Component;
import org.bukkit.*;
import org.bukkit.attribute.Attribute;
@@ -29,6 +31,7 @@
import java.util.UUID;
public class ArmoredElytras extends BasePack {
+ // TODO test this
public ArmoredElytras() {
super("armored-elytra", PackType.ITEMS, Material.ELYTRA);
@@ -88,7 +91,7 @@ public void onElytraDrop(PlayerDropItemEvent event) {
public void run() {
if (event.getItemDrop().getLocation().add(0, -1, 0).getBlock().getType().equals(Material.GRINDSTONE)) {
Item item = event.getItemDrop();
- item.remove();
+// item.remove();
item.getWorld().spawnParticle(Particle.FLAME, item.getLocation(), 100, 0, 0, 0, .5);
event.getPlayer().playSound(event.getPlayer().getLocation(), Sound.BLOCK_GRINDSTONE_USE, 1, 1);
@@ -138,18 +141,18 @@ private ItemStack createArmoredElytra(ItemStack elytra, ItemStack chestplate) {
HashMap enchantmentStorage = new HashMap<>();
- Component name = getText("item_name");
+ String name = MM.toString(getText("item_name"));
if (chestplate.hasItemMeta()) {
if (chestplate.getItemMeta().hasDisplayName()) {
- name = chestplate.getItemMeta().displayName();
+ name = chestplate.getItemMeta().getDisplayName();
}
}
if (elytra.hasItemMeta()) {
if (elytra.getItemMeta().hasDisplayName()) {
- name = elytra.getItemMeta().displayName();
+ name = elytra.getItemMeta().getDisplayName();
}
}
- meta.displayName(name);
+ meta.setDisplayName(name);
NamespacedKey key = Key.get("armored_elytra");
meta.getPersistentDataContainer().set(key, PersistentDataType.STRING, "true");
@@ -158,10 +161,10 @@ private ItemStack createArmoredElytra(ItemStack elytra, ItemStack chestplate) {
meta.getPersistentDataContainer().set(version_key, PersistentDataType.INTEGER, 2);
NamespacedKey chestplate_storage_key = Key.get("chestplate_storage");
- meta.getPersistentDataContainer().set(chestplate_storage_key, PersistentDataType.BYTE_ARRAY, chestplate.serializeAsBytes());
+ meta.getPersistentDataContainer().set(chestplate_storage_key, PersistentDataType.BYTE_ARRAY, ItemSerializer.toByteArray(chestplate));
NamespacedKey elytra_storage_key = Key.get("elytra_storage");
- meta.getPersistentDataContainer().set(elytra_storage_key, PersistentDataType.BYTE_ARRAY, elytra.serializeAsBytes());
+ meta.getPersistentDataContainer().set(elytra_storage_key, PersistentDataType.BYTE_ARRAY, ItemSerializer.toByteArray(elytra));
chestplate.getEnchantments().forEach((enchantment, integer) -> {
@@ -229,7 +232,7 @@ public static ItemStack getB64ChestplateFromArmoredElytra(ItemStack elytra) thro
String chestplate = elytra.getItemMeta().getPersistentDataContainer().get(Key.get("chestplate_storage"), PersistentDataType.STRING);
return deserializeItem(chestplate);
}
- return ItemStack.deserializeBytes(elytra.getItemMeta().getPersistentDataContainer().get(Key.get("chestplate_storage"), PersistentDataType.BYTE_ARRAY));
+ return ItemSerializer.fromByteArray(elytra.getItemMeta().getPersistentDataContainer().get(Key.get("chestplate_storage"), PersistentDataType.BYTE_ARRAY));
}
public static ItemStack getB64ElytraFromArmoredElytra(ItemStack elytra) throws IOException {
@@ -239,7 +242,7 @@ public static ItemStack getB64ElytraFromArmoredElytra(ItemStack elytra) throws I
String oldElytra = elytra.getItemMeta().getPersistentDataContainer().get(Key.get("elytra_storage"), PersistentDataType.STRING);
return deserializeItem(oldElytra);
}
- return ItemStack.deserializeBytes(elytra.getItemMeta().getPersistentDataContainer().get(Key.get("elytra_storage"), PersistentDataType.BYTE_ARRAY));
+ return ItemSerializer.fromByteArray(elytra.getItemMeta().getPersistentDataContainer().get(Key.get("elytra_storage"), PersistentDataType.BYTE_ARRAY));
}
public static ItemStack deserializeItem(String serialized) throws IOException {
diff --git a/src/main/java/me/teakivy/teakstweaks/packs/items/playerheaddrops/HeadDrop.java b/src/main/java/me/teakivy/teakstweaks/packs/items/playerheaddrops/HeadDrop.java
index 3579b025..61a0d2cc 100644
--- a/src/main/java/me/teakivy/teakstweaks/packs/items/playerheaddrops/HeadDrop.java
+++ b/src/main/java/me/teakivy/teakstweaks/packs/items/playerheaddrops/HeadDrop.java
@@ -3,6 +3,7 @@
import me.teakivy.teakstweaks.packs.BasePack;
import me.teakivy.teakstweaks.packs.PackType;
import me.teakivy.teakstweaks.packs.mobs.moremobheads.MobHeads;
+import me.teakivy.teakstweaks.utils.MM;
import net.kyori.adventure.text.Component;
import org.bukkit.Material;
import org.bukkit.Sound;
@@ -23,7 +24,7 @@ public HeadDrop() {
@EventHandler
public void onDeath(PlayerDeathEvent event) {
- if (!checkPermission(event.getPlayer())) return;
+ if (!checkPermission(event.getEntity())) return;
Player player = event.getEntity();
if (!player.isDead()) return;
@@ -39,10 +40,10 @@ public ItemStack getHead(Player player, String killer) {
SkullMeta skull = (SkullMeta) item.getItemMeta();
skull.setNoteBlockSound(Sound.ENTITY_PLAYER_HURT.getKey());
- List lore = new ArrayList<>();
+ List lore = new ArrayList<>();
if (getConfig().getBoolean("display-killer"))
- lore.add(getText("lore", insert("player", killer)));
- skull.lore(lore);
+ lore.add(MM.toString(getText("lore", insert("player", killer))));
+ skull.setLore(lore);
skull.setOwningPlayer(player);
item.setItemMeta(skull);
return item;
diff --git a/src/main/java/me/teakivy/teakstweaks/packs/items/rotationwrench/Wrench.java b/src/main/java/me/teakivy/teakstweaks/packs/items/rotationwrench/Wrench.java
index 9b0ebffd..478488c0 100644
--- a/src/main/java/me/teakivy/teakstweaks/packs/items/rotationwrench/Wrench.java
+++ b/src/main/java/me/teakivy/teakstweaks/packs/items/rotationwrench/Wrench.java
@@ -4,6 +4,7 @@
import me.teakivy.teakstweaks.packs.BasePack;
import me.teakivy.teakstweaks.packs.PackType;
import me.teakivy.teakstweaks.utils.Key;
+import me.teakivy.teakstweaks.utils.MM;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.NamespacedKey;
@@ -44,7 +45,7 @@ public void init() {
meta.setUnbreakable(true);
meta.setCustomModelData(4321);
result.setDurability((short) 1);
- meta.displayName(getText("item_name"));
+ meta.setDisplayName(MM.toString(getText("item_name")));
result.setItemMeta(meta);
ShapedRecipe recipe = new ShapedRecipe(key, result);
@@ -69,8 +70,9 @@ public void onUse(PlayerInteractEvent event) {
ItemStack item = event.getItem();
if (item == null) return;
if (!item.hasItemMeta()) return;
- if (item.getItemMeta().displayName() == null) return;
- if (!Objects.equals(Objects.requireNonNull(item.getItemMeta()).displayName(), getText("item_name"))) return;
+ if (item.getItemMeta() == null) return;
+ if (item.getItemMeta().getDisplayName() == null) return;
+ if (!Objects.equals(Objects.requireNonNull(item.getItemMeta()).getDisplayName(), getText("item_name"))) return;
if (item.getType() != Material.CARROT_ON_A_STICK) return;
if (!item.getItemMeta().isUnbreakable()) return;
if (event.getPlayer().getVehicle() != null) event.setCancelled(true);
diff --git a/src/main/java/me/teakivy/teakstweaks/packs/mobs/countmobdeaths/CountDeaths.java b/src/main/java/me/teakivy/teakstweaks/packs/mobs/countmobdeaths/CountDeaths.java
index a56b9b33..02c1f660 100644
--- a/src/main/java/me/teakivy/teakstweaks/packs/mobs/countmobdeaths/CountDeaths.java
+++ b/src/main/java/me/teakivy/teakstweaks/packs/mobs/countmobdeaths/CountDeaths.java
@@ -2,6 +2,7 @@
import me.teakivy.teakstweaks.packs.BasePack;
import me.teakivy.teakstweaks.packs.PackType;
+import me.teakivy.teakstweaks.utils.MM;
import net.kyori.adventure.text.format.NamedTextColor;
import org.bukkit.Material;
import org.bukkit.entity.EntityType;
@@ -23,12 +24,12 @@ public CountDeaths() {
@EventHandler
public void onDeath(EntityDeathEvent event) {
if (event.getEntity().getType() == EntityType.PLAYER) return;
- if (event.getEntity().customName() == null) return;
+ if (event.getEntity().getCustomName() == null) return;
if (objective == null) {
Scoreboard board = Objects.requireNonNull(event.getEntity().getServer().getScoreboardManager()).getMainScoreboard();
if (board.getObjective("mobDeathCount") == null) {
- board.registerNewObjective("mobDeathCount", "dummy", getText("objective_name"));
+ board.registerNewObjective("mobDeathCount", "dummy", MM.toString(getText("objective_name")));
}
objective = board.getObjective("mobDeathCount");
}
diff --git a/src/main/java/me/teakivy/teakstweaks/packs/mobs/moremobheads/BaseMobHead.java b/src/main/java/me/teakivy/teakstweaks/packs/mobs/moremobheads/BaseMobHead.java
index b41ea5e7..5043e530 100644
--- a/src/main/java/me/teakivy/teakstweaks/packs/mobs/moremobheads/BaseMobHead.java
+++ b/src/main/java/me/teakivy/teakstweaks/packs/mobs/moremobheads/BaseMobHead.java
@@ -1,7 +1,10 @@
package me.teakivy.teakstweaks.packs.mobs.moremobheads;
import me.teakivy.teakstweaks.TeaksTweaks;
+import me.teakivy.teakstweaks.utils.MM;
import me.teakivy.teakstweaks.utils.config.Config;
+import net.kyori.adventure.platform.bukkit.BukkitComponentSerializer;
+import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.TextDecoration;
import net.kyori.adventure.text.minimessage.MiniMessage;
import org.apache.commons.lang3.text.WordUtils;
@@ -94,7 +97,8 @@ public ItemStack createHead(String name, String texture) {
ItemStack head = new ItemStack(Material.PLAYER_HEAD);
PlayerProfile profile = Bukkit.createPlayerProfile(UUID.fromString("fdb5599c-1b14-440e-82df-d69719703d21"), "MobHead");
SkullMeta meta = (SkullMeta)head.getItemMeta();
- meta.displayName(MiniMessage.miniMessage().deserialize("" + name.replace(" Head", "'s Head")).decoration(TextDecoration.ITALIC, false));
+ Component c = MiniMessage.miniMessage().deserialize("" + name.replace(" Head", "'s Head")).decoration(TextDecoration.ITALIC, false);
+ meta.setDisplayName(MM.toString(c));
PlayerTextures textures = profile.getTextures();
try {
diff --git a/src/main/java/me/teakivy/teakstweaks/packs/mobs/moremobheads/mobs/CatHead.java b/src/main/java/me/teakivy/teakstweaks/packs/mobs/moremobheads/mobs/CatHead.java
index 6bc268c2..4ffca66d 100644
--- a/src/main/java/me/teakivy/teakstweaks/packs/mobs/moremobheads/mobs/CatHead.java
+++ b/src/main/java/me/teakivy/teakstweaks/packs/mobs/moremobheads/mobs/CatHead.java
@@ -6,6 +6,8 @@
import org.bukkit.entity.EntityType;
import org.bukkit.event.entity.EntityDeathEvent;
+import java.util.Objects;
+
public class CatHead extends BaseMobHead {
public CatHead() {
@@ -28,7 +30,7 @@ public CatHead() {
public String getTexture(EntityDeathEvent event) {
Cat cat = (Cat) event.getEntity();
- String key = switch (cat.getCatType()) {
+ String key = switch (Objects.requireNonNull(CatType.fromType(cat.getCatType()))) {
case CALICO -> "calico";
case JELLIE -> "jellie";
case SIAMESE -> "siamese";
@@ -51,7 +53,7 @@ public String getName(EntityDeathEvent event) {
String name = "";
- switch (cat.getCatType()) {
+ switch (Objects.requireNonNull(CatType.fromType(cat.getCatType()))) {
case CALICO -> name = "Calico";
case JELLIE -> name = "Jellie";
case SIAMESE -> name = "Siamese";
@@ -67,4 +69,35 @@ public String getName(EntityDeathEvent event) {
return name + " Cat";
}
+
+ protected enum CatType {
+ CALICO(Cat.Type.CALICO),
+ JELLIE(Cat.Type.JELLIE),
+ SIAMESE(Cat.Type.SIAMESE),
+ PERSIAN(Cat.Type.PERSIAN),
+ BRITISH_SHORTHAIR(Cat.Type.BRITISH_SHORTHAIR),
+ TABBY(Cat.Type.TABBY),
+ BLACK(Cat.Type.BLACK),
+ RED(Cat.Type.RED),
+ RAGDOLL(Cat.Type.RAGDOLL),
+ WHITE(Cat.Type.WHITE),
+ ALL_BLACK(Cat.Type.ALL_BLACK);
+
+ private final Cat.Type type;
+
+ CatType(Cat.Type type) {
+ this.type = type;
+ }
+
+ public Cat.Type getType() {
+ return type;
+ }
+
+ public static CatType fromType(Cat.Type type) {
+ for (CatType value : values()) {
+ if (value.type == type) return value;
+ }
+ return null;
+ }
+ }
}
diff --git a/src/main/java/me/teakivy/teakstweaks/packs/mobs/moremobheads/mobs/FrogHead.java b/src/main/java/me/teakivy/teakstweaks/packs/mobs/moremobheads/mobs/FrogHead.java
index 78fe28de..18595af1 100644
--- a/src/main/java/me/teakivy/teakstweaks/packs/mobs/moremobheads/mobs/FrogHead.java
+++ b/src/main/java/me/teakivy/teakstweaks/packs/mobs/moremobheads/mobs/FrogHead.java
@@ -6,6 +6,8 @@
import org.bukkit.entity.Frog;
import org.bukkit.event.entity.EntityDeathEvent;
+import java.util.Objects;
+
public class FrogHead extends BaseMobHead {
public FrogHead() {
@@ -20,7 +22,7 @@ public FrogHead() {
public String getTexture(EntityDeathEvent event) {
Frog frog = (Frog) event.getEntity();
- String key = switch (frog.getVariant()) {
+ String key = switch (Objects.requireNonNull(FrogVariant.fromVariant(frog.getVariant()))) {
case WARM -> "warm";
case TEMPERATE -> "temperate";
case COLD -> "cold";
@@ -33,7 +35,7 @@ public String getTexture(EntityDeathEvent event) {
public String getName(EntityDeathEvent event) {
Frog frog = (Frog) event.getEntity();
- String key = switch (frog.getVariant()) {
+ String key = switch (Objects.requireNonNull(FrogVariant.fromVariant(frog.getVariant()))) {
case WARM -> "Warm";
case TEMPERATE -> "Temperate";
case COLD -> "Cold";
@@ -41,4 +43,27 @@ public String getName(EntityDeathEvent event) {
return key + " Frog";
}
+
+ protected enum FrogVariant {
+ WARM(Frog.Variant.WARM),
+ TEMPERATE(Frog.Variant.TEMPERATE),
+ COLD(Frog.Variant.COLD);
+
+ private final Frog.Variant variant;
+
+ FrogVariant(Frog.Variant profession) {
+ this.variant = profession;
+ }
+
+ public Frog.Variant getVariant() {
+ return variant;
+ }
+
+ public static FrogVariant fromVariant(Frog.Variant variant) {
+ for (FrogVariant value : values()) {
+ if (value.variant == variant) return value;
+ }
+ return null;
+ }
+ }
}
diff --git a/src/main/java/me/teakivy/teakstweaks/packs/mobs/moremobheads/mobs/VillagerHead.java b/src/main/java/me/teakivy/teakstweaks/packs/mobs/moremobheads/mobs/VillagerHead.java
index 95fa55a9..46018efd 100644
--- a/src/main/java/me/teakivy/teakstweaks/packs/mobs/moremobheads/mobs/VillagerHead.java
+++ b/src/main/java/me/teakivy/teakstweaks/packs/mobs/moremobheads/mobs/VillagerHead.java
@@ -6,6 +6,8 @@
import org.bukkit.entity.Villager;
import org.bukkit.event.entity.EntityDeathEvent;
+import java.util.Objects;
+
public class VillagerHead extends BaseMobHead {
public VillagerHead() {
@@ -32,7 +34,7 @@ public VillagerHead() {
public String getTexture(EntityDeathEvent event) {
Villager villager = (Villager) event.getEntity();
- String key = switch (villager.getProfession()) {
+ String key = switch (Objects.requireNonNull(VillagerProfession.fromProfession(villager.getProfession()))) {
case ARMORER -> "armorer";
case BUTCHER -> "butcher";
case CARTOGRAPHER -> "cartographer";
@@ -57,7 +59,8 @@ public String getTexture(EntityDeathEvent event) {
public String getName(EntityDeathEvent event) {
Villager villager = (Villager) event.getEntity();
- String name = switch (villager.getProfession()) {
+
+ String name = switch (Objects.requireNonNull(VillagerProfession.fromProfession(villager.getProfession()))) {
case ARMORER -> "Armorer";
case BUTCHER -> "Butcher";
case CARTOGRAPHER -> "Cartographer";
@@ -77,4 +80,39 @@ public String getName(EntityDeathEvent event) {
return name + " Villager";
}
+
+ protected enum VillagerProfession {
+ ARMORER(Villager.Profession.ARMORER),
+ BUTCHER(Villager.Profession.BUTCHER),
+ CARTOGRAPHER(Villager.Profession.CARTOGRAPHER),
+ CLERIC(Villager.Profession.CLERIC),
+ FARMER(Villager.Profession.FARMER),
+ FISHERMAN(Villager.Profession.FISHERMAN),
+ FLETCHER(Villager.Profession.FLETCHER),
+ LEATHERWORKER(Villager.Profession.LEATHERWORKER),
+ LIBRARIAN(Villager.Profession.LIBRARIAN),
+ MASON(Villager.Profession.MASON),
+ NITWIT(Villager.Profession.NITWIT),
+ SHEPHERD(Villager.Profession.SHEPHERD),
+ TOOLSMITH(Villager.Profession.TOOLSMITH),
+ WEAPONSMITH(Villager.Profession.WEAPONSMITH),
+ NONE(Villager.Profession.NONE);
+
+ private final Villager.Profession profession;
+
+ VillagerProfession(Villager.Profession profession) {
+ this.profession = profession;
+ }
+
+ public Villager.Profession getProfession() {
+ return profession;
+ }
+
+ public static VillagerProfession fromProfession(Villager.Profession profession) {
+ for (VillagerProfession value : values()) {
+ if (value.profession == profession) return value;
+ }
+ return null;
+ }
+ }
}
diff --git a/src/main/java/me/teakivy/teakstweaks/packs/mobs/moremobheads/mobs/ZombieVillagerHead.java b/src/main/java/me/teakivy/teakstweaks/packs/mobs/moremobheads/mobs/ZombieVillagerHead.java
index a508180a..406ae25f 100644
--- a/src/main/java/me/teakivy/teakstweaks/packs/mobs/moremobheads/mobs/ZombieVillagerHead.java
+++ b/src/main/java/me/teakivy/teakstweaks/packs/mobs/moremobheads/mobs/ZombieVillagerHead.java
@@ -37,7 +37,7 @@ public String getTexture(EntityDeathEvent event) {
if (profession == null) {
return textures.get("unemployed");
}
- String key = switch (villager.getVillagerProfession()) {
+ String key = switch (VillagerProfession.fromProfession(villager.getVillagerProfession())) {
case ARMORER -> "armorer";
case BUTCHER -> "butcher";
case CARTOGRAPHER -> "cartographer";
@@ -66,7 +66,7 @@ public String getName(EntityDeathEvent event) {
if (profession == null) {
return "Unemployed Zombie Villager";
}
- String name = switch (villager.getVillagerProfession()) {
+ String name = switch (VillagerProfession.fromProfession(villager.getVillagerProfession())) {
case ARMORER -> "Armorer";
case BUTCHER -> "Butcher";
case CARTOGRAPHER -> "Cartographer";
@@ -86,4 +86,39 @@ public String getName(EntityDeathEvent event) {
return name + " Zombie Villager";
}
+
+ protected enum VillagerProfession {
+ ARMORER(Villager.Profession.ARMORER),
+ BUTCHER(Villager.Profession.BUTCHER),
+ CARTOGRAPHER(Villager.Profession.CARTOGRAPHER),
+ CLERIC(Villager.Profession.CLERIC),
+ FARMER(Villager.Profession.FARMER),
+ FISHERMAN(Villager.Profession.FISHERMAN),
+ FLETCHER(Villager.Profession.FLETCHER),
+ LEATHERWORKER(Villager.Profession.LEATHERWORKER),
+ LIBRARIAN(Villager.Profession.LIBRARIAN),
+ MASON(Villager.Profession.MASON),
+ NITWIT(Villager.Profession.NITWIT),
+ SHEPHERD(Villager.Profession.SHEPHERD),
+ TOOLSMITH(Villager.Profession.TOOLSMITH),
+ WEAPONSMITH(Villager.Profession.WEAPONSMITH),
+ NONE(Villager.Profession.NONE);
+
+ private final Villager.Profession profession;
+
+ VillagerProfession(Villager.Profession profession) {
+ this.profession = profession;
+ }
+
+ public Villager.Profession getProfession() {
+ return profession;
+ }
+
+ public static VillagerProfession fromProfession(Villager.Profession profession) {
+ for (VillagerProfession value : values()) {
+ if (value.profession == profession) return value;
+ }
+ return null;
+ }
+ }
}
diff --git a/src/main/java/me/teakivy/teakstweaks/packs/mobs/silencemobs/Silencer.java b/src/main/java/me/teakivy/teakstweaks/packs/mobs/silencemobs/Silencer.java
index 0f26bf53..3c74cea6 100644
--- a/src/main/java/me/teakivy/teakstweaks/packs/mobs/silencemobs/Silencer.java
+++ b/src/main/java/me/teakivy/teakstweaks/packs/mobs/silencemobs/Silencer.java
@@ -3,6 +3,7 @@
import me.teakivy.teakstweaks.TeaksTweaks;
import me.teakivy.teakstweaks.packs.BasePack;
import me.teakivy.teakstweaks.packs.PackType;
+import me.teakivy.teakstweaks.utils.MM;
import net.kyori.adventure.text.minimessage.MiniMessage;
import org.bukkit.Bukkit;
import org.bukkit.GameMode;
@@ -46,14 +47,14 @@ public void onSilence(PlayerInteractAtEntityEvent event) {
ItemStack nametag = event.getPlayer().getInventory().getItem(event.getHand());
if (nametag.getType() != Material.NAME_TAG) return;
if (!nametag.hasItemMeta()) return;
- if (!MiniMessage.miniMessage().serialize(Objects.requireNonNull(nametag.getItemMeta()).displayName())
+ if (!Objects.requireNonNull(nametag.getItemMeta()).getDisplayName()
.replaceAll("_", " ")
.replaceAll("-", " ")
.trim()
.equalsIgnoreCase(getString("activation_name")))
return;
entity.setSilent(true);
- entity.customName(getText("silenced_name"));
+ entity.setCustomName(MM.toString(getText("silenced_name")));
event.setCancelled(true);
if (event.getPlayer().getGameMode() != GameMode.CREATIVE) {
@@ -66,13 +67,13 @@ public void onSilence(PlayerInteractAtEntityEvent event) {
Bukkit.getScheduler().scheduleSyncDelayedTask(TeaksTweaks.getInstance(), () -> {
Entity entity1 = getEntityByUniqueId(entity.getUniqueId());
if (entity1 == null) return;
- if (entity1.customName() == null) return;
- if (MiniMessage.miniMessage().serialize(entity1.customName()).replaceAll("_", " ")
+ if (entity1.getCustomName() == null) return;
+ if (entity1.getCustomName().replaceAll("_", " ")
.replaceAll("-", " ")
.trim()
.equalsIgnoreCase(getString("activation_name"))) {
entity.setSilent(true);
- entity.customName(getText("silenced_name"));
+ entity.setCustomName(MM.toString(getText("silenced_name")));
}
}, 10L);
} catch (NoClassDefFoundError ignored) {
diff --git a/src/main/java/me/teakivy/teakstweaks/packs/mobs/villagerdeathmessages/VillagerDeath.java b/src/main/java/me/teakivy/teakstweaks/packs/mobs/villagerdeathmessages/VillagerDeath.java
index 0295237e..6d06e053 100644
--- a/src/main/java/me/teakivy/teakstweaks/packs/mobs/villagerdeathmessages/VillagerDeath.java
+++ b/src/main/java/me/teakivy/teakstweaks/packs/mobs/villagerdeathmessages/VillagerDeath.java
@@ -3,6 +3,7 @@
import me.teakivy.teakstweaks.packs.BasePack;
import me.teakivy.teakstweaks.packs.PackType;
import me.teakivy.teakstweaks.utils.Logger;
+import me.teakivy.teakstweaks.utils.MM;
import net.kyori.adventure.text.Component;
import org.bukkit.*;
import org.bukkit.entity.EntityType;
@@ -28,7 +29,7 @@ public void onMobDeath(EntityDeathEvent event) {
if (getConfig().getBoolean("show-in-chat")) {
for (Player player : Bukkit.getOnlinePlayers()) {
- player.sendMessage(deathMessage);
+ player.sendMessage(MM.toString(deathMessage));
}
return;
}
diff --git a/src/main/java/me/teakivy/teakstweaks/packs/survival/afkdisplay/AFK.java b/src/main/java/me/teakivy/teakstweaks/packs/survival/afkdisplay/AFK.java
index 26685758..95e677be 100644
--- a/src/main/java/me/teakivy/teakstweaks/packs/survival/afkdisplay/AFK.java
+++ b/src/main/java/me/teakivy/teakstweaks/packs/survival/afkdisplay/AFK.java
@@ -4,11 +4,11 @@
import me.teakivy.teakstweaks.packs.BasePack;
import me.teakivy.teakstweaks.packs.PackType;
import me.teakivy.teakstweaks.utils.Logger;
+import me.teakivy.teakstweaks.utils.MM;
import me.teakivy.teakstweaks.utils.config.Config;
import me.teakivy.teakstweaks.utils.lang.Translatable;
-import net.kyori.adventure.text.Component;
-import net.kyori.adventure.text.format.NamedTextColor;
import org.bukkit.Bukkit;
+import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
@@ -49,9 +49,9 @@ public void register() {
kickAfter = getConfig().getInt("kick-after");
if (getConfig().getBoolean("display-badge")) {
- afkTeam.prefix(newText(getConfig().getString("badge")));
+ afkTeam.setPrefix(MM.toString(newText(getConfig().getString("badge"))));
} else {
- afkTeam.prefix(Component.empty());
+ afkTeam.setPrefix("");
}
for (Player player : Bukkit.getOnlinePlayers()) {
@@ -78,11 +78,11 @@ public void register() {
} else {
if (player != null) {
if (kickAfter == 0) {
- player.kick(newText(getConfig().getString("kick-message")));
+ player.kickPlayer(MM.toString(newText(getConfig().getString("kick-message"))));
}
if (kickAfter > 0) {
if (lastMove.get(uuid) + (afkMinutes * 60 * 1000) + (kickAfter * 60 * 1000) < System.currentTimeMillis()) {
- player.kick(newText(getConfig().getString("kick-message")));
+ player.kickPlayer(MM.toString(newText(getConfig().getString("kick-message"))));
}
}
}
@@ -100,29 +100,29 @@ public static void registerTeam() {
afkTeam = sb.getTeam("AFK");
return;
}
- afk.color(getColor(color));
+ afk.setColor(getColor(color));
}
afkTeam = sb.getTeam("AFK");
}
- public static NamedTextColor getColor(String color) {
+ public static ChatColor getColor(String color) {
return switch (color) {
- case "black" -> NamedTextColor.BLACK;
- case "dark_blue" -> NamedTextColor.DARK_BLUE;
- case "dark_green" -> NamedTextColor.DARK_GREEN;
- case "dark_aqua" -> NamedTextColor.DARK_AQUA;
- case "dark_red" -> NamedTextColor.DARK_RED;
- case "dark_purple" -> NamedTextColor.DARK_PURPLE;
- case "gold" -> NamedTextColor.GOLD;
- case "gray" -> NamedTextColor.GRAY;
- case "dark_gray" -> NamedTextColor.DARK_GRAY;
- case "blue" -> NamedTextColor.BLUE;
- case "green" -> NamedTextColor.GREEN;
- case "aqua" -> NamedTextColor.AQUA;
- case "red" -> NamedTextColor.RED;
- case "light_purple" -> NamedTextColor.LIGHT_PURPLE;
- case "yellow" -> NamedTextColor.YELLOW;
- default -> NamedTextColor.WHITE;
+ case "black" -> ChatColor.BLACK;
+ case "dark_blue" -> ChatColor.DARK_BLUE;
+ case "dark_green" -> ChatColor.DARK_GREEN;
+ case "dark_aqua" -> ChatColor.DARK_AQUA;
+ case "dark_red" -> ChatColor.DARK_RED;
+ case "dark_purple" -> ChatColor.DARK_PURPLE;
+ case "gold" -> ChatColor.GOLD;
+ case "gray" -> ChatColor.GRAY;
+ case "dark_gray" -> ChatColor.DARK_GRAY;
+ case "blue" -> ChatColor.BLUE;
+ case "green" -> ChatColor.GREEN;
+ case "aqua" -> ChatColor.AQUA;
+ case "red" -> ChatColor.RED;
+ case "light_purple" -> ChatColor.LIGHT_PURPLE;
+ case "yellow" -> ChatColor.YELLOW;
+ default -> ChatColor.WHITE;
};
}
@@ -162,12 +162,12 @@ public static void unAFK(Player player) {
public static void displayAFKMessage(Player player, Boolean isAFK) {
if (isAFK) {
if (Config.getBoolean("packs.afk-display.message.display-to-self")) {
- player.sendMessage(Translatable.get("afk_display.self_now_afk"));
+ MM.player(player).sendMessage(Translatable.get("afk_display.self_now_afk"));
}
if (Config.getBoolean("packs.afk-display.message.display-to-everyone")) {
for (Player player1 : Bukkit.getOnlinePlayers()) {
if (player1.getUniqueId() != player.getUniqueId()) {
- player1.sendMessage(Translatable.get("afk_display.other_now_afk", insert("player", player.getName())));
+ MM.player(player1).sendMessage(Translatable.get("afk_display.other_now_afk", insert("player", player.getName())));
}
}
}
@@ -176,12 +176,12 @@ public static void displayAFKMessage(Player player, Boolean isAFK) {
}
} else {
if (Config.getBoolean("packs.afk-display.message.display-to-self")) {
- player.sendMessage(Translatable.get("afk_display.self_not_afk"));
+ MM.player(player).sendMessage(Translatable.get("afk_display.self_not_afk"));
}
if (Config.getBoolean("packs.afk-display.message.display-to-everyone")) {
for (Player player1 : Bukkit.getOnlinePlayers()) {
if (player1.getUniqueId() != player.getUniqueId()) {
- player1.sendMessage(Translatable.get("afk_display.other_not_afk", insert("player", player.getName())));
+ MM.player(player1).sendMessage(Translatable.get("afk_display.other_not_afk", insert("player", player.getName())));
}
}
}
diff --git a/src/main/java/me/teakivy/teakstweaks/packs/survival/coordshud/DisplayHud.java b/src/main/java/me/teakivy/teakstweaks/packs/survival/coordshud/DisplayHud.java
index 4f61a50e..fbdaf2b1 100644
--- a/src/main/java/me/teakivy/teakstweaks/packs/survival/coordshud/DisplayHud.java
+++ b/src/main/java/me/teakivy/teakstweaks/packs/survival/coordshud/DisplayHud.java
@@ -1,6 +1,7 @@
package me.teakivy.teakstweaks.packs.survival.coordshud;
import me.teakivy.teakstweaks.TeaksTweaks;
+import me.teakivy.teakstweaks.utils.MM;
import me.teakivy.teakstweaks.utils.config.Config;
import net.kyori.adventure.text.minimessage.MiniMessage;
import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder;
@@ -33,7 +34,7 @@ public static void showHud(Player player) {
String directionAbbr = getDirectionAbbr(playerDirection);
String worldTime = getWorldTime();
- player.sendActionBar(MiniMessage.miniMessage().deserialize(
+ MM.player(player).sendActionBar(MiniMessage.miniMessage().deserialize(
hudMessage,
Placeholder.parsed("x", loc.getBlockX() + ""),
Placeholder.parsed("y", loc.getBlockY() + ""),
diff --git a/src/main/java/me/teakivy/teakstweaks/packs/survival/durabilityping/DuraPing.java b/src/main/java/me/teakivy/teakstweaks/packs/survival/durabilityping/DuraPing.java
index 9afdb277..69088d32 100644
--- a/src/main/java/me/teakivy/teakstweaks/packs/survival/durabilityping/DuraPing.java
+++ b/src/main/java/me/teakivy/teakstweaks/packs/survival/durabilityping/DuraPing.java
@@ -2,12 +2,11 @@
import me.teakivy.teakstweaks.packs.BasePack;
import me.teakivy.teakstweaks.packs.PackType;
+import me.teakivy.teakstweaks.utils.MM;
import me.teakivy.teakstweaks.utils.config.Config;
import me.teakivy.teakstweaks.utils.lang.Translatable;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.title.TitlePart;
-import net.md_5.bungee.api.ChatMessageType;
-import net.md_5.bungee.api.chat.ComponentBuilder;
import org.apache.commons.lang3.text.WordUtils;
import org.bukkit.Material;
import org.bukkit.Sound;
@@ -106,18 +105,18 @@ public static void pingPlayer(Player player, ItemStack item, float durability, S
}
if (style.equalsIgnoreCase("hidden")) return;
if (style.equalsIgnoreCase("subtitle")) {
- player.sendTitlePart(TitlePart.TITLE, getDurabilityMessage("ping.subtitle.title", item, durability, maxDurability));
- player.sendTitlePart(TitlePart.SUBTITLE, getDurabilityMessage("ping.subtitle.subtitle", item, durability, maxDurability));
+ MM.player(player).sendTitlePart(TitlePart.TITLE, getDurabilityMessage("ping.subtitle.title", item, durability, maxDurability));
+ MM.player(player).sendTitlePart(TitlePart.SUBTITLE, getDurabilityMessage("ping.subtitle.subtitle", item, durability, maxDurability));
}
if (style.equalsIgnoreCase("title")) {
- player.sendTitlePart(TitlePart.TITLE, getDurabilityMessage("ping.title.title", item, durability, maxDurability));
- player.sendTitlePart(TitlePart.SUBTITLE, getDurabilityMessage("ping.title.subtitle", item, durability, maxDurability));
+ MM.player(player).sendTitlePart(TitlePart.TITLE, getDurabilityMessage("ping.title.title", item, durability, maxDurability));
+ MM.player(player).sendTitlePart(TitlePart.SUBTITLE, getDurabilityMessage("ping.title.subtitle", item, durability, maxDurability));
}
if (style.equalsIgnoreCase("chat")) {
- player.sendMessage(getDurabilityMessage("ping.chat.message", item, durability, maxDurability));
+ MM.player(player).sendMessage(getDurabilityMessage("ping.chat.message", item, durability, maxDurability));
}
if (style.equalsIgnoreCase("actionbar")) {
- player.sendActionBar(getDurabilityMessage("ping.actionbar.message", item, durability, maxDurability));
+ MM.player(player).sendActionBar(getDurabilityMessage("ping.actionbar.message", item, durability, maxDurability));
}
}
diff --git a/src/main/java/me/teakivy/teakstweaks/packs/survival/graves/GraveEvents.java b/src/main/java/me/teakivy/teakstweaks/packs/survival/graves/GraveEvents.java
index a723ff41..cbf955a1 100644
--- a/src/main/java/me/teakivy/teakstweaks/packs/survival/graves/GraveEvents.java
+++ b/src/main/java/me/teakivy/teakstweaks/packs/survival/graves/GraveEvents.java
@@ -3,6 +3,7 @@
import me.teakivy.teakstweaks.packs.BasePack;
import me.teakivy.teakstweaks.packs.PackType;
import me.teakivy.teakstweaks.utils.Key;
+import me.teakivy.teakstweaks.utils.MM;
import me.teakivy.teakstweaks.utils.XPUtils;
import me.teakivy.teakstweaks.utils.lang.Translatable;
import net.kyori.adventure.text.Component;
@@ -92,7 +93,7 @@ public void onInteract(PlayerInteractAtEntityEvent event) throws IOException {
}
return;
} else {
- event.getPlayer().sendMessage(getText("cant_rob_grave"));
+ MM.player(event.getPlayer()).sendMessage(getText("cant_rob_grave"));
}
}
event.setCancelled(true);
@@ -117,7 +118,7 @@ public void onPickUp(InventoryPickupItemEvent event) {
@EventHandler
public void onDeath(PlayerDeathEvent event) throws IOException {
if (!getConfig().getBoolean("generate-in-lava")) {
- if (event.getPlayer().getLocation().getBlock().getType() == Material.LAVA || event.getPlayer().getLocation().getBlock().getType() == Material.LAVA_CAULDRON) {
+ if (event.getEntity().getLocation().getBlock().getType() == Material.LAVA || event.getEntity().getLocation().getBlock().getType() == Material.LAVA_CAULDRON) {
return;
}
}
@@ -164,7 +165,7 @@ public void onDeath(PlayerDeathEvent event) throws IOException {
insert("y", (int) Math.floor(loc.getY())),
insert("z", (int) Math.floor(loc.getZ())),
insert("world", loc.getWorld().getName()));
- player.sendMessage(lastGrave);
+ MM.player(player).sendMessage(lastGrave);
PersistentDataContainer playerData = player.getPersistentDataContainer();
playerData.set(Key.get("graves_last"), PersistentDataType.STRING, MiniMessage.miniMessage().serialize(lastGrave));
}
@@ -192,12 +193,12 @@ public boolean holdingKey(Player player) {
public static ItemStack getGraveKey() {
ItemStack graveKey = new ItemStack(Material.TRIPWIRE_HOOK);
ItemMeta keyMeta = graveKey.getItemMeta();
- keyMeta.displayName(Translatable.get("graves.key.item_name"));
+ keyMeta.setDisplayName(MM.toString(Translatable.get("graves.key.item_name")));
graveKey.addUnsafeEnchantment(Enchantment.CHANNELING, 1);
keyMeta.addItemFlags(ItemFlag.HIDE_ENCHANTS);
- List lore = new ArrayList<>();
- lore.add(Translatable.get("graves.key.item_lore"));
- keyMeta.lore(lore);
+ List lore = new ArrayList<>();
+ lore.add(MM.toString(Translatable.get("graves.key.item_lore")));
+ keyMeta.setLore(lore);
graveKey.setItemMeta(keyMeta);
return graveKey;
}
diff --git a/src/main/java/me/teakivy/teakstweaks/packs/teakstweaks/chatcolors/ChatColors.java b/src/main/java/me/teakivy/teakstweaks/packs/teakstweaks/chatcolors/ChatColors.java
index 93637f5f..7d89317f 100644
--- a/src/main/java/me/teakivy/teakstweaks/packs/teakstweaks/chatcolors/ChatColors.java
+++ b/src/main/java/me/teakivy/teakstweaks/packs/teakstweaks/chatcolors/ChatColors.java
@@ -1,8 +1,8 @@
package me.teakivy.teakstweaks.packs.teakstweaks.chatcolors;
-import io.papermc.paper.event.player.AsyncChatEvent;
import me.teakivy.teakstweaks.packs.BasePack;
import me.teakivy.teakstweaks.packs.PackType;
+import me.teakivy.teakstweaks.utils.MM;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.minimessage.MiniMessage;
import org.bukkit.Material;
@@ -10,6 +10,7 @@
import org.bukkit.event.EventHandler;
import org.bukkit.event.block.SignChangeEvent;
import org.bukkit.event.inventory.PrepareAnvilEvent;
+import org.bukkit.event.player.AsyncPlayerChatEvent;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
@@ -20,11 +21,11 @@ public ChatColors() {
}
@EventHandler
- public void onChat(AsyncChatEvent event) {
+ public void onChat(AsyncPlayerChatEvent event) {
if (!getConfig().getBoolean("chat")) return;
if (!checkPermission(event.getPlayer())) return;
- event.message(legacyToMiniMessage(event.message()));
+ event.setMessage(MM.toString(legacyToMiniMessage(newText(event.getMessage()))));
}
@EventHandler
@@ -39,7 +40,7 @@ private void onAnvil(PrepareAnvilEvent event) {
if (meta == null) return;
if (!meta.hasDisplayName()) return;
- meta.displayName(legacyToMiniMessage(meta.displayName()));
+ meta.setDisplayName(MM.toString(legacyToMiniMessage(newText(meta.getDisplayName()))));
result.setItemMeta(meta);
event.setResult(result);
}
@@ -49,9 +50,9 @@ public void onSign(SignChangeEvent event) {
if (!getConfig().getBoolean("signs")) return;
if (!checkPermission(event.getPlayer())) return;
- for (int i = 0; i < event.lines().size(); i++) {
- if (event.line(i) == null) continue;
- event.line(i, legacyToMiniMessage(event.line(i)));
+ for (int i = 0; i < event.getLines().length; i++) {
+ if (event.getLine(i) == null) continue;
+ event.setLine(i, MM.toString(legacyToMiniMessage(newText(event.getLine(i)))));
}
}
diff --git a/src/main/java/me/teakivy/teakstweaks/packs/teakstweaks/keepsmall/KeepSmall.java b/src/main/java/me/teakivy/teakstweaks/packs/teakstweaks/keepsmall/KeepSmall.java
index 1fae6e77..864201d7 100644
--- a/src/main/java/me/teakivy/teakstweaks/packs/teakstweaks/keepsmall/KeepSmall.java
+++ b/src/main/java/me/teakivy/teakstweaks/packs/teakstweaks/keepsmall/KeepSmall.java
@@ -3,6 +3,7 @@
import me.teakivy.teakstweaks.TeaksTweaks;
import me.teakivy.teakstweaks.packs.BasePack;
import me.teakivy.teakstweaks.packs.PackType;
+import me.teakivy.teakstweaks.utils.MM;
import net.kyori.adventure.text.minimessage.MiniMessage;
import org.bukkit.Bukkit;
import org.bukkit.Material;
@@ -28,8 +29,8 @@ public void onSilence(PlayerInteractAtEntityEvent event) {
Bukkit.getScheduler().scheduleSyncDelayedTask(TeaksTweaks.getInstance(), () -> {
Entity entity1 = getEntityByUniqueId(entity.getUniqueId());
if (entity1 == null) return;
- if (entity1.customName() == null) return;
- if (MiniMessage.miniMessage().serialize(entity1.customName()).replaceAll("_", " ")
+ if (entity1.getCustomName() == null) return;
+ if (entity1.getCustomName().replaceAll("_", " ")
.replaceAll("-", " ")
.trim()
.equalsIgnoreCase(getString("smallify.activation_name"))) {
@@ -38,9 +39,9 @@ public void onSilence(PlayerInteractAtEntityEvent event) {
Ageable ageable = (Ageable) entity1;
ageable.setAge(-Integer.MAX_VALUE);
}
- entity.customName(getText("smallify.small_name"));
+ entity.setCustomName(MM.toString(getText("smallify.small_name")));
}
- if (MiniMessage.miniMessage().serialize(entity1.customName()).replaceAll("_", " ")
+ if (entity1.getCustomName().replaceAll("_", " ")
.replaceAll("-", " ")
.trim()
.equalsIgnoreCase(getString("grow.activation_name"))) {
@@ -49,7 +50,7 @@ public void onSilence(PlayerInteractAtEntityEvent event) {
Ageable ageable = (Ageable) entity1;
ageable.setAge(1);
}
- entity.customName(getText("grow.grown_name"));
+ entity.setCustomName(MM.toString(getText("grow.grown_name")));
}
}, 10L);
} catch (NoClassDefFoundError ignored) {}
diff --git a/src/main/java/me/teakivy/teakstweaks/packs/teakstweaks/quickcommands/ReplyQuickCommand.java b/src/main/java/me/teakivy/teakstweaks/packs/teakstweaks/quickcommands/ReplyQuickCommand.java
index c293510b..45075b40 100644
--- a/src/main/java/me/teakivy/teakstweaks/packs/teakstweaks/quickcommands/ReplyQuickCommand.java
+++ b/src/main/java/me/teakivy/teakstweaks/packs/teakstweaks/quickcommands/ReplyQuickCommand.java
@@ -1,5 +1,6 @@
package me.teakivy.teakstweaks.packs.teakstweaks.quickcommands;
+import me.teakivy.teakstweaks.utils.MM;
import me.teakivy.teakstweaks.utils.command.*;
import me.teakivy.teakstweaks.utils.ErrorType;
import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder;
@@ -40,7 +41,7 @@ public void playerCommand(PlayerCommandEvent event) {
message.append(event.getArg(i)).append(" ");
}
- target.sendMessage(get("quick_commands.message.whisper_to_you", Placeholder.parsed("player", player.getName()), Placeholder.parsed("message", message.toString())));
+ MM.player(target).sendMessage(get("quick_commands.message.whisper_to_you", Placeholder.parsed("player", player.getName()), Placeholder.parsed("message", message.toString())));
sendMessage("whisper_to_player", Placeholder.parsed("player", player.getName()), Placeholder.parsed("message", message.toString()));
lastMessage.put(player.getUniqueId(), target.getUniqueId());
@@ -89,7 +90,7 @@ public void playerCommand(PlayerCommandEvent event) {
message.append(arg).append(" ");
}
- target.sendMessage(get("quick_commands.message.whisper_to_you", Placeholder.parsed("player", player.getName()), Placeholder.parsed("message", message.toString())));
+ MM.player(target).sendMessage(get("quick_commands.message.whisper_to_you", Placeholder.parsed("player", player.getName()), Placeholder.parsed("message", message.toString())));
sendMessage(get("quick_commands.message.whisper_to_player", Placeholder.parsed("player", player.getName()), Placeholder.parsed("message", message.toString())));
lastMessage.put(player.getUniqueId(), targetUUID);
diff --git a/src/main/java/me/teakivy/teakstweaks/packs/teakstweaks/sleepyspidereggs/SleepySpiderEggs.java b/src/main/java/me/teakivy/teakstweaks/packs/teakstweaks/sleepyspidereggs/SleepySpiderEggs.java
index 33790a27..d169b866 100644
--- a/src/main/java/me/teakivy/teakstweaks/packs/teakstweaks/sleepyspidereggs/SleepySpiderEggs.java
+++ b/src/main/java/me/teakivy/teakstweaks/packs/teakstweaks/sleepyspidereggs/SleepySpiderEggs.java
@@ -17,12 +17,16 @@ public SleepySpiderEggs() {
@EventHandler
public void onSleep(PlayerBedLeaveEvent event) {
Player player = event.getPlayer();
- if (!player.getWorld().isDayTime()) return;
+ if (!isDayTime(player.getWorld().getTime())) return;
- player.getLocation().getNearbyEntities(10, 10, 10).forEach(entity -> {
+ player.getWorld().getNearbyEntities(player.getLocation(), 10, 10, 10).forEach(entity -> {
if (entity.getType() != EntityType.SPIDER) return;
player.setExp(player.getExp() + (int) (Math.random() * 5) + 1);
});
}
+
+ public boolean isDayTime(long time) {
+ return time > 0 && time < 12300;
+ }
}
diff --git a/src/main/java/me/teakivy/teakstweaks/packs/teakstweaks/spectatoralts/SpectatorAlts.java b/src/main/java/me/teakivy/teakstweaks/packs/teakstweaks/spectatoralts/SpectatorAlts.java
index 1f3a65ce..e4432024 100644
--- a/src/main/java/me/teakivy/teakstweaks/packs/teakstweaks/spectatoralts/SpectatorAlts.java
+++ b/src/main/java/me/teakivy/teakstweaks/packs/teakstweaks/spectatoralts/SpectatorAlts.java
@@ -100,7 +100,7 @@ public static void removeAlt(UUID alt) {
JsonManager.saveToFile(map, "data/alts.json");
if (Bukkit.getPlayer(alt) != null) {
- Bukkit.getPlayer(alt).kick();
+ Bukkit.getPlayer(alt).kickPlayer("");
}
}
@@ -129,7 +129,7 @@ public void onTeleport(PlayerTeleportEvent event) {
if (getConfig().getBoolean("allow-player-teleport")) return;
if (!alts.containsKey(player.getUniqueId())) return;
- for (Entity entity : event.getTo().getNearbyEntities(10, 10, 10)) {
+ for (Entity entity : event.getTo().getWorld().getNearbyEntities(event.getTo(), 10, 10, 10)) {
if (!(entity instanceof Player)) continue;
if (entity.getUniqueId().equals(alts.get(player.getUniqueId()))) return;
}
diff --git a/src/main/java/me/teakivy/teakstweaks/packs/teakstweaks/stairchairs/StairChairs.java b/src/main/java/me/teakivy/teakstweaks/packs/teakstweaks/stairchairs/StairChairs.java
index 838a54a8..cb1cfb70 100644
--- a/src/main/java/me/teakivy/teakstweaks/packs/teakstweaks/stairchairs/StairChairs.java
+++ b/src/main/java/me/teakivy/teakstweaks/packs/teakstweaks/stairchairs/StairChairs.java
@@ -2,6 +2,7 @@
import me.teakivy.teakstweaks.packs.BasePack;
import me.teakivy.teakstweaks.packs.PackType;
+import me.teakivy.teakstweaks.utils.MM;
import org.bukkit.Color;
import org.bukkit.Location;
import org.bukkit.Material;
@@ -47,7 +48,7 @@ public void onChairMaker(PlayerInteractEvent event) {
Marker marker = (Marker) Objects.requireNonNull(loc.getWorld()).spawnEntity(loc, EntityType.MARKER);
marker.addScoreboardTag("chair");
- event.getPlayer().sendMessage(getText("chair_created"));
+ MM.player(event.getPlayer()).sendMessage(getText("chair_created"));
}
public boolean isChair(Location loc) {
@@ -69,7 +70,7 @@ public void onChairDestroy(BlockBreakEvent event) {
}
}
event.getBlock().getWorld().dropItem(loc.add(.5, .5, .5), new ItemStack(Material.SADDLE));
- event.getPlayer().sendMessage(getText("chair_destroyed"));
+ MM.player(event.getPlayer()).sendMessage(getText("chair_destroyed"));
}
@EventHandler
diff --git a/src/main/java/me/teakivy/teakstweaks/packs/teakstweaks/sudoku/Sudoku.java b/src/main/java/me/teakivy/teakstweaks/packs/teakstweaks/sudoku/Sudoku.java
index 91e988ff..a53cc57a 100644
--- a/src/main/java/me/teakivy/teakstweaks/packs/teakstweaks/sudoku/Sudoku.java
+++ b/src/main/java/me/teakivy/teakstweaks/packs/teakstweaks/sudoku/Sudoku.java
@@ -2,6 +2,7 @@
import me.teakivy.teakstweaks.packs.BasePack;
import me.teakivy.teakstweaks.packs.PackType;
+import me.teakivy.teakstweaks.utils.MM;
import org.bukkit.Material;
import org.bukkit.event.EventHandler;
import org.bukkit.event.entity.PlayerDeathEvent;
@@ -15,7 +16,7 @@ public Sudoku() {
@EventHandler
public void onDeath(PlayerDeathEvent event) {
if (!event.getEntity().getScoreboardTags().contains("sudoku-message")) return;
- event.deathMessage(getText("death_message", insert("player", event.getEntity().getName())));
+ event.setDeathMessage(MM.toString(getText("death_message", insert("player", event.getEntity().getName()))));
event.getEntity().getScoreboardTags().remove("sudoku-message");
}
}
diff --git a/src/main/java/me/teakivy/teakstweaks/packs/teleportation/back/Back.java b/src/main/java/me/teakivy/teakstweaks/packs/teleportation/back/Back.java
index be912cfd..b3661e90 100644
--- a/src/main/java/me/teakivy/teakstweaks/packs/teleportation/back/Back.java
+++ b/src/main/java/me/teakivy/teakstweaks/packs/teleportation/back/Back.java
@@ -3,6 +3,7 @@
import me.teakivy.teakstweaks.packs.BasePack;
import me.teakivy.teakstweaks.packs.PackType;
import me.teakivy.teakstweaks.utils.ErrorType;
+import me.teakivy.teakstweaks.utils.MM;
import me.teakivy.teakstweaks.utils.lang.Translatable;
import org.bukkit.Location;
import org.bukkit.Material;
@@ -23,13 +24,13 @@ public Back() {
public static void tpBack(Player player) {
if (!player.hasPermission("teakstweaks.back")) {
- player.sendMessage(ErrorType.MISSING_PERMISSION.m());
+ MM.player(player).sendMessage(ErrorType.MISSING_PERMISSION.m());
return;
}
if (backLoc.containsKey(player.getUniqueId())) {
player.teleport(backLoc.get(player.getUniqueId()));
} else {
- player.sendMessage(Translatable.get("back.error.no_back_location"));
+ MM.player(player).sendMessage(Translatable.get("back.error.no_back_location"));
}
}
diff --git a/src/main/java/me/teakivy/teakstweaks/packs/teleportation/homes/Home.java b/src/main/java/me/teakivy/teakstweaks/packs/teleportation/homes/Home.java
index aba8be64..4dfe27bd 100644
--- a/src/main/java/me/teakivy/teakstweaks/packs/teleportation/homes/Home.java
+++ b/src/main/java/me/teakivy/teakstweaks/packs/teleportation/homes/Home.java
@@ -1,6 +1,7 @@
package me.teakivy.teakstweaks.packs.teleportation.homes;
import me.teakivy.teakstweaks.utils.Key;
+import me.teakivy.teakstweaks.utils.MM;
import me.teakivy.teakstweaks.utils.lang.Translatable;
import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder;
import org.bukkit.Bukkit;
@@ -57,12 +58,12 @@ public void teleport() {
if (player == null) return;
if (HomesPack.onCooldown(player)) {
- player.sendMessage(Translatable.get("homes.error.on_cooldown", Placeholder.parsed("time", HomesPack.getCooldown(player) + "")));
+ MM.player(player).sendMessage(Translatable.get("homes.error.on_cooldown", Placeholder.parsed("time", HomesPack.getCooldown(player) + "")));
return;
}
player.teleport(loc);
- player.sendMessage(Translatable.get("homes.teleported", Placeholder.parsed("home", name)));
+ MM.player(player).sendMessage(Translatable.get("homes.teleported", Placeholder.parsed("home", name)));
}
public void delete() {
diff --git a/src/main/java/me/teakivy/teakstweaks/packs/utilities/itemaverages/ItemTracker.java b/src/main/java/me/teakivy/teakstweaks/packs/utilities/itemaverages/ItemTracker.java
index f2c26829..f85faf3d 100644
--- a/src/main/java/me/teakivy/teakstweaks/packs/utilities/itemaverages/ItemTracker.java
+++ b/src/main/java/me/teakivy/teakstweaks/packs/utilities/itemaverages/ItemTracker.java
@@ -4,6 +4,7 @@
import me.teakivy.teakstweaks.packs.BasePack;
import me.teakivy.teakstweaks.packs.PackType;
import me.teakivy.teakstweaks.utils.Logger;
+import me.teakivy.teakstweaks.utils.MM;
import me.teakivy.teakstweaks.utils.lang.Translatable;
import org.bukkit.Bukkit;
import org.bukkit.Location;
@@ -95,19 +96,19 @@ private static void sendTotaledMessage(Player player, HashMap
});
if (!totalItems.isEmpty()) {
- player.sendMessage(newText("-------------------------"));
- player.sendMessage(Translatable.get("item_averages.source_production"));
+ MM.player(player).sendMessage(newText("-------------------------"));
+ MM.player(player).sendMessage(Translatable.get("item_averages.source_production"));
totalItems.forEach((item, amount) -> {
- player.sendMessage(
+ MM.player(player).sendMessage(
Translatable.get("item_averages.item",
insert("amount", amount),
insert("item", item.toString().toLowerCase().replace("_", " "))));
});
- player.sendMessage(newText("-------------------------"));
+ MM.player(player).sendMessage(newText("-------------------------"));
} else {
- player.sendMessage(newText("-------------------------"));
- player.sendMessage(Translatable.get("item_averages.no_items"));
- player.sendMessage(newText("-------------------------"));
+ MM.player(player).sendMessage(newText("-------------------------"));
+ MM.player(player).sendMessage(Translatable.get("item_averages.no_items"));
+ MM.player(player).sendMessage(newText("-------------------------"));
}
}
diff --git a/src/main/java/me/teakivy/teakstweaks/packs/utilities/spawningspheres/SpawningSphere.java b/src/main/java/me/teakivy/teakstweaks/packs/utilities/spawningspheres/SpawningSphere.java
index 0a8a4c12..b93dd2d4 100644
--- a/src/main/java/me/teakivy/teakstweaks/packs/utilities/spawningspheres/SpawningSphere.java
+++ b/src/main/java/me/teakivy/teakstweaks/packs/utilities/spawningspheres/SpawningSphere.java
@@ -1,5 +1,6 @@
package me.teakivy.teakstweaks.packs.utilities.spawningspheres;
+import me.teakivy.teakstweaks.utils.MM;
import me.teakivy.teakstweaks.utils.lang.Translatable;
import org.bukkit.Bukkit;
import org.bukkit.Location;
@@ -79,7 +80,7 @@ private void summonStand(Location location, SphereIO sphereIO, boolean isCenter)
stand.addPotionEffect(new PotionEffect(PotionEffectType.GLOWING, 999999, 0));
if (isCenter) {
- stand.customName(Translatable.get("spawning_spheres.center_stand"));
+ stand.setCustomName(MM.toString(Translatable.get("spawning_spheres.center_stand")));
stand.setCustomNameVisible(true);
}
diff --git a/src/main/java/me/teakivy/teakstweaks/packs/utilities/spawningspheres/SphereType.java b/src/main/java/me/teakivy/teakstweaks/packs/utilities/spawningspheres/SphereType.java
index 09f6eb69..f1d6a026 100644
--- a/src/main/java/me/teakivy/teakstweaks/packs/utilities/spawningspheres/SphereType.java
+++ b/src/main/java/me/teakivy/teakstweaks/packs/utilities/spawningspheres/SphereType.java
@@ -5,6 +5,7 @@
import net.kyori.adventure.text.format.NamedTextColor;
import net.kyori.adventure.text.minimessage.MiniMessage;
import org.bukkit.Bukkit;
+import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.scoreboard.Scoreboard;
import org.bukkit.scoreboard.Team;
@@ -78,21 +79,21 @@ public Team getTeam() {
case RED -> {
if (sb.getTeam("sphere_red") == null) {
Team tTeam = sb.registerNewTeam("sphere_red");
- tTeam.color(NamedTextColor.RED);
+ tTeam.setColor(ChatColor.RED);
}
yield sb.getTeam("sphere_red");
}
case BLUE -> {
if (sb.getTeam("sphere_blue") == null) {
Team tTeam = sb.registerNewTeam("sphere_blue");
- tTeam.color(NamedTextColor.BLUE);
+ tTeam.setColor(ChatColor.BLUE);
}
yield sb.getTeam("sphere_blue");
}
case GREEN -> {
if (sb.getTeam("sphere_green") == null) {
Team tTeam = sb.registerNewTeam("sphere_green");
- tTeam.color(NamedTextColor.GREEN);
+ tTeam.setColor(ChatColor.GREEN);
}
yield sb.getTeam("sphere_green");
}
diff --git a/src/main/java/me/teakivy/teakstweaks/packs/utilities/spectatorconduitpower/ConduitPower.java b/src/main/java/me/teakivy/teakstweaks/packs/utilities/spectatorconduitpower/ConduitPower.java
index a7723cdc..e98a30ed 100644
--- a/src/main/java/me/teakivy/teakstweaks/packs/utilities/spectatorconduitpower/ConduitPower.java
+++ b/src/main/java/me/teakivy/teakstweaks/packs/utilities/spectatorconduitpower/ConduitPower.java
@@ -2,6 +2,7 @@
import me.teakivy.teakstweaks.packs.BasePack;
import me.teakivy.teakstweaks.packs.PackType;
+import me.teakivy.teakstweaks.utils.MM;
import org.bukkit.GameMode;
import org.bukkit.Material;
import org.bukkit.entity.Player;
@@ -21,7 +22,7 @@ public void changeGameMode(PlayerGameModeChangeEvent event) {
if (player.getGameMode().equals(GameMode.SPECTATOR)) {
if (player.hasPotionEffect(PotionEffectType.CONDUIT_POWER)) {
player.removePotionEffect(PotionEffectType.CONDUIT_POWER);
- player.sendMessage(getText("error.game_mode_changed"));
+ MM.player(player).sendMessage(getText("error.game_mode_changed"));
}
}
}
diff --git a/src/main/java/me/teakivy/teakstweaks/packs/utilities/spectatornightvision/NightVision.java b/src/main/java/me/teakivy/teakstweaks/packs/utilities/spectatornightvision/NightVision.java
index cb52efc1..6f356c37 100644
--- a/src/main/java/me/teakivy/teakstweaks/packs/utilities/spectatornightvision/NightVision.java
+++ b/src/main/java/me/teakivy/teakstweaks/packs/utilities/spectatornightvision/NightVision.java
@@ -2,6 +2,7 @@
import me.teakivy.teakstweaks.packs.BasePack;
import me.teakivy.teakstweaks.packs.PackType;
+import me.teakivy.teakstweaks.utils.MM;
import org.bukkit.GameMode;
import org.bukkit.Material;
import org.bukkit.entity.Player;
@@ -21,7 +22,7 @@ public void changeGameMode(PlayerGameModeChangeEvent event) {
if (player.getGameMode().equals(GameMode.SPECTATOR)) {
if (player.hasPotionEffect(PotionEffectType.NIGHT_VISION)) {
player.removePotionEffect(PotionEffectType.NIGHT_VISION);
- player.sendMessage(getText("error.game_mode_changed"));
+ MM.player(player).sendMessage(getText("error.game_mode_changed"));
}
}
}
diff --git a/src/main/java/me/teakivy/teakstweaks/utils/ItemSerializer.java b/src/main/java/me/teakivy/teakstweaks/utils/ItemSerializer.java
new file mode 100644
index 00000000..0a4797b4
--- /dev/null
+++ b/src/main/java/me/teakivy/teakstweaks/utils/ItemSerializer.java
@@ -0,0 +1,104 @@
+package me.teakivy.teakstweaks.utils;
+
+import com.google.common.base.Preconditions;
+import com.mojang.serialization.Dynamic;
+import net.minecraft.nbt.CompoundTag;
+import net.minecraft.nbt.NbtOps;
+import net.minecraft.server.MinecraftServer;
+import net.minecraft.util.datafix.fixes.References;
+import org.apache.commons.io.output.ByteArrayOutputStream;
+import org.bukkit.Bukkit;
+import org.bukkit.Material;
+import org.bukkit.craftbukkit.v1_21_R1.inventory.CraftItemStack;
+import org.bukkit.inventory.ItemStack;
+import org.bukkit.util.io.BukkitObjectInputStream;
+import org.bukkit.util.io.BukkitObjectOutputStream;
+
+import java.io.*;
+
+import static net.minecraft.nbt.NbtUtils.getDataVersion;
+
+public class ItemSerializer {
+
+// public static byte[] toByteArray(ItemStack item){
+// try {
+// ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
+// BukkitObjectOutputStream dataOutput = new BukkitObjectOutputStream(outputStream);
+//
+// // Write the size of the inventory
+// dataOutput.writeInt(1);
+//
+// // Save every element in the list
+//
+// dataOutput.writeObject(item);
+//
+// // Serialize that array
+// dataOutput.close();
+// return outputStream.toByteArray();
+// } catch (Exception e) {
+// throw new IllegalStateException("Unable to save item stacks.", e);
+// }
+// }
+//
+// public static ItemStack fromByteArray(byte[] bytes){
+// try {
+// ByteArrayInputStream inputStream = new ByteArrayInputStream(bytes);
+// BukkitObjectInputStream dataInput = new BukkitObjectInputStream(inputStream);
+//
+// ItemStack item = (ItemStack) dataInput.readObject();
+//
+// dataInput.close();
+// System.out.println(item);
+// return item;
+// } catch (ClassNotFoundException | IOException e) {
+// e.printStackTrace();
+// }
+//
+// return null;
+// }
+
+ public static byte[] toByteArray(ItemStack item) {
+ Preconditions.checkNotNull(item, "null cannot be serialized");
+ Preconditions.checkArgument(item.getType() != Material.AIR, "air cannot be serialized");
+
+ return serializeNbtToBytes((net.minecraft.nbt.CompoundTag) (CraftItemStack.asNMSCopy(item)).save(MinecraftServer.getServer().registryAccess()));
+ }
+ public static ItemStack fromByteArray(byte[] data) {
+ Preconditions.checkNotNull(data, "null cannot be deserialized");
+ Preconditions.checkArgument(data.length > 0, "cannot deserialize nothing");
+
+ net.minecraft.nbt.CompoundTag compound = deserializeNbtFromBytes(data);
+ final int dataVersion = compound.getInt("DataVersion");
+ compound = (net.minecraft.nbt.CompoundTag) MinecraftServer.getServer().fixerUpper.update(References.ITEM_STACK, new Dynamic<>(NbtOps.INSTANCE, compound), dataVersion, Bukkit.getUnsafe().getDataVersion()).getValue();
+ return CraftItemStack.asCraftMirror(net.minecraft.world.item.ItemStack.parse(MinecraftServer.getServer().registryAccess(), compound).orElseThrow());
+ }
+
+ private static byte[] serializeNbtToBytes(CompoundTag compound) {
+ compound.putInt("DataVersion", Bukkit.getUnsafe().getDataVersion());
+ java.io.ByteArrayOutputStream outputStream = new java.io.ByteArrayOutputStream();
+ try {
+ net.minecraft.nbt.NbtIo.writeCompressed(
+ compound,
+ outputStream
+ );
+ } catch (IOException ex) {
+ throw new RuntimeException(ex);
+ }
+ return outputStream.toByteArray();
+ }
+
+ private static net.minecraft.nbt.CompoundTag deserializeNbtFromBytes(byte[] data) {
+ net.minecraft.nbt.CompoundTag compound;
+ try {
+ compound = net.minecraft.nbt.NbtIo.readCompressed(
+ new java.io.ByteArrayInputStream(data), net.minecraft.nbt.NbtAccounter.unlimitedHeap()
+ );
+ } catch (IOException ex) {
+ throw new RuntimeException(ex);
+ }
+ int dataVersion = compound.getInt("DataVersion");
+ Preconditions.checkArgument(dataVersion <= Bukkit.getUnsafe().getDataVersion(), "Newer version! Server downgrades are not supported!");
+ return compound;
+ }
+
+}
diff --git a/src/main/java/me/teakivy/teakstweaks/utils/Logger.java b/src/main/java/me/teakivy/teakstweaks/utils/Logger.java
index dbcda53e..3c1fcb06 100644
--- a/src/main/java/me/teakivy/teakstweaks/utils/Logger.java
+++ b/src/main/java/me/teakivy/teakstweaks/utils/Logger.java
@@ -3,7 +3,6 @@
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.minimessage.MiniMessage;
import org.bukkit.Bukkit;
-import org.jetbrains.annotations.NotNull;
public class Logger {
/**
@@ -17,18 +16,17 @@ public static void log(LogLevel level, Component message, boolean toAdmins) {
String text = "[TeaksTweaks] " + getPrefix(level) + " " + MiniMessage.miniMessage().serialize(message);
- Bukkit.getConsoleSender().sendMessage(MiniMessage.miniMessage().deserialize(text));
+ MM.sender(Bukkit.getConsoleSender()).sendMessage(MiniMessage.miniMessage().deserialize(text));
if (!toAdmins) return;
- Bukkit.getOnlinePlayers().stream().filter(player -> player.hasPermission("teakstweaks.manage")).forEach(player -> player.sendMessage(message));
+ Bukkit.getOnlinePlayers().stream().filter(player -> player.hasPermission("teakstweaks.manage")).forEach(player -> MM.player(player).sendMessage(message));
}
public static void log(LogLevel level, String message, boolean toAdmins) {
log(level, MiniMessage.miniMessage().deserialize(message), toAdmins);
}
- @NotNull
private static String getPrefix(LogLevel level) {
String prefix = "";
switch (level) {
diff --git a/src/main/java/me/teakivy/teakstweaks/utils/MM.java b/src/main/java/me/teakivy/teakstweaks/utils/MM.java
new file mode 100644
index 00000000..c9e30a07
--- /dev/null
+++ b/src/main/java/me/teakivy/teakstweaks/utils/MM.java
@@ -0,0 +1,25 @@
+package me.teakivy.teakstweaks.utils;
+
+import me.teakivy.teakstweaks.TeaksTweaks;
+import net.kyori.adventure.audience.Audience;
+import net.kyori.adventure.platform.bukkit.BukkitAudiences;
+import net.kyori.adventure.platform.bukkit.BukkitComponentSerializer;
+import net.kyori.adventure.text.Component;
+import org.bukkit.command.CommandSender;
+import org.bukkit.entity.Player;
+
+public class MM {
+ public static Audience sender(CommandSender sender) {
+ BukkitAudiences bukkitAudiences = TeaksTweaks.getAdventure();
+ return bukkitAudiences.sender(sender);
+ }
+
+ public static Audience player(Player player) {
+ BukkitAudiences bukkitAudiences = TeaksTweaks.getAdventure();
+ return bukkitAudiences.player(player);
+ }
+
+ public static String toString(Component component) {
+ return BukkitComponentSerializer.legacy().serialize(component);
+ }
+}
diff --git a/src/main/java/me/teakivy/teakstweaks/utils/command/AbstractCommand.java b/src/main/java/me/teakivy/teakstweaks/utils/command/AbstractCommand.java
index 3107dc6a..5c0eb767 100644
--- a/src/main/java/me/teakivy/teakstweaks/utils/command/AbstractCommand.java
+++ b/src/main/java/me/teakivy/teakstweaks/utils/command/AbstractCommand.java
@@ -3,8 +3,11 @@
import me.teakivy.teakstweaks.TeaksTweaks;
import me.teakivy.teakstweaks.utils.ErrorType;
import me.teakivy.teakstweaks.utils.Logger;
+import me.teakivy.teakstweaks.utils.MM;
import me.teakivy.teakstweaks.utils.config.Config;
import me.teakivy.teakstweaks.utils.lang.Translatable;
+import net.kyori.adventure.audience.Audience;
+import net.kyori.adventure.platform.bukkit.BukkitAudiences;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.minimessage.MiniMessage;
import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder;
@@ -156,11 +159,13 @@ public void register() {
getCommandMap().register("", cmd);
cmd.setExecutor(this);
- Bukkit.getCommandMap().getKnownCommands().put(this.command, cmd);
+ getCommandMap().register(this.command, cmd);
+ // TODO finish command map & test
+// Bukkit.getCommandMap().getKnownCommands().put(this.command, cmd);
if (this.alias != null) {
for (String alias : this.alias) {
- Bukkit.getCommandMap().getKnownCommands().put(alias, cmd);
+// Bukkit.getCommandMap().getKnownCommands().put(alias, cmd);
}
}
@@ -241,7 +246,7 @@ public boolean onCommand(CommandSender sender, Command cmd, String label, String
if (arg.isRequired()) requiredArgs++;
}
if (args.length < requiredArgs) {
- sender.sendMessage(getUsage());
+ MM.sender(sender).sendMessage(getUsage());
return true;
}
@@ -269,7 +274,7 @@ public boolean onCommand(CommandSender sender, Command cmd, String label, String
* @param event The command event
*/
public void command(CommandEvent event) {
- sender.sendMessage(getUsage());
+ MM.sender(this.sender).sendMessage(getUsage());
}
/**
@@ -277,7 +282,7 @@ public void command(CommandEvent event) {
* @param event The command event
*/
public void playerCommand(PlayerCommandEvent event) {
- sender.sendMessage(getUsage());
+ MM.sender(this.sender).sendMessage(getUsage());
}
@@ -342,14 +347,14 @@ public List tabComplete(TabCompleteEvent event) {
public Player checkPlayer() {
if (sender instanceof Player) return (Player) sender;
- sender.sendMessage(ErrorType.NOT_PLAYER.m());
+ MM.sender(this.sender).sendMessage(ErrorType.NOT_PLAYER.m());
return null;
}
public boolean checkPermission() {
if (sender.hasPermission(permission)) return false;
- sender.sendMessage(ErrorType.MISSING_COMMAND_PERMISSION.m());
+ MM.sender(this.sender).sendMessage(ErrorType.MISSING_COMMAND_PERMISSION.m());
return true;
}
@@ -455,27 +460,27 @@ public boolean isOnCooldown() {
}
public void sendMessage(String key, TagResolver... resolvers) {
- this.sender.sendMessage(getText(key, resolvers));
+ MM.sender(this.sender).sendMessage(getText(key, resolvers));
}
public void sendError(String key, TagResolver... resolvers) {
- this.sender.sendMessage(getError(key, resolvers));
+ MM.sender(this.sender).sendMessage(getError(key, resolvers));
}
public void sendError(ErrorType errorType) {
- this.sender.sendMessage(errorType.m());
+ MM.sender(this.sender).sendMessage(errorType.m());
}
public void sendMessage(Component message) {
- this.sender.sendMessage(message);
+ MM.sender(this.sender).sendMessage(message);
}
public void sendString(String message) {
- this.sender.sendMessage(newText(message));
+ MM.sender(this.sender).sendMessage(newText(message));
}
public void sendText(String message, TagResolver... resolvers) {
- this.sender.sendMessage(newText(message, resolvers));
+ MM.sender(this.sender).sendMessage(newText(message, resolvers));
}
public TagResolver.Single insert(@Subst("") String key, String value) {
diff --git a/src/main/java/me/teakivy/teakstweaks/utils/gui/GUIListener.java b/src/main/java/me/teakivy/teakstweaks/utils/gui/GUIListener.java
index 3e502ae0..4f1d1100 100644
--- a/src/main/java/me/teakivy/teakstweaks/utils/gui/GUIListener.java
+++ b/src/main/java/me/teakivy/teakstweaks/utils/gui/GUIListener.java
@@ -1,5 +1,6 @@
package me.teakivy.teakstweaks.utils.gui;
+import me.teakivy.teakstweaks.utils.MM;
import me.teakivy.teakstweaks.utils.lang.Translatable;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
@@ -15,7 +16,7 @@ public class GUIListener implements Listener {
*/
@EventHandler
public void onInventoryClick(InventoryClickEvent event) {
- if (event.getView().title().equals(Translatable.get("mechanics.gui.title"))) {
+ if (event.getView().getTitle().equals(MM.toString(Translatable.get("mechanics.gui.title")))) {
event.setCancelled(true);
if (event.getRawSlot() == 53) {
// Next page button clicked
diff --git a/src/main/java/me/teakivy/teakstweaks/utils/gui/PaginatedGUI.java b/src/main/java/me/teakivy/teakstweaks/utils/gui/PaginatedGUI.java
index 5d2ba3a3..9b039bd5 100644
--- a/src/main/java/me/teakivy/teakstweaks/utils/gui/PaginatedGUI.java
+++ b/src/main/java/me/teakivy/teakstweaks/utils/gui/PaginatedGUI.java
@@ -1,5 +1,6 @@
package me.teakivy.teakstweaks.utils.gui;
+import me.teakivy.teakstweaks.utils.MM;
import me.teakivy.teakstweaks.utils.lang.Translatable;
import net.kyori.adventure.text.format.TextDecoration;
import org.bukkit.Bukkit;
@@ -74,12 +75,12 @@ private void update() {
// Add navigation buttons
ItemStack nextButton = new ItemStack(Material.ARROW);
ItemMeta nextMeta = nextButton.getItemMeta();
- nextMeta.displayName(Translatable.get("mechanics.gui.next_page").decoration(TextDecoration.ITALIC, false));
+ nextMeta.setDisplayName(MM.toString(Translatable.get("mechanics.gui.next_page").decoration(TextDecoration.ITALIC, false)));
nextButton.setItemMeta(nextMeta);
ItemStack prevButton = new ItemStack(Material.ARROW);
ItemMeta prevMeta = prevButton.getItemMeta();
- prevMeta.displayName(Translatable.get("mechanics.gui.previous_page").decoration(TextDecoration.ITALIC, false));
+ prevMeta.setDisplayName(MM.toString(Translatable.get("mechanics.gui.previous_page").decoration(TextDecoration.ITALIC, false)));
prevButton.setItemMeta(prevMeta);
if (page < items.size() / 45) inv.setItem(53, nextButton);
diff --git a/src/main/java/me/teakivy/teakstweaks/utils/update/UpdateJoinAlert.java b/src/main/java/me/teakivy/teakstweaks/utils/update/UpdateJoinAlert.java
index 324578dc..98e44c30 100644
--- a/src/main/java/me/teakivy/teakstweaks/utils/update/UpdateJoinAlert.java
+++ b/src/main/java/me/teakivy/teakstweaks/utils/update/UpdateJoinAlert.java
@@ -1,6 +1,7 @@
package me.teakivy.teakstweaks.utils.update;
import me.teakivy.teakstweaks.TeaksTweaks;
+import me.teakivy.teakstweaks.utils.MM;
import me.teakivy.teakstweaks.utils.config.Config;
import me.teakivy.teakstweaks.utils.lang.Translatable;
import net.kyori.adventure.text.Component;
@@ -33,7 +34,7 @@ public void onPlayerJoin(PlayerJoinEvent event) {
message = "" + message;
message = "" + message;
- player.sendMessage(MiniMessage.miniMessage().deserialize(message, Placeholder.parsed("version", UpdateChecker.getLatestVersion())));
+ MM.player(player).sendMessage(MiniMessage.miniMessage().deserialize(message, Placeholder.parsed("version", UpdateChecker.getLatestVersion())));
player.sendMessage("");
}
diff --git a/src/main/resources/lang/en.json b/src/main/resources/lang/en.json
index 890fe2e6..e2072f8f 100644
--- a/src/main/resources/lang/en.json
+++ b/src/main/resources/lang/en.json
@@ -4,8 +4,8 @@
"meta.language_name": "English",
"plugin.name": "Teak's Tweaks",
- "plugin.discord": "https://discord.gg/wfP4SkZx6s",
- "plugin.url": "https://modrinth.com/plugin/teaks-tweaks",
+ "plugin.discord": "https://discord.gg/wfP4SkZx6s",
+ "plugin.url": "https://modrinth.com/plugin/teaks-tweaks",
"plugin.author": "TeakIvy",
"#comment.errors": "Common Error Messages: (this is a comment and will never be shown in-game)",
diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml
index 3164f8bc..6175647d 100644
--- a/src/main/resources/plugin.yml
+++ b/src/main/resources/plugin.yml
@@ -1,7 +1,7 @@
name: TeaksTweaks
version: ${project.version}
main: me.teakivy.teakstweaks.TeaksTweaks
-api-version: 1.17
+api-version: 1.21
prefix: TeaksTweaks
authors: [ TeakIvy ]
description: 150+ Toggleable Tweaks & Features including Vanilla Tweaks as a plugin, and more!
@@ -123,23 +123,23 @@ permissions:
description: Execute /spectatoralts
default: op
- teakstweaks.afk.*:
+ teakstweaks.afk-display.*:
description: All AFK Permissions
default: op
children:
- teakstweaks.afk.command.afk: true
- teakstweaks.afk.command.afk.toggle: true
- teakstweaks.afk.command.afk.uninstall: true
+ teakstweaks.afk-display.command.afk: true
+ teakstweaks.afk-display.command.afk.toggle: true
+ teakstweaks.afk-display.command.afk.uninstall: true
- teakstweaks.afk.command.afk:
+ teakstweaks.afk-display.command.afk:
description: Execute /afk
default: true
- teakstweaks.afk.command.afk.toggle:
+ teakstweaks.afk-display.command.afk.toggle:
description: Execute /afk toggle
default: true
- teakstweaks.afk.command.afk.uninstall:
+ teakstweaks.afk-display.command.afk.uninstall:
description: Execute /afk uninstall
default: op
@@ -442,7 +442,7 @@ permissions:
teakstweaks.thunder-shrine.commmand.shrine.remove:
description: Execute /shrine remove
- default: op
+ default: opUp
teakstweaks.thunder-shrine.commmand.shrine.uninstall:
description: Execute /shrine uninstall