fallback to deprecated method for now to fix NoSuchMethodError

This commit is contained in:
xGinko 2024-03-31 15:01:35 +02:00
parent 2f95176cf0
commit b1994806c2
5 changed files with 12 additions and 21 deletions

View File

@ -158,7 +158,7 @@ public final class VillagerOptimizer extends JavaPlugin {
VillagerOptimizerModule.reloadModules(); VillagerOptimizerModule.reloadModules();
config.saveConfig(); config.saveConfig();
} catch (Exception exception) { } catch (Exception exception) {
logger.error("Error loading config!", exception); logger.error("Error during config reload!", exception);
} }
} }
@ -176,7 +176,7 @@ public final class VillagerOptimizer extends JavaPlugin {
if (logFancy) logger.error(Component.text("").style(GenericUtil.STYLE) if (logFancy) logger.error(Component.text("").style(GenericUtil.STYLE)
.append(Component.text("LANG ERROR").color(NamedTextColor.RED).decorate(TextDecoration.BOLD)) .append(Component.text("LANG ERROR").color(NamedTextColor.RED).decorate(TextDecoration.BOLD))
.append(Component.text("").style(GenericUtil.STYLE)), t); .append(Component.text("").style(GenericUtil.STYLE)), t);
else logger.error("Error loading language files!", t); else logger.error("Error while loading translation files!", t);
} }
} }
@ -191,7 +191,7 @@ public final class VillagerOptimizer extends JavaPlugin {
.map(matcher -> matcher.group(1)) .map(matcher -> matcher.group(1))
.collect(Collectors.toCollection(TreeSet::new)); .collect(Collectors.toCollection(TreeSet::new));
} catch (Throwable t) { } catch (Throwable t) {
logger.error("Failed querying for available translations!", t); logger.error("Failed while searching for available translations!", t);
return new TreeSet<>(); return new TreeSet<>();
} }
} }

View File

@ -5,6 +5,7 @@ import me.xginko.villageroptimizer.VillagerCache;
import me.xginko.villageroptimizer.VillagerOptimizer; import me.xginko.villageroptimizer.VillagerOptimizer;
import me.xginko.villageroptimizer.config.Config; import me.xginko.villageroptimizer.config.Config;
import me.xginko.villageroptimizer.modules.VillagerOptimizerModule; import me.xginko.villageroptimizer.modules.VillagerOptimizerModule;
import org.bukkit.Material;
import org.bukkit.entity.EntityType; import org.bukkit.entity.EntityType;
import org.bukkit.entity.Villager; import org.bukkit.entity.Villager;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
@ -13,10 +14,7 @@ import org.bukkit.event.HandlerList;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityDamageEvent; import org.bukkit.event.entity.EntityDamageEvent;
import java.util.Arrays; import java.util.*;
import java.util.HashSet;
import java.util.Objects;
import java.util.Set;
import java.util.stream.Collectors; import java.util.stream.Collectors;
public class PreventOptimizedDamage implements VillagerOptimizerModule, Listener { public class PreventOptimizedDamage implements VillagerOptimizerModule, Listener {
@ -49,7 +47,7 @@ public class PreventOptimizedDamage implements VillagerOptimizerModule, Listener
} }
}) })
.filter(Objects::nonNull) .filter(Objects::nonNull)
.collect(Collectors.toCollection(HashSet::new)); .collect(Collectors.toCollection(() -> EnumSet.noneOf(EntityDamageEvent.DamageCause.class)));
} }
@Override @Override

View File

@ -26,10 +26,7 @@ import org.bukkit.event.block.BlockBreakEvent;
import org.bukkit.event.block.BlockPlaceEvent; import org.bukkit.event.block.BlockPlaceEvent;
import java.time.Duration; import java.time.Duration;
import java.util.Arrays; import java.util.*;
import java.util.HashSet;
import java.util.Objects;
import java.util.Set;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -62,7 +59,7 @@ public class OptimizeByBlock implements VillagerOptimizerModule, Listener {
} }
}) })
.filter(Objects::nonNull) .filter(Objects::nonNull)
.collect(Collectors.toCollection(HashSet::new)); .collect(Collectors.toCollection(() -> EnumSet.noneOf(Material.class)));
this.cooldown_millis = TimeUnit.SECONDS.toMillis( this.cooldown_millis = TimeUnit.SECONDS.toMillis(
config.getInt(configPath() + ".optimize-cooldown-seconds", 600, config.getInt(configPath() + ".optimize-cooldown-seconds", 600,
"Cooldown in seconds until a villager can be optimized again by using specific blocks.\n" + "Cooldown in seconds until a villager can be optimized again by using specific blocks.\n" +

View File

@ -11,8 +11,8 @@ import me.xginko.villageroptimizer.events.VillagerUnoptimizeEvent;
import me.xginko.villageroptimizer.modules.VillagerOptimizerModule; import me.xginko.villageroptimizer.modules.VillagerOptimizerModule;
import me.xginko.villageroptimizer.utils.GenericUtil; import me.xginko.villageroptimizer.utils.GenericUtil;
import me.xginko.villageroptimizer.utils.KyoriUtil; import me.xginko.villageroptimizer.utils.KyoriUtil;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.TextReplacementConfig; import net.kyori.adventure.text.TextReplacementConfig;
import org.bukkit.ChatColor;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.entity.EntityType; import org.bukkit.entity.EntityType;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@ -81,6 +81,7 @@ public class OptimizeByNametag implements VillagerOptimizerModule, Listener {
return VillagerOptimizer.getConfiguration().getBoolean(configPath() + ".enable", true); return VillagerOptimizer.getConfiguration().getBoolean(configPath() + ".enable", true);
} }
@SuppressWarnings("deprecation")
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
private void onPlayerInteractEntity(PlayerInteractEntityEvent event) { private void onPlayerInteractEntity(PlayerInteractEntityEvent event) {
if (!event.getRightClicked().getType().equals(EntityType.VILLAGER)) return; if (!event.getRightClicked().getType().equals(EntityType.VILLAGER)) return;
@ -93,10 +94,7 @@ public class OptimizeByNametag implements VillagerOptimizerModule, Listener {
final ItemMeta meta = usedItem.getItemMeta(); final ItemMeta meta = usedItem.getItemMeta();
if (!meta.hasDisplayName()) return; if (!meta.hasDisplayName()) return;
// Get component name first, so we can manually name the villager when canceling the event to avoid item consumption. final String nameTagPlainText = ChatColor.stripColor(meta.getDisplayName());
final Component newVillagerName = meta.displayName();
assert newVillagerName != null; // Legitimate since we checked for hasDisplayName()
final String nameTagPlainText = GenericUtil.plainTextSerializer.serialize(newVillagerName);
final Villager villager = (Villager) event.getRightClicked(); final Villager villager = (Villager) event.getRightClicked();
final WrappedVillager wVillager = villagerCache.getOrAdd(villager); final WrappedVillager wVillager = villagerCache.getOrAdd(villager);
@ -112,8 +110,7 @@ public class OptimizeByNametag implements VillagerOptimizerModule, Listener {
if (!optimizeEvent.callEvent()) return; if (!optimizeEvent.callEvent()) return;
if (!consume_nametag) { if (!consume_nametag) {
event.setCancelled(true); usedItem.add();
villager.customName(newVillagerName);
} }
wVillager.setOptimizationType(optimizeEvent.getOptimizationType()); wVillager.setOptimizationType(optimizeEvent.getOptimizationType());

View File

@ -17,7 +17,6 @@ public class GenericUtil {
public static final @NotNull TextColor COLOR = TextColor.color(102,255,230); public static final @NotNull TextColor COLOR = TextColor.color(102,255,230);
public static final @NotNull Style STYLE = Style.style(COLOR, TextDecoration.BOLD); public static final @NotNull Style STYLE = Style.style(COLOR, TextDecoration.BOLD);
public static final @NotNull PlainTextComponentSerializer plainTextSerializer = PlainTextComponentSerializer.plainText();
public static @NotNull String formatDuration(@NotNull Duration duration) { public static @NotNull String formatDuration(@NotNull Duration duration) {
if (duration.isNegative()) duration = duration.negated(); if (duration.isNegative()) duration = duration.negated();