9
0
mirror of https://github.com/Xiao-MoMi/Custom-Fishing.git synced 2025-12-21 07:59:23 +00:00

update README

This commit is contained in:
XiaoMoMi
2024-08-26 01:11:35 +08:00
parent 63f445a7b3
commit ec6dcc85bb
27 changed files with 111 additions and 113 deletions

View File

@@ -11,9 +11,7 @@
![bStats Players](https://img.shields.io/bstats/players/16648) ![bStats Players](https://img.shields.io/bstats/players/16648)
![GitHub](https://img.shields.io/github/license/Xiao-MoMi/Custom-Fishing) ![GitHub](https://img.shields.io/github/license/Xiao-MoMi/Custom-Fishing)
CustomFishing is a Paper plugin that provides minigames and a powerful condition & action system for fishing. CustomFishing is a versatile Paper plugin designed to offer an extensive range of minigames and a robust condition and action system for fishing. Introducing a novel weight system concept, CustomFishing provides unparalleled customization opportunities while ensuring optimal performance. The plugin goes beyond standard features by allowing developers to register custom mechanics, actions, conditions, games, and even parsers for configuration file formats. This flexibility makes it a powerful API for developers, enabling the creation of innovative fishing experiences, such as lava fishing or void fishing, tailored to their specific needs.
With the new concept of weight system, CustomFishing brings unlimited customization possibilities and best performance.
## How to build ## How to build
#### Command Line #### Command Line

View File

@@ -49,7 +49,7 @@ public class FishingLootSpawnEvent extends PlayerEvent {
* @param entity The entity associated with the loot, if any * @param entity The entity associated with the loot, if any
*/ */
public FishingLootSpawnEvent(@NotNull Context<Player> context, Location location, Loot loot, @Nullable Entity entity) { public FishingLootSpawnEvent(@NotNull Context<Player> context, Location location, Loot loot, @Nullable Entity entity) {
super(context.getHolder()); super(context.holder());
this.entity = entity; this.entity = entity;
this.loot = loot; this.loot = loot;
this.location = location; this.location = location;

View File

@@ -50,7 +50,7 @@ public class FishingResultEvent extends PlayerEvent implements Cancellable {
* @param loot The loot involved * @param loot The loot involved
*/ */
public FishingResultEvent(@NotNull Context<Player> context, Result result, FishHook fishHook, Loot loot) { public FishingResultEvent(@NotNull Context<Player> context, Result result, FishHook fishHook, Loot loot) {
super(context.getHolder()); super(context.holder());
this.context = context; this.context = context;
this.result = result; this.result = result;
this.loot = loot; this.loot = loot;

View File

@@ -91,7 +91,7 @@ public interface Context<T> {
* *
* @return the holder object of type T. * @return the holder object of type T.
*/ */
T getHolder(); T holder();
/** /**
* Creates a player-specific context. * Creates a player-specific context.

View File

@@ -91,7 +91,7 @@ public final class PlayerContextImpl implements Context<Player> {
} }
@Override @Override
public Player getHolder() { public Player holder() {
return player; return player;
} }

View File

@@ -128,14 +128,14 @@ public class CustomFishingHook {
} }
// enable bait animation // enable bait animation
if (ConfigManager.baitAnimation() && !gears.getItem(FishingGears.GearType.BAIT).isEmpty()) { if (ConfigManager.baitAnimation() && !gears.getItem(FishingGears.GearType.BAIT).isEmpty()) {
this.baitAnimationTask = new BaitAnimationTask(plugin, context.getHolder(), hook, gears.getItem(FishingGears.GearType.BAIT).stream().findAny().get().right()); this.baitAnimationTask = new BaitAnimationTask(plugin, context.holder(), hook, gears.getItem(FishingGears.GearType.BAIT).stream().findAny().get().right());
} }
List<HookMechanic> enabledMechanics = mechanicProviders.apply(hook, context, effect); List<HookMechanic> enabledMechanics = mechanicProviders.apply(hook, context, effect);
this.task = plugin.getScheduler().sync().runRepeating(() -> { this.task = plugin.getScheduler().sync().runRepeating(() -> {
// destroy if hook is invalid // destroy if hook is invalid
if (!hook.isValid()) { if (!hook.isValid()) {
plugin.getFishingManager().destroyHook(context.getHolder().getUniqueId()); plugin.getFishingManager().destroyHook(context.holder().getUniqueId());
return; return;
} }
if (isPlayingGame()) { if (isPlayingGame()) {
@@ -229,7 +229,7 @@ public class CustomFishingHook {
* Ends the life of the custom fishing hook. * Ends the life of the custom fishing hook.
*/ */
public void destroy() { public void destroy() {
plugin.getFishingManager().destroyHook(context.getHolder().getUniqueId()); plugin.getFishingManager().destroyHook(context.holder().getUniqueId());
} }
/** /**
@@ -326,13 +326,13 @@ public class CustomFishingHook {
// auto fishing // auto fishing
private void scheduleNextFishing() { private void scheduleNextFishing() {
final Player player = context.getHolder(); final Player player = context.holder();
plugin.getScheduler().sync().runLater(() -> { plugin.getScheduler().sync().runLater(() -> {
if (player.isOnline()) { if (player.isOnline()) {
ItemStack item = player.getInventory().getItem(gears.getRodSlot() == HandSlot.MAIN ? EquipmentSlot.HAND : EquipmentSlot.OFF_HAND); ItemStack item = player.getInventory().getItem(gears.getRodSlot() == HandSlot.MAIN ? EquipmentSlot.HAND : EquipmentSlot.OFF_HAND);
if (item.getType() == Material.FISHING_ROD) { if (item.getType() == Material.FISHING_ROD) {
SparrowHeart.getInstance().useItem(player, gears.getRodSlot(), item); SparrowHeart.getInstance().useItem(player, gears.getRodSlot(), item);
SparrowHeart.getInstance().swingHand(context.getHolder(), gears.getRodSlot()); SparrowHeart.getInstance().swingHand(context.holder(), gears.getRodSlot());
} }
} }
}, 20, player.getLocation()); }, 20, player.getLocation());
@@ -373,7 +373,7 @@ public class CustomFishingHook {
gears.trigger(ActionTrigger.BITE, context); gears.trigger(ActionTrigger.BITE, context);
if (RequirementManager.isSatisfied(context, ConfigManager.autoFishingRequirements())) { if (RequirementManager.isSatisfied(context, ConfigManager.autoFishingRequirements())) {
handleSuccessfulFishing(); handleSuccessfulFishing();
SparrowHeart.getInstance().swingHand(context.getHolder(), gears.getRodSlot()); SparrowHeart.getInstance().swingHand(context.holder(), gears.getRodSlot());
destroy(); destroy();
scheduleNextFishing(); scheduleNextFishing();
return; return;
@@ -479,7 +479,7 @@ public class CustomFishingHook {
if (spawnEvent.skipActions()) if (spawnEvent.skipActions())
return; return;
if (item != null && item.isValid() && nextLoot.preventGrabbing()) { if (item != null && item.isValid() && nextLoot.preventGrabbing()) {
item.getPersistentDataContainer().set(Objects.requireNonNull(NamespacedKey.fromString("owner", plugin.getBoostrap())), PersistentDataType.STRING, context.getHolder().getName()); item.getPersistentDataContainer().set(Objects.requireNonNull(NamespacedKey.fromString("owner", plugin.getBoostrap())), PersistentDataType.STRING, context.holder().getName());
} }
doSuccessActions(); doSuccessActions();
}, (long) ConfigManager.multipleLootSpawnDelay() * i, hook.getLocation()); }, (long) ConfigManager.multipleLootSpawnDelay() * i, hook.getLocation());
@@ -513,24 +513,24 @@ public class CustomFishingHook {
if (competition != null && RequirementManager.isSatisfied(context, competition.getConfig().joinRequirements())) { if (competition != null && RequirementManager.isSatisfied(context, competition.getConfig().joinRequirements())) {
Double customScore = context.arg(ContextKeys.CUSTOM_SCORE); Double customScore = context.arg(ContextKeys.CUSTOM_SCORE);
if (customScore != null) { if (customScore != null) {
competition.refreshData(context.getHolder(), customScore); competition.refreshData(context.holder(), customScore);
context.arg(ContextKeys.SCORE_FORMATTED, String.format("%.2f", customScore)); context.arg(ContextKeys.SCORE_FORMATTED, String.format("%.2f", customScore));
context.arg(ContextKeys.SCORE, customScore); context.arg(ContextKeys.SCORE, customScore);
} else { } else {
double score = 0; double score = 0;
if (competition.getGoal() == CompetitionGoal.CATCH_AMOUNT) { if (competition.getGoal() == CompetitionGoal.CATCH_AMOUNT) {
score = 1; score = 1;
competition.refreshData(context.getHolder(), score); competition.refreshData(context.holder(), score);
} else if (competition.getGoal() == CompetitionGoal.MAX_SIZE || competition.getGoal() == CompetitionGoal.MIN_SIZE || competition.getGoal() == CompetitionGoal.TOTAL_SIZE) { } else if (competition.getGoal() == CompetitionGoal.MAX_SIZE || competition.getGoal() == CompetitionGoal.MIN_SIZE || competition.getGoal() == CompetitionGoal.TOTAL_SIZE) {
Float size = context.arg(ContextKeys.SIZE); Float size = context.arg(ContextKeys.SIZE);
if (size != null && size > 0) { if (size != null && size > 0) {
competition.refreshData(context.getHolder(), size); competition.refreshData(context.holder(), size);
} }
} else if (competition.getGoal() == CompetitionGoal.TOTAL_SCORE) { } else if (competition.getGoal() == CompetitionGoal.TOTAL_SCORE) {
score = nextLoot.score().evaluate(context); score = nextLoot.score().evaluate(context);
score = score * tempFinalEffect.scoreMultiplier() + tempFinalEffect.scoreAdder(); score = score * tempFinalEffect.scoreMultiplier() + tempFinalEffect.scoreAdder();
if (score != 0) { if (score != 0) {
competition.refreshData(context.getHolder(), score); competition.refreshData(context.holder(), score);
} }
} }
context.arg(ContextKeys.SCORE_FORMATTED, String.format("%.2f", score)); context.arg(ContextKeys.SCORE_FORMATTED, String.format("%.2f", score));
@@ -542,7 +542,7 @@ public class CustomFishingHook {
} }
String id = context.arg(ContextKeys.ID); String id = context.arg(ContextKeys.ID);
Player player = context.getHolder(); Player player = context.holder();
if (!nextLoot.disableStats()) { if (!nextLoot.disableStats()) {
plugin.getStorageManager().getOnlineUser(player.getUniqueId()).ifPresent( plugin.getStorageManager().getOnlineUser(player.getUniqueId()).ifPresent(

View File

@@ -154,7 +154,7 @@ public class FishingGears {
*/ */
public static BiConsumer<Context<Player>, FishingGears> defaultFishingGearsConsumers() { public static BiConsumer<Context<Player>, FishingGears> defaultFishingGearsConsumers() {
return (context, fishingGears) -> { return (context, fishingGears) -> {
Player player = context.getHolder(); Player player = context.holder();
PlayerInventory playerInventory = player.getInventory(); PlayerInventory playerInventory = player.getInventory();
ItemStack mainHandItem = playerInventory.getItemInMainHand(); ItemStack mainHandItem = playerInventory.getItemInMainHand();
ItemStack offHandItem = playerInventory.getItemInOffHand(); ItemStack offHandItem = playerInventory.getItemInOffHand();
@@ -257,12 +257,12 @@ public class FishingGears {
((context, itemStack) -> {}), ((context, itemStack) -> {}),
((context, itemStack) -> {}), ((context, itemStack) -> {}),
((context, itemStack) -> { ((context, itemStack) -> {
if (context.getHolder().getGameMode() != GameMode.CREATIVE) if (context.holder().getGameMode() != GameMode.CREATIVE)
BukkitCustomFishingPlugin.getInstance().getItemManager().increaseDamage(context.getHolder(), itemStack, 1, false); BukkitCustomFishingPlugin.getInstance().getItemManager().increaseDamage(context.holder(), itemStack, 1, false);
}), }),
((context, itemStack) -> { ((context, itemStack) -> {
if (context.getHolder().getGameMode() != GameMode.CREATIVE) if (context.holder().getGameMode() != GameMode.CREATIVE)
BukkitCustomFishingPlugin.getInstance().getItemManager().increaseDamage(context.getHolder(), itemStack, 1, false); BukkitCustomFishingPlugin.getInstance().getItemManager().increaseDamage(context.holder(), itemStack, 1, false);
}), }),
((context, itemStack) -> {}), ((context, itemStack) -> {}),
((context, itemStack) -> {}), ((context, itemStack) -> {}),
@@ -272,7 +272,7 @@ public class FishingGears {
public static final GearType BAIT = new GearType(MechanicType.BAIT, public static final GearType BAIT = new GearType(MechanicType.BAIT,
((context, itemStack) -> { ((context, itemStack) -> {
if (context.getHolder().getGameMode() != GameMode.CREATIVE) if (context.holder().getGameMode() != GameMode.CREATIVE)
itemStack.setAmount(itemStack.getAmount() - 1); itemStack.setAmount(itemStack.getAmount() - 1);
}), }),
((context, itemStack) -> {}), ((context, itemStack) -> {}),
@@ -290,7 +290,7 @@ public class FishingGears {
((context, itemStack) -> {}), ((context, itemStack) -> {}),
((context, itemStack) -> {}), ((context, itemStack) -> {}),
((context, itemStack) -> { ((context, itemStack) -> {
if (context.getHolder().getGameMode() != GameMode.CREATIVE) { if (context.holder().getGameMode() != GameMode.CREATIVE) {
Item<ItemStack> wrapped = BukkitCustomFishingPlugin.getInstance().getItemManager().wrap(itemStack); Item<ItemStack> wrapped = BukkitCustomFishingPlugin.getInstance().getItemManager().wrap(itemStack);
String hookID = (String) wrapped.getTag("CustomFishing", "hook_id").orElseThrow(() -> new RuntimeException("This error should never occur")); String hookID = (String) wrapped.getTag("CustomFishing", "hook_id").orElseThrow(() -> new RuntimeException("This error should never occur"));
wrapped.getTag("CustomFishing", "hook_max_damage").ifPresent(max -> { wrapped.getTag("CustomFishing", "hook_max_damage").ifPresent(max -> {
@@ -318,7 +318,7 @@ public class FishingGears {
} }
newLore.addAll(durabilityLore); newLore.addAll(durabilityLore);
wrapped.lore(newLore); wrapped.lore(newLore);
BukkitCustomFishingPlugin.getInstance().getSenderFactory().getAudience(context.getHolder()).playSound(Sound.sound(Key.key("minecraft:entity.item.break"), Sound.Source.PLAYER, 1, 1)); BukkitCustomFishingPlugin.getInstance().getSenderFactory().getAudience(context.holder()).playSound(Sound.sound(Key.key("minecraft:entity.item.break"), Sound.Source.PLAYER, 1, 1));
} else { } else {
wrapped.setTag(hookDamage, "CustomFishing", "hook_damage"); wrapped.setTag(hookDamage, "CustomFishing", "hook_damage");
HookConfig hookConfig = BukkitCustomFishingPlugin.getInstance().getHookManager().getHook(hookID).orElseThrow(); HookConfig hookConfig = BukkitCustomFishingPlugin.getInstance().getHookManager().getHook(hookID).orElseThrow();
@@ -350,7 +350,7 @@ public class FishingGears {
} }
}), }),
((context, itemStack) -> { ((context, itemStack) -> {
if (context.getHolder().getGameMode() != GameMode.CREATIVE) { if (context.holder().getGameMode() != GameMode.CREATIVE) {
Item<ItemStack> wrapped = BukkitCustomFishingPlugin.getInstance().getItemManager().wrap(itemStack); Item<ItemStack> wrapped = BukkitCustomFishingPlugin.getInstance().getItemManager().wrap(itemStack);
String hookID = (String) wrapped.getTag("CustomFishing", "hook_id").orElseThrow(() -> new RuntimeException("This error should never occur")); String hookID = (String) wrapped.getTag("CustomFishing", "hook_id").orElseThrow(() -> new RuntimeException("This error should never occur"));
wrapped.getTag("CustomFishing", "hook_max_damage").ifPresent(max -> { wrapped.getTag("CustomFishing", "hook_max_damage").ifPresent(max -> {
@@ -361,7 +361,7 @@ public class FishingGears {
wrapped.removeTag("CustomFishing", "hook_id"); wrapped.removeTag("CustomFishing", "hook_id");
wrapped.removeTag("CustomFishing", "hook_stack"); wrapped.removeTag("CustomFishing", "hook_stack");
wrapped.removeTag("CustomFishing", "hook_max_damage"); wrapped.removeTag("CustomFishing", "hook_max_damage");
BukkitCustomFishingPlugin.getInstance().getSenderFactory().getAudience(context.getHolder()).playSound(Sound.sound(Key.key("minecraft:entity.item.break"), Sound.Source.PLAYER, 1, 1)); BukkitCustomFishingPlugin.getInstance().getSenderFactory().getAudience(context.holder()).playSound(Sound.sound(Key.key("minecraft:entity.item.break"), Sound.Source.PLAYER, 1, 1));
} else { } else {
wrapped.setTag(hookDamage, "CustomFishing", "hook_damage"); wrapped.setTag(hookDamage, "CustomFishing", "hook_damage");
HookConfig hookConfig = BukkitCustomFishingPlugin.getInstance().getHookManager().getHook(hookID).orElseThrow(); HookConfig hookConfig = BukkitCustomFishingPlugin.getInstance().getHookManager().getHook(hookID).orElseThrow();

View File

@@ -94,7 +94,7 @@ public class LavaFishingMechanic implements HookMechanic {
@Override @Override
public void start(Effect finalEffect) { public void start(Effect finalEffect) {
EventUtils.fireAndForget(new FishingHookStateEvent(context.getHolder(), hook, FishingHookStateEvent.State.LAND)); EventUtils.fireAndForget(new FishingHookStateEvent(context.holder(), hook, FishingHookStateEvent.State.LAND));
this.setWaitTime(finalEffect); this.setWaitTime(finalEffect);
this.task = BukkitCustomFishingPlugin.getInstance().getScheduler().sync().runRepeating(() -> { this.task = BukkitCustomFishingPlugin.getInstance().getScheduler().sync().runRepeating(() -> {
float lavaHeight = 0F; float lavaHeight = 0F;
@@ -135,7 +135,7 @@ public class LavaFishingMechanic implements HookMechanic {
this.setTempEntityProperties(this.tempEntity); this.setTempEntityProperties(this.tempEntity);
this.hook.setHookedEntity(this.tempEntity); this.hook.setHookedEntity(this.tempEntity);
if (!firstTime) { if (!firstTime) {
EventUtils.fireAndForget(new FishingHookStateEvent(context.getHolder(), hook, FishingHookStateEvent.State.ESCAPE)); EventUtils.fireAndForget(new FishingHookStateEvent(context.holder(), hook, FishingHookStateEvent.State.ESCAPE));
} }
firstTime = false; firstTime = false;
} }
@@ -168,7 +168,7 @@ public class LavaFishingMechanic implements HookMechanic {
this.nibble = RandomUtils.generateRandomInt(20, 40); this.nibble = RandomUtils.generateRandomInt(20, 40);
this.hooked = true; this.hooked = true;
hook.getWorld().playSound(hook.getLocation(), Sound.ENTITY_GENERIC_EXTINGUISH_FIRE, 0.25F, 1.0F + (RandomUtils.generateRandomFloat(0,1)-RandomUtils.generateRandomFloat(0,1)) * 0.4F); hook.getWorld().playSound(hook.getLocation(), Sound.ENTITY_GENERIC_EXTINGUISH_FIRE, 0.25F, 1.0F + (RandomUtils.generateRandomFloat(0,1)-RandomUtils.generateRandomFloat(0,1)) * 0.4F);
EventUtils.fireAndForget(new FishingHookStateEvent(context.getHolder(), hook, FishingHookStateEvent.State.BITE)); EventUtils.fireAndForget(new FishingHookStateEvent(context.holder(), hook, FishingHookStateEvent.State.BITE));
if (this.tempEntity != null && this.tempEntity.isValid()) { if (this.tempEntity != null && this.tempEntity.isValid()) {
this.tempEntity.remove(); this.tempEntity.remove();
} }
@@ -180,7 +180,7 @@ public class LavaFishingMechanic implements HookMechanic {
if (this.timeUntilLured <= 0) { if (this.timeUntilLured <= 0) {
this.fishAngle = RandomUtils.generateRandomFloat(0F, 360F); this.fishAngle = RandomUtils.generateRandomFloat(0F, 360F);
this.timeUntilHooked = RandomUtils.generateRandomInt(20, 80); this.timeUntilHooked = RandomUtils.generateRandomInt(20, 80);
EventUtils.fireAndForget(new FishingHookStateEvent(context.getHolder(), hook, FishingHookStateEvent.State.LURE)); EventUtils.fireAndForget(new FishingHookStateEvent(context.holder(), hook, FishingHookStateEvent.State.LURE));
} }
} else { } else {
setWaitTime(finalEffect); setWaitTime(finalEffect);

View File

@@ -66,7 +66,7 @@ public class VanillaMechanic implements HookMechanic {
@Override @Override
public void start(Effect finalEffect) { public void start(Effect finalEffect) {
EventUtils.fireAndForget(new FishingHookStateEvent(context.getHolder(), hook, FishingHookStateEvent.State.LAND)); EventUtils.fireAndForget(new FishingHookStateEvent(context.holder(), hook, FishingHookStateEvent.State.LAND));
setWaitTime(hook, finalEffect); setWaitTime(hook, finalEffect);
this.task = BukkitCustomFishingPlugin.getInstance().getScheduler().sync().runRepeating(() -> { this.task = BukkitCustomFishingPlugin.getInstance().getScheduler().sync().runRepeating(() -> {
if (isHooked) { if (isHooked) {
@@ -108,7 +108,7 @@ public class VanillaMechanic implements HookMechanic {
} }
if (ConfigManager.antiAutoFishingMod()) { if (ConfigManager.antiAutoFishingMod()) {
BukkitCustomFishingPlugin.getInstance().getScheduler().sync().runLater(() -> { BukkitCustomFishingPlugin.getInstance().getScheduler().sync().runLater(() -> {
Player player = context.getHolder(); Player player = context.holder();
if (player.isOnline() && hook.isValid()) { if (player.isOnline() && hook.isValid()) {
AntiAutoFishing.prevent(player, hook); AntiAutoFishing.prevent(player, hook);
} }
@@ -149,10 +149,10 @@ public class VanillaMechanic implements HookMechanic {
} }
public void onBite() { public void onBite() {
EventUtils.fireAndForget(new FishingHookStateEvent(context.getHolder(), hook, FishingHookStateEvent.State.BITE)); EventUtils.fireAndForget(new FishingHookStateEvent(context.holder(), hook, FishingHookStateEvent.State.BITE));
} }
public void onFailedAttempt() { public void onFailedAttempt() {
EventUtils.fireAndForget(new FishingHookStateEvent(context.getHolder(), hook, FishingHookStateEvent.State.ESCAPE)); EventUtils.fireAndForget(new FishingHookStateEvent(context.holder(), hook, FishingHookStateEvent.State.ESCAPE));
} }
} }

View File

@@ -79,7 +79,7 @@ public class VoidFishingMechanic implements HookMechanic {
@Override @Override
public void start(Effect finalEffect) { public void start(Effect finalEffect) {
EventUtils.fireAndForget(new FishingHookStateEvent(context.getHolder(), hook, FishingHookStateEvent.State.LAND)); EventUtils.fireAndForget(new FishingHookStateEvent(context.holder(), hook, FishingHookStateEvent.State.LAND));
this.setWaitTime(finalEffect); this.setWaitTime(finalEffect);
this.tempEntity = hook.getWorld().spawn(hook.getLocation().clone().subtract(0,1,0), ArmorStand.class); this.tempEntity = hook.getWorld().spawn(hook.getLocation().clone().subtract(0,1,0), ArmorStand.class);
this.setTempEntityProperties(this.tempEntity); this.setTempEntityProperties(this.tempEntity);
@@ -103,7 +103,7 @@ public class VoidFishingMechanic implements HookMechanic {
this.timeUntilLured = 0; this.timeUntilLured = 0;
this.timeUntilHooked = 0; this.timeUntilHooked = 0;
this.hooked = false; this.hooked = false;
EventUtils.fireAndForget(new FishingHookStateEvent(context.getHolder(), hook, FishingHookStateEvent.State.ESCAPE)); EventUtils.fireAndForget(new FishingHookStateEvent(context.holder(), hook, FishingHookStateEvent.State.ESCAPE));
} }
} else { } else {
float f; float f;
@@ -134,7 +134,7 @@ public class VoidFishingMechanic implements HookMechanic {
this.nibble = RandomUtils.generateRandomInt(20, 40); this.nibble = RandomUtils.generateRandomInt(20, 40);
this.hooked = true; this.hooked = true;
hook.getWorld().playSound(hook.getLocation(), Sound.ITEM_TRIDENT_THUNDER, 0.25F, 1.0F + (RandomUtils.generateRandomFloat(0,1)-RandomUtils.generateRandomFloat(0,1)) * 0.4F); hook.getWorld().playSound(hook.getLocation(), Sound.ITEM_TRIDENT_THUNDER, 0.25F, 1.0F + (RandomUtils.generateRandomFloat(0,1)-RandomUtils.generateRandomFloat(0,1)) * 0.4F);
EventUtils.fireAndForget(new FishingHookStateEvent(context.getHolder(), hook, FishingHookStateEvent.State.BITE)); EventUtils.fireAndForget(new FishingHookStateEvent(context.holder(), hook, FishingHookStateEvent.State.BITE));
} }
} else if (timeUntilLured > 0) { } else if (timeUntilLured > 0) {
if (!freeze) { if (!freeze) {
@@ -159,7 +159,7 @@ public class VoidFishingMechanic implements HookMechanic {
if (this.timeUntilLured <= 0) { if (this.timeUntilLured <= 0) {
this.fishAngle = RandomUtils.generateRandomFloat(0F, 360F); this.fishAngle = RandomUtils.generateRandomFloat(0F, 360F);
this.timeUntilHooked = RandomUtils.generateRandomInt(20, 80); this.timeUntilHooked = RandomUtils.generateRandomInt(20, 80);
EventUtils.fireAndForget(new FishingHookStateEvent(context.getHolder(), hook, FishingHookStateEvent.State.LURE)); EventUtils.fireAndForget(new FishingHookStateEvent(context.holder(), hook, FishingHookStateEvent.State.LURE));
} }
} else { } else {
setWaitTime(finalEffect); setWaitTime(finalEffect);

View File

@@ -174,7 +174,7 @@ public abstract class AbstractGamingPlayer implements GamingPlayer, Runnable {
*/ */
@Override @Override
public Player getPlayer() { public Player getPlayer() {
return hook.getContext().getHolder(); return hook.getContext().holder();
} }
/** /**

View File

@@ -35,7 +35,7 @@ public class PlaceholderTextValueImpl<T> implements TextValue<T> {
public String render(Context<T> context) { public String render(Context<T> context) {
Map<String, String> replacements = context.placeholderMap(); Map<String, String> replacements = context.placeholderMap();
String text; String text;
if (context.getHolder() instanceof OfflinePlayer player) text = BukkitPlaceholderManager.getInstance().parse(player, raw, replacements); if (context.holder() instanceof OfflinePlayer player) text = BukkitPlaceholderManager.getInstance().parse(player, raw, replacements);
else text = BukkitPlaceholderManager.getInstance().parse(null, raw, replacements); else text = BukkitPlaceholderManager.getInstance().parse(null, raw, replacements);
return text; return text;
} }

View File

@@ -50,7 +50,7 @@ public interface TextValue<T> {
* @return the rendered text as a String * @return the rendered text as a String
*/ */
default String render(Context<T> context, boolean parseRawPlaceholders) { default String render(Context<T> context, boolean parseRawPlaceholders) {
if (!parseRawPlaceholders || !(context.getHolder() instanceof OfflinePlayer player)) return render(context); if (!parseRawPlaceholders || !(context.holder() instanceof OfflinePlayer player)) return render(context);
return PlaceholderAPIUtils.parse(player, render(context)); return PlaceholderAPIUtils.parse(player, render(context));
} }

View File

@@ -26,6 +26,7 @@
package net.momirealms.customfishing.common.dependency; package net.momirealms.customfishing.common.dependency;
import net.momirealms.customfishing.common.dependency.relocation.Relocation; import net.momirealms.customfishing.common.dependency.relocation.Relocation;
import net.momirealms.customfishing.common.plugin.CustomFishingProperties;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import java.security.MessageDigest; import java.security.MessageDigest;

View File

@@ -161,7 +161,7 @@ public class DependencyManagerImpl implements DependencyManager {
int i = 0; int i = 0;
while (i < repository.size()) { while (i < repository.size()) {
try { try {
plugin.getPluginLogger().info("Downloading dependency(" + fileName + ") from " + repository.get(i).getUrl() + dependency.getMavenRepoPath()); plugin.getPluginLogger().info("Downloading dependency(" + fileName + ")[" + repository.get(i).getUrl() + dependency.getMavenRepoPath() + "]");
repository.get(i).download(dependency, file); repository.get(i).download(dependency, file);
plugin.getPluginLogger().info("Successfully downloaded " + fileName); plugin.getPluginLogger().info("Successfully downloaded " + fileName);
return file; return file;

View File

@@ -15,7 +15,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
package net.momirealms.customfishing.common.dependency; package net.momirealms.customfishing.common.plugin;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;

View File

@@ -48,7 +48,7 @@ public class ZaphkielItemProvider implements ItemProvider {
@Override @Override
public String itemID(@NotNull ItemStack itemStack) { public String itemID(@NotNull ItemStack itemStack) {
if (itemStack == null || itemStack.getType() == Material.AIR) return null; if (itemStack.getType() == Material.AIR) return null;
return zapAPI.getItemHandler().getItemId(itemStack); return zapAPI.getItemHandler().getItemId(itemStack);
} }
} }

View File

@@ -64,9 +64,9 @@ public class WorldGuardRegion {
return context -> { return context -> {
Location location; Location location;
if (other) { if (other) {
location = Optional.ofNullable(context.arg(ContextKeys.OTHER_LOCATION)).orElse(context.getHolder().getLocation()); location = Optional.ofNullable(context.arg(ContextKeys.OTHER_LOCATION)).orElse(context.holder().getLocation());
} else { } else {
location = context.getHolder().getLocation(); location = context.holder().getLocation();
} }
RegionManager regionManager = WorldGuard.getInstance().getPlatform().getRegionContainer().get(BukkitAdapter.adapt(location.getWorld())); RegionManager regionManager = WorldGuard.getInstance().getPlatform().getRegionContainer().get(BukkitAdapter.adapt(location.getWorld()));
if (regionManager != null) { if (regionManager != null) {

View File

@@ -47,7 +47,6 @@ import net.momirealms.customfishing.bukkit.sender.BukkitSenderFactory;
import net.momirealms.customfishing.bukkit.statistic.BukkitStatisticsManager; import net.momirealms.customfishing.bukkit.statistic.BukkitStatisticsManager;
import net.momirealms.customfishing.bukkit.storage.BukkitStorageManager; import net.momirealms.customfishing.bukkit.storage.BukkitStorageManager;
import net.momirealms.customfishing.bukkit.totem.BukkitTotemManager; import net.momirealms.customfishing.bukkit.totem.BukkitTotemManager;
import net.momirealms.customfishing.common.dependency.CustomFishingProperties;
import net.momirealms.customfishing.common.dependency.Dependency; import net.momirealms.customfishing.common.dependency.Dependency;
import net.momirealms.customfishing.common.dependency.DependencyManagerImpl; import net.momirealms.customfishing.common.dependency.DependencyManagerImpl;
import net.momirealms.customfishing.common.helper.VersionHelper; import net.momirealms.customfishing.common.helper.VersionHelper;

View File

@@ -172,8 +172,8 @@ public class BukkitActionManager implements ActionManager<Player> {
List<String> messages = ListUtils.toList(args); List<String> messages = ListUtils.toList(args);
return context -> { return context -> {
if (Math.random() > chance) return; if (Math.random() > chance) return;
List<String> replaced = plugin.getPlaceholderManager().parse(context.getHolder(), messages, context.placeholderMap()); List<String> replaced = plugin.getPlaceholderManager().parse(context.holder(), messages, context.placeholderMap());
Audience audience = plugin.getSenderFactory().getAudience(context.getHolder()); Audience audience = plugin.getSenderFactory().getAudience(context.holder());
for (String text : replaced) { for (String text : replaced) {
audience.sendMessage(AdventureHelper.miniMessage(text)); audience.sendMessage(AdventureHelper.miniMessage(text));
} }
@@ -184,8 +184,8 @@ public class BukkitActionManager implements ActionManager<Player> {
return context -> { return context -> {
if (Math.random() > chance) return; if (Math.random() > chance) return;
String random = messages.get(RandomUtils.generateRandomInt(0, messages.size() - 1)); String random = messages.get(RandomUtils.generateRandomInt(0, messages.size() - 1));
random = BukkitPlaceholderManager.getInstance().parse(context.getHolder(), random, context.placeholderMap()); random = BukkitPlaceholderManager.getInstance().parse(context.holder(), random, context.placeholderMap());
Audience audience = plugin.getSenderFactory().getAudience(context.getHolder()); Audience audience = plugin.getSenderFactory().getAudience(context.holder());
audience.sendMessage(AdventureHelper.miniMessage(random)); audience.sendMessage(AdventureHelper.miniMessage(random));
}; };
}); });
@@ -193,7 +193,7 @@ public class BukkitActionManager implements ActionManager<Player> {
List<String> messages = ListUtils.toList(args); List<String> messages = ListUtils.toList(args);
return context -> { return context -> {
if (Math.random() > chance) return; if (Math.random() > chance) return;
List<String> replaced = plugin.getPlaceholderManager().parse(context.getHolder(), messages, context.placeholderMap()); List<String> replaced = plugin.getPlaceholderManager().parse(context.holder(), messages, context.placeholderMap());
for (Player player : Bukkit.getOnlinePlayers()) { for (Player player : Bukkit.getOnlinePlayers()) {
Audience audience = plugin.getSenderFactory().getAudience(player); Audience audience = plugin.getSenderFactory().getAudience(player);
for (String text : replaced) { for (String text : replaced) {
@@ -209,7 +209,7 @@ public class BukkitActionManager implements ActionManager<Player> {
return context -> { return context -> {
if (Math.random() > chance) return; if (Math.random() > chance) return;
double realRange = range.evaluate(context); double realRange = range.evaluate(context);
Player owner = context.getHolder(); Player owner = context.holder();
Location location = requireNonNull(context.arg(ContextKeys.LOCATION)); Location location = requireNonNull(context.arg(ContextKeys.LOCATION));
for (Player player : location.getWorld().getPlayers()) { for (Player player : location.getWorld().getPlayers()) {
if (LocationUtils.getDistance(player.getLocation(), location) <= realRange) { if (LocationUtils.getDistance(player.getLocation(), location) <= realRange) {
@@ -238,7 +238,7 @@ public class BukkitActionManager implements ActionManager<Player> {
List<String> commands = ListUtils.toList(args); List<String> commands = ListUtils.toList(args);
return context -> { return context -> {
if (Math.random() > chance) return; if (Math.random() > chance) return;
List<String> replaced = BukkitPlaceholderManager.getInstance().parse(context.getHolder(), commands, context.placeholderMap()); List<String> replaced = BukkitPlaceholderManager.getInstance().parse(context.holder(), commands, context.placeholderMap());
plugin.getScheduler().sync().run(() -> { plugin.getScheduler().sync().run(() -> {
for (String text : replaced) { for (String text : replaced) {
Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), text); Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), text);
@@ -250,12 +250,12 @@ public class BukkitActionManager implements ActionManager<Player> {
List<String> commands = ListUtils.toList(args); List<String> commands = ListUtils.toList(args);
return context -> { return context -> {
if (Math.random() > chance) return; if (Math.random() > chance) return;
List<String> replaced = BukkitPlaceholderManager.getInstance().parse(context.getHolder(), commands, context.placeholderMap()); List<String> replaced = BukkitPlaceholderManager.getInstance().parse(context.holder(), commands, context.placeholderMap());
plugin.getScheduler().sync().run(() -> { plugin.getScheduler().sync().run(() -> {
for (String text : replaced) { for (String text : replaced) {
context.getHolder().performCommand(text); context.holder().performCommand(text);
} }
}, context.getHolder().getLocation()); }, context.holder().getLocation());
}; };
}); });
registerAction("random-command", (args, chance) -> { registerAction("random-command", (args, chance) -> {
@@ -263,7 +263,7 @@ public class BukkitActionManager implements ActionManager<Player> {
return context -> { return context -> {
if (Math.random() > chance) return; if (Math.random() > chance) return;
String random = commands.get(ThreadLocalRandom.current().nextInt(commands.size())); String random = commands.get(ThreadLocalRandom.current().nextInt(commands.size()));
random = BukkitPlaceholderManager.getInstance().parse(context.getHolder(), random, context.placeholderMap()); random = BukkitPlaceholderManager.getInstance().parse(context.holder(), random, context.placeholderMap());
String finalRandom = random; String finalRandom = random;
plugin.getScheduler().sync().run(() -> { plugin.getScheduler().sync().run(() -> {
Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), finalRandom); Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), finalRandom);
@@ -276,7 +276,7 @@ public class BukkitActionManager implements ActionManager<Player> {
MathValue<Player> range = MathValue.auto(section.get("range")); MathValue<Player> range = MathValue.auto(section.get("range"));
return context -> { return context -> {
if (Math.random() > chance) return; if (Math.random() > chance) return;
Player owner = context.getHolder(); Player owner = context.holder();
double realRange = range.evaluate(context); double realRange = range.evaluate(context);
Location location = requireNonNull(context.arg(ContextKeys.LOCATION)); Location location = requireNonNull(context.arg(ContextKeys.LOCATION));
for (Player player : location.getWorld().getPlayers()) { for (Player player : location.getWorld().getPlayers()) {
@@ -299,7 +299,7 @@ public class BukkitActionManager implements ActionManager<Player> {
private void registerCloseInvAction() { private void registerCloseInvAction() {
registerAction("close-inv", (args, chance) -> condition -> { registerAction("close-inv", (args, chance) -> condition -> {
if (Math.random() > chance) return; if (Math.random() > chance) return;
condition.getHolder().closeInventory(); condition.holder().closeInventory();
}); });
} }
@@ -308,8 +308,8 @@ public class BukkitActionManager implements ActionManager<Player> {
String text = (String) args; String text = (String) args;
return context -> { return context -> {
if (Math.random() > chance) return; if (Math.random() > chance) return;
Audience audience = plugin.getSenderFactory().getAudience(context.getHolder()); Audience audience = plugin.getSenderFactory().getAudience(context.holder());
Component component = AdventureHelper.miniMessage(plugin.getPlaceholderManager().parse(context.getHolder(), text, context.placeholderMap())); Component component = AdventureHelper.miniMessage(plugin.getPlaceholderManager().parse(context.holder(), text, context.placeholderMap()));
audience.sendActionBar(component); audience.sendActionBar(component);
}; };
}); });
@@ -318,8 +318,8 @@ public class BukkitActionManager implements ActionManager<Player> {
return context -> { return context -> {
if (Math.random() > chance) return; if (Math.random() > chance) return;
String random = texts.get(RandomUtils.generateRandomInt(0, texts.size() - 1)); String random = texts.get(RandomUtils.generateRandomInt(0, texts.size() - 1));
random = plugin.getPlaceholderManager().parse(context.getHolder(), random, context.placeholderMap()); random = plugin.getPlaceholderManager().parse(context.holder(), random, context.placeholderMap());
Audience audience = plugin.getSenderFactory().getAudience(context.getHolder()); Audience audience = plugin.getSenderFactory().getAudience(context.holder());
audience.sendActionBar(AdventureHelper.miniMessage(random)); audience.sendActionBar(AdventureHelper.miniMessage(random));
}; };
}); });
@@ -329,7 +329,7 @@ public class BukkitActionManager implements ActionManager<Player> {
MathValue<Player> range = MathValue.auto(section.get("range")); MathValue<Player> range = MathValue.auto(section.get("range"));
return context -> { return context -> {
if (Math.random() > chance) return; if (Math.random() > chance) return;
Player owner = context.getHolder(); Player owner = context.holder();
Location location = requireNonNull(context.arg(ContextKeys.LOCATION)); Location location = requireNonNull(context.arg(ContextKeys.LOCATION));
double realRange = range.evaluate(context); double realRange = range.evaluate(context);
for (Player player : location.getWorld().getPlayers()) { for (Player player : location.getWorld().getPlayers()) {
@@ -353,7 +353,7 @@ public class BukkitActionManager implements ActionManager<Player> {
MathValue<Player> value = MathValue.auto(args); MathValue<Player> value = MathValue.auto(args);
return context -> { return context -> {
if (Math.random() > chance) return; if (Math.random() > chance) return;
final Player player = context.getHolder(); final Player player = context.holder();
ExperienceOrb entity = player.getLocation().getWorld().spawn(player.getLocation().clone().add(0,0.5,0), ExperienceOrb.class); ExperienceOrb entity = player.getLocation().getWorld().spawn(player.getLocation().clone().add(0,0.5,0), ExperienceOrb.class);
entity.setExperience((int) value.evaluate(context)); entity.setExperience((int) value.evaluate(context));
}; };
@@ -362,7 +362,7 @@ public class BukkitActionManager implements ActionManager<Player> {
MathValue<Player> value = MathValue.auto(args); MathValue<Player> value = MathValue.auto(args);
return context -> { return context -> {
if (Math.random() > chance) return; if (Math.random() > chance) return;
final Player player = context.getHolder(); final Player player = context.holder();
player.giveExp((int) Math.round(value.evaluate(context))); player.giveExp((int) Math.round(value.evaluate(context)));
Audience audience = plugin.getSenderFactory().getAudience(player); Audience audience = plugin.getSenderFactory().getAudience(player);
AdventureHelper.playSound(audience, Sound.sound(Key.key("minecraft:entity.experience_orb.pickup"), Sound.Source.PLAYER, 1, 1)); AdventureHelper.playSound(audience, Sound.sound(Key.key("minecraft:entity.experience_orb.pickup"), Sound.Source.PLAYER, 1, 1));
@@ -372,7 +372,7 @@ public class BukkitActionManager implements ActionManager<Player> {
MathValue<Player> value = MathValue.auto(args); MathValue<Player> value = MathValue.auto(args);
return context -> { return context -> {
if (Math.random() > chance) return; if (Math.random() > chance) return;
Player player = context.getHolder(); Player player = context.holder();
player.setLevel((int) Math.max(0, player.getLevel() + value.evaluate(context))); player.setLevel((int) Math.max(0, player.getLevel() + value.evaluate(context)));
}; };
}); });
@@ -383,7 +383,7 @@ public class BukkitActionManager implements ActionManager<Player> {
MathValue<Player> value = MathValue.auto(args); MathValue<Player> value = MathValue.auto(args);
return context -> { return context -> {
if (Math.random() > chance) return; if (Math.random() > chance) return;
Player player = context.getHolder(); Player player = context.holder();
player.setFoodLevel((int) (player.getFoodLevel() + value.evaluate(context))); player.setFoodLevel((int) (player.getFoodLevel() + value.evaluate(context)));
}; };
}); });
@@ -391,7 +391,7 @@ public class BukkitActionManager implements ActionManager<Player> {
MathValue<Player> value = MathValue.auto(args); MathValue<Player> value = MathValue.auto(args);
return context -> { return context -> {
if (Math.random() > chance) return; if (Math.random() > chance) return;
Player player = context.getHolder(); Player player = context.holder();
player.setSaturation((float) (player.getSaturation() + value.evaluate(context))); player.setSaturation((float) (player.getSaturation() + value.evaluate(context)));
}; };
}); });
@@ -404,7 +404,7 @@ public class BukkitActionManager implements ActionManager<Player> {
int amount = section.getInt("amount", 1); int amount = section.getInt("amount", 1);
return context -> { return context -> {
if (Math.random() > chance) return; if (Math.random() > chance) return;
Player player = context.getHolder(); Player player = context.holder();
boolean tempHand = mainOrOff; boolean tempHand = mainOrOff;
EquipmentSlot hand = context.arg(ContextKeys.SLOT); EquipmentSlot hand = context.arg(ContextKeys.SLOT);
if (hand == EquipmentSlot.OFF_HAND || hand == EquipmentSlot.HAND) { if (hand == EquipmentSlot.OFF_HAND || hand == EquipmentSlot.HAND) {
@@ -426,7 +426,7 @@ public class BukkitActionManager implements ActionManager<Player> {
int amount = section.getInt("amount", 1); int amount = section.getInt("amount", 1);
return context -> { return context -> {
if (Math.random() > chance) return; if (Math.random() > chance) return;
Player player = context.getHolder(); Player player = context.holder();
EquipmentSlot tempSlot = slot; EquipmentSlot tempSlot = slot;
EquipmentSlot equipmentSlot = context.arg(ContextKeys.SLOT); EquipmentSlot equipmentSlot = context.arg(ContextKeys.SLOT);
if (equipmentSlot != null) { if (equipmentSlot != null) {
@@ -441,9 +441,9 @@ public class BukkitActionManager implements ActionManager<Player> {
if (itemStack.getItemMeta() == null) if (itemStack.getItemMeta() == null)
return; return;
if (amount > 0) { if (amount > 0) {
plugin.getItemManager().decreaseDamage(context.getHolder(), itemStack, amount); plugin.getItemManager().decreaseDamage(context.holder(), itemStack, amount);
} else { } else {
plugin.getItemManager().increaseDamage(context.getHolder(), itemStack, -amount, true); plugin.getItemManager().increaseDamage(context.holder(), itemStack, -amount, true);
} }
}; };
} else { } else {
@@ -458,7 +458,7 @@ public class BukkitActionManager implements ActionManager<Player> {
boolean toInventory = section.getBoolean("to-inventory", false); boolean toInventory = section.getBoolean("to-inventory", false);
return context -> { return context -> {
if (Math.random() > chance) return; if (Math.random() > chance) return;
Player player = context.getHolder(); Player player = context.holder();
ItemStack itemStack = plugin.getItemManager().buildAny(context, id); ItemStack itemStack = plugin.getItemManager().buildAny(context, id);
if (itemStack != null) { if (itemStack != null) {
int maxStack = itemStack.getMaxStackSize(); int maxStack = itemStack.getMaxStackSize();
@@ -632,7 +632,7 @@ public class BukkitActionManager implements ActionManager<Player> {
return context -> { return context -> {
if (Math.random() > chance) return; if (Math.random() > chance) return;
if (!VaultHook.isHooked()) return; if (!VaultHook.isHooked()) return;
VaultHook.deposit(context.getHolder(), value.evaluate(context)); VaultHook.deposit(context.holder(), value.evaluate(context));
}; };
}); });
registerAction("take-money", (args, chance) -> { registerAction("take-money", (args, chance) -> {
@@ -640,7 +640,7 @@ public class BukkitActionManager implements ActionManager<Player> {
return context -> { return context -> {
if (Math.random() > chance) return; if (Math.random() > chance) return;
if (!VaultHook.isHooked()) return; if (!VaultHook.isHooked()) return;
VaultHook.withdraw(context.getHolder(), value.evaluate(context)); VaultHook.withdraw(context.holder(), value.evaluate(context));
}; };
}); });
} }
@@ -657,7 +657,7 @@ public class BukkitActionManager implements ActionManager<Player> {
); );
return context -> { return context -> {
if (Math.random() > chance) return; if (Math.random() > chance) return;
context.getHolder().addPotionEffect(potionEffect); context.holder().addPotionEffect(potionEffect);
}; };
} else { } else {
plugin.getPluginLogger().warn("Invalid value type: " + args.getClass().getSimpleName() + " found at potion-effect action which is expected to be `Section`"); plugin.getPluginLogger().warn("Invalid value type: " + args.getClass().getSimpleName() + " found at potion-effect action which is expected to be `Section`");
@@ -677,7 +677,7 @@ public class BukkitActionManager implements ActionManager<Player> {
); );
return context -> { return context -> {
if (Math.random() > chance) return; if (Math.random() > chance) return;
Audience audience = plugin.getSenderFactory().getAudience(context.getHolder()); Audience audience = plugin.getSenderFactory().getAudience(context.holder());
AdventureHelper.playSound(audience, sound); AdventureHelper.playSound(audience, sound);
}; };
} else { } else {
@@ -697,7 +697,7 @@ public class BukkitActionManager implements ActionManager<Player> {
return context -> { return context -> {
if (Math.random() > chance) return; if (Math.random() > chance) return;
Optional.ofNullable(plugin.getIntegrationManager().getLevelerProvider(pluginName)).ifPresentOrElse(it -> { Optional.ofNullable(plugin.getIntegrationManager().getLevelerProvider(pluginName)).ifPresentOrElse(it -> {
it.addXp(context.getHolder(), target, value.evaluate(context)); it.addXp(context.holder(), target, value.evaluate(context));
}, () -> plugin.getPluginLogger().warn("Plugin (" + pluginName + "'s) level is not compatible. Please double check if it's a problem caused by pronunciation.")); }, () -> plugin.getPluginLogger().warn("Plugin (" + pluginName + "'s) level is not compatible. Please double check if it's a problem caused by pronunciation."));
}; };
} else { } else {
@@ -717,7 +717,7 @@ public class BukkitActionManager implements ActionManager<Player> {
int fadeOut = section.getInt("fade-out", 10); int fadeOut = section.getInt("fade-out", 10);
return context -> { return context -> {
if (Math.random() > chance) return; if (Math.random() > chance) return;
final Player player = context.getHolder(); final Player player = context.holder();
Audience audience = plugin.getSenderFactory().getAudience(player); Audience audience = plugin.getSenderFactory().getAudience(player);
AdventureHelper.sendTitle(audience, AdventureHelper.sendTitle(audience,
AdventureHelper.miniMessage(title.render(context)), AdventureHelper.miniMessage(title.render(context)),
@@ -743,7 +743,7 @@ public class BukkitActionManager implements ActionManager<Player> {
if (Math.random() > chance) return; if (Math.random() > chance) return;
TextValue<Player> title = TextValue.auto(titles.get(RandomUtils.generateRandomInt(0, titles.size() - 1))); TextValue<Player> title = TextValue.auto(titles.get(RandomUtils.generateRandomInt(0, titles.size() - 1)));
TextValue<Player> subtitle = TextValue.auto(subtitles.get(RandomUtils.generateRandomInt(0, subtitles.size() - 1))); TextValue<Player> subtitle = TextValue.auto(subtitles.get(RandomUtils.generateRandomInt(0, subtitles.size() - 1)));
final Player player = context.getHolder(); final Player player = context.holder();
Audience audience = plugin.getSenderFactory().getAudience(player); Audience audience = plugin.getSenderFactory().getAudience(player);
AdventureHelper.sendTitle(audience, AdventureHelper.sendTitle(audience,
AdventureHelper.miniMessage(title.render(context)), AdventureHelper.miniMessage(title.render(context)),
@@ -803,7 +803,7 @@ public class BukkitActionManager implements ActionManager<Player> {
String finalItemID = itemID; String finalItemID = itemID;
return context -> { return context -> {
if (Math.random() > chance) return; if (Math.random() > chance) return;
Player owner = context.getHolder(); Player owner = context.holder();
Location location = position ? requireNonNull(context.arg(ContextKeys.OTHER_LOCATION)).clone() : owner.getLocation().clone(); Location location = position ? requireNonNull(context.arg(ContextKeys.OTHER_LOCATION)).clone() : owner.getLocation().clone();
location.add(x.evaluate(context), y.evaluate(context) - 1, z.evaluate(context)); location.add(x.evaluate(context), y.evaluate(context) - 1, z.evaluate(context));
if (opposite) location.setYaw(-owner.getLocation().getYaw()); if (opposite) location.setYaw(-owner.getLocation().getYaw());
@@ -851,7 +851,7 @@ public class BukkitActionManager implements ActionManager<Player> {
int range = section.getInt("range", 16); int range = section.getInt("range", 16);
return context -> { return context -> {
if (Math.random() > chance) return; if (Math.random() > chance) return;
Player owner = context.getHolder(); Player owner = context.holder();
Location location = position ? requireNonNull(context.arg(ContextKeys.OTHER_LOCATION)).clone() : owner.getLocation().clone(); Location location = position ? requireNonNull(context.arg(ContextKeys.OTHER_LOCATION)).clone() : owner.getLocation().clone();
location.add(x.evaluate(context), y.evaluate(context), z.evaluate(context)); location.add(x.evaluate(context), y.evaluate(context), z.evaluate(context));
FakeArmorStand armorStand = SparrowHeart.getInstance().createFakeArmorStand(location); FakeArmorStand armorStand = SparrowHeart.getInstance().createFakeArmorStand(location);
@@ -915,9 +915,9 @@ public class BukkitActionManager implements ActionManager<Player> {
context.arg(ContextKeys.SURROUNDING, previous); context.arg(ContextKeys.SURROUNDING, previous);
} }
if (loots.isEmpty()) { if (loots.isEmpty()) {
plugin.getSenderFactory().wrap(context.getHolder()).sendMessage(TranslationManager.render(MessageConstants.COMMAND_FISH_FINDER_NO_LOOT.build())); plugin.getSenderFactory().wrap(context.holder()).sendMessage(TranslationManager.render(MessageConstants.COMMAND_FISH_FINDER_NO_LOOT.build()));
} else { } else {
plugin.getSenderFactory().wrap(context.getHolder()).sendMessage(TranslationManager.render(MessageConstants.COMMAND_FISH_FINDER_POSSIBLE_LOOTS.arguments(AdventureHelper.miniMessage(stringJoiner.toString())).build())); plugin.getSenderFactory().wrap(context.holder()).sendMessage(TranslationManager.render(MessageConstants.COMMAND_FISH_FINDER_POSSIBLE_LOOTS.arguments(AdventureHelper.miniMessage(stringJoiner.toString())).build()));
} }
}; };
}); });

View File

@@ -239,13 +239,13 @@ public class BukkitBlockManager implements BlockManager, Listener {
blockData = blockProviders.get("vanilla").blockData(context, blockID, config.dataModifier()); blockData = blockProviders.get("vanilla").blockData(context, blockID, config.dataModifier());
} }
Location hookLocation = requireNonNull(context.arg(ContextKeys.OTHER_LOCATION)); Location hookLocation = requireNonNull(context.arg(ContextKeys.OTHER_LOCATION));
Location playerLocation = requireNonNull(context.getHolder()).getLocation(); Location playerLocation = requireNonNull(context.holder()).getLocation();
FallingBlock fallingBlock = hookLocation.getWorld().spawn(hookLocation, FallingBlock.class); FallingBlock fallingBlock = hookLocation.getWorld().spawn(hookLocation, FallingBlock.class);
fallingBlock.setBlockData(blockData); fallingBlock.setBlockData(blockData);
fallingBlock.getPersistentDataContainer().set( fallingBlock.getPersistentDataContainer().set(
requireNonNull(NamespacedKey.fromString("block", plugin.getBoostrap())), requireNonNull(NamespacedKey.fromString("block", plugin.getBoostrap())),
PersistentDataType.STRING, PersistentDataType.STRING,
id + ";" + context.getHolder().getName() id + ";" + context.holder().getName()
); );
double d0 = playerLocation.getX() - hookLocation.getX(); double d0 = playerLocation.getX() - hookLocation.getX();
double d1 = playerLocation.getY() - hookLocation.getY(); double d1 = playerLocation.getY() - hookLocation.getY();

View File

@@ -67,7 +67,7 @@ import net.momirealms.customfishing.bukkit.totem.particle.ParticleSetting;
import net.momirealms.customfishing.bukkit.util.ItemStackUtils; import net.momirealms.customfishing.bukkit.util.ItemStackUtils;
import net.momirealms.customfishing.bukkit.util.ParticleUtils; import net.momirealms.customfishing.bukkit.util.ParticleUtils;
import net.momirealms.customfishing.common.config.node.Node; import net.momirealms.customfishing.common.config.node.Node;
import net.momirealms.customfishing.common.dependency.CustomFishingProperties; import net.momirealms.customfishing.common.plugin.CustomFishingProperties;
import net.momirealms.customfishing.common.helper.AdventureHelper; import net.momirealms.customfishing.common.helper.AdventureHelper;
import net.momirealms.customfishing.common.helper.VersionHelper; import net.momirealms.customfishing.common.helper.VersionHelper;
import net.momirealms.customfishing.common.item.AbstractItem; import net.momirealms.customfishing.common.item.AbstractItem;

View File

@@ -105,7 +105,7 @@ public class BukkitEntityManager implements EntityManager {
String id = context.arg(ContextKeys.ID); String id = context.arg(ContextKeys.ID);
EntityConfig config = requireNonNull(entities.get(id), "Entity " + id + " not found"); EntityConfig config = requireNonNull(entities.get(id), "Entity " + id + " not found");
Location hookLocation = requireNonNull(context.arg(ContextKeys.OTHER_LOCATION)); Location hookLocation = requireNonNull(context.arg(ContextKeys.OTHER_LOCATION));
Location playerLocation = requireNonNull(context.getHolder().getLocation()); Location playerLocation = requireNonNull(context.holder().getLocation());
String entityID = config.entityID(); String entityID = config.entityID();
Entity entity; Entity entity;
if (entityID.contains(":")) { if (entityID.contains(":")) {

View File

@@ -134,7 +134,7 @@ public class BukkitItemManager implements ItemManager, Listener {
@NotNull @NotNull
@Override @Override
public ItemStack build(@NotNull Context<Player> context, @NotNull CustomFishingItem item) { public ItemStack build(@NotNull Context<Player> context, @NotNull CustomFishingItem item) {
ItemStack itemStack = getOriginalStack(context.getHolder(), item.material()); ItemStack itemStack = getOriginalStack(context.holder(), item.material());
if (itemStack.getType() == Material.AIR) return itemStack; if (itemStack.getType() == Material.AIR) return itemStack;
itemStack.setAmount(Math.max(1, (int) item.amount().evaluate(context))); itemStack.setAmount(Math.max(1, (int) item.amount().evaluate(context)));
Item<ItemStack> wrappedItemStack = factory.wrap(itemStack); Item<ItemStack> wrappedItemStack = factory.wrap(itemStack);
@@ -146,7 +146,7 @@ public class BukkitItemManager implements ItemManager, Listener {
@Override @Override
public ItemStack buildAny(@NotNull Context<Player> context, @NotNull String item) { public ItemStack buildAny(@NotNull Context<Player> context, @NotNull String item) {
return getOriginalStack(context.getHolder(), item); return getOriginalStack(context.holder(), item);
} }
@NotNull @NotNull
@@ -174,7 +174,7 @@ public class BukkitItemManager implements ItemManager, Listener {
String id = requireNonNull(context.arg(ContextKeys.ID)); String id = requireNonNull(context.arg(ContextKeys.ID));
ItemStack itemStack; ItemStack itemStack;
if (id.equals("vanilla")) { if (id.equals("vanilla")) {
itemStack = SparrowHeart.getInstance().getFishingLoot(context.getHolder(), hook, rod).stream().findAny().orElseThrow(() -> new RuntimeException("new EntityItem would throw if for whatever reason (mostly shitty datapacks) the fishing loot turns out to be empty")); itemStack = SparrowHeart.getInstance().getFishingLoot(context.holder(), hook, rod).stream().findAny().orElseThrow(() -> new RuntimeException("new EntityItem would throw if for whatever reason (mostly shitty datapacks) the fishing loot turns out to be empty"));
} else { } else {
itemStack = requireNonNull(buildInternal(context, id)); itemStack = requireNonNull(buildInternal(context, id));
} }
@@ -183,7 +183,7 @@ public class BukkitItemManager implements ItemManager, Listener {
return null; return null;
} }
Player player = context.getHolder(); Player player = context.holder();
Location playerLocation = player.getLocation(); Location playerLocation = player.getLocation();
Location hookLocation = requireNonNull(context.arg(ContextKeys.OTHER_LOCATION)); Location hookLocation = requireNonNull(context.arg(ContextKeys.OTHER_LOCATION));

View File

@@ -361,9 +361,9 @@ public class BukkitMarketManager implements MarketManager, Listener {
ActionManager.trigger(gui.context, sellDenyActions); ActionManager.trigger(gui.context, sellDenyActions);
} }
} else if (element.getSymbol() == sellAllSlot) { } else if (element.getSymbol() == sellAllSlot) {
List<ItemStack> itemStacksToSell = storageContentsToList(gui.context.getHolder().getInventory().getStorageContents()); List<ItemStack> itemStacksToSell = storageContentsToList(gui.context.holder().getInventory().getStorageContents());
if (sellFishingBag) { if (sellFishingBag) {
Optional<UserData> optionalUserData = BukkitCustomFishingPlugin.getInstance().getStorageManager().getOnlineUser(gui.context.getHolder().getUniqueId()); Optional<UserData> optionalUserData = BukkitCustomFishingPlugin.getInstance().getStorageManager().getOnlineUser(gui.context.holder().getUniqueId());
optionalUserData.ifPresent(userData -> itemStacksToSell.addAll(storageContentsToList(userData.holder().getInventory().getStorageContents()))); optionalUserData.ifPresent(userData -> itemStacksToSell.addAll(storageContentsToList(userData.holder().getInventory().getStorageContents())));
} }
Pair<Integer, Double> pair = getItemsToSell(gui.context, itemStacksToSell); Pair<Integer, Double> pair = getItemsToSell(gui.context, itemStacksToSell);

View File

@@ -91,8 +91,8 @@ public class MarketGUI {
} }
public void show() { public void show() {
context.getHolder().openInventory(inventory); context.holder().openInventory(inventory);
SparrowHeart.getInstance().updateInventoryTitle(context.getHolder(), AdventureHelper.componentToJson(AdventureHelper.miniMessage(manager.title.render(context)))); SparrowHeart.getInstance().updateInventoryTitle(context.holder(), AdventureHelper.componentToJson(AdventureHelper.miniMessage(manager.title.render(context))));
} }
@Nullable @Nullable
@@ -132,9 +132,9 @@ public class MarketGUI {
MarketDynamicGUIElement sellAllElement = (MarketDynamicGUIElement) getElement(manager.sellAllSlot); MarketDynamicGUIElement sellAllElement = (MarketDynamicGUIElement) getElement(manager.sellAllSlot);
if (sellAllElement != null && !sellAllElement.getSlots().isEmpty()) { if (sellAllElement != null && !sellAllElement.getSlots().isEmpty()) {
List<ItemStack> itemStacksToSell = manager.storageContentsToList(context.getHolder().getInventory().getStorageContents()); List<ItemStack> itemStacksToSell = manager.storageContentsToList(context.holder().getInventory().getStorageContents());
if (manager.sellFishingBag) { if (manager.sellFishingBag) {
Optional<UserData> optionalUserData = BukkitCustomFishingPlugin.getInstance().getStorageManager().getOnlineUser(context.getHolder().getUniqueId()); Optional<UserData> optionalUserData = BukkitCustomFishingPlugin.getInstance().getStorageManager().getOnlineUser(context.holder().getUniqueId());
optionalUserData.ifPresent(userData -> itemStacksToSell.addAll(manager.storageContentsToList(userData.holder().getInventory().getStorageContents()))); optionalUserData.ifPresent(userData -> itemStacksToSell.addAll(manager.storageContentsToList(userData.holder().getInventory().getStorageContents())));
} }
Pair<Integer, Double> pair = manager.getItemsToSell(context, itemStacksToSell); Pair<Integer, Double> pair = manager.getItemsToSell(context, itemStacksToSell);
@@ -190,7 +190,7 @@ public class MarketGUI {
for (int slot : itemElement.getSlots()) { for (int slot : itemElement.getSlots()) {
ItemStack itemStack = inventory.getItem(slot); ItemStack itemStack = inventory.getItem(slot);
if (itemStack != null && itemStack.getType() != Material.AIR) { if (itemStack != null && itemStack.getType() != Material.AIR) {
PlayerUtils.giveItem(context.getHolder(), itemStack, itemStack.getAmount()); PlayerUtils.giveItem(context.holder(), itemStack, itemStack.getAmount());
inventory.setItem(slot, new ItemStack(Material.AIR)); inventory.setItem(slot, new ItemStack(Material.AIR));
} }
} }

View File

@@ -248,8 +248,8 @@ public class BukkitRequirementManager implements RequirementManager<Player> {
List<String> items = ListUtils.toList(section.get("item")); List<String> items = ListUtils.toList(section.get("item"));
return context -> { return context -> {
ItemStack itemStack = mainOrOff ? ItemStack itemStack = mainOrOff ?
context.getHolder().getInventory().getItemInMainHand() context.holder().getInventory().getItemInMainHand()
: context.getHolder().getInventory().getItemInOffHand(); : context.holder().getInventory().getItemInOffHand();
String id = plugin.getItemManager().getItemID(itemStack); String id = plugin.getItemManager().getItemID(itemStack);
if (items.contains(id) && itemStack.getAmount() >= amount) return true; if (items.contains(id) && itemStack.getAmount() >= amount) return true;
if (runActions) ActionManager.trigger(context, actions); if (runActions) ActionManager.trigger(context, actions);
@@ -274,7 +274,7 @@ public class BukkitRequirementManager implements RequirementManager<Player> {
plugin.getPluginLogger().warn("Plugin (" + pluginName + "'s) level is not compatible. Please double check if it's a problem caused by pronunciation."); plugin.getPluginLogger().warn("Plugin (" + pluginName + "'s) level is not compatible. Please double check if it's a problem caused by pronunciation.");
return true; return true;
} }
if (levelerProvider.getLevel(context.getHolder(), target) >= level) if (levelerProvider.getLevel(context.holder(), target) >= level)
return true; return true;
if (runActions) ActionManager.trigger(context, actions); if (runActions) ActionManager.trigger(context, actions);
return false; return false;
@@ -693,7 +693,7 @@ public class BukkitRequirementManager implements RequirementManager<Player> {
registerRequirement("level", (args, actions, runActions) -> { registerRequirement("level", (args, actions, runActions) -> {
MathValue<Player> value = MathValue.auto(args); MathValue<Player> value = MathValue.auto(args);
return context -> { return context -> {
int current = context.getHolder().getLevel(); int current = context.holder().getLevel();
if (current >= value.evaluate(context, true)) if (current >= value.evaluate(context, true))
return true; return true;
if (runActions) ActionManager.trigger(context, actions); if (runActions) ActionManager.trigger(context, actions);
@@ -706,7 +706,7 @@ public class BukkitRequirementManager implements RequirementManager<Player> {
registerRequirement("money", (args, actions, runActions) -> { registerRequirement("money", (args, actions, runActions) -> {
MathValue<Player> value = MathValue.auto(args); MathValue<Player> value = MathValue.auto(args);
return context -> { return context -> {
double current = VaultHook.getBalance(context.getHolder()); double current = VaultHook.getBalance(context.holder());
if (current >= value.evaluate(context, true)) if (current >= value.evaluate(context, true))
return true; return true;
if (runActions) ActionManager.trigger(context, actions); if (runActions) ActionManager.trigger(context, actions);
@@ -823,7 +823,7 @@ public class BukkitRequirementManager implements RequirementManager<Player> {
String key = section.getString("key"); String key = section.getString("key");
int time = section.getInt("time"); int time = section.getInt("time");
return context -> { return context -> {
if (!plugin.getCoolDownManager().isCoolDown(context.getHolder().getUniqueId(), key, time)) if (!plugin.getCoolDownManager().isCoolDown(context.holder().getUniqueId(), key, time))
return true; return true;
if (runActions) ActionManager.trigger(context, actions); if (runActions) ActionManager.trigger(context, actions);
return false; return false;
@@ -854,7 +854,7 @@ public class BukkitRequirementManager implements RequirementManager<Player> {
List<String> perms = ListUtils.toList(args); List<String> perms = ListUtils.toList(args);
return context -> { return context -> {
for (String perm : perms) for (String perm : perms)
if (context.getHolder().hasPermission(perm)) if (context.holder().hasPermission(perm))
return true; return true;
if (runActions) ActionManager.trigger(context, actions); if (runActions) ActionManager.trigger(context, actions);
return false; return false;
@@ -864,7 +864,7 @@ public class BukkitRequirementManager implements RequirementManager<Player> {
List<String> perms = ListUtils.toList(args); List<String> perms = ListUtils.toList(args);
return context -> { return context -> {
for (String perm : perms) for (String perm : perms)
if (context.getHolder().hasPermission(perm)) { if (context.holder().hasPermission(perm)) {
if (runActions) ActionManager.trigger(context, actions); if (runActions) ActionManager.trigger(context, actions);
return false; return false;
} }
@@ -1145,7 +1145,7 @@ public class BukkitRequirementManager implements RequirementManager<Player> {
String operator = potions.substring(split[0].length(), potions.length() - split[1].length()); String operator = potions.substring(split[0].length(), potions.length() - split[1].length());
return context -> { return context -> {
int level = -1; int level = -1;
PotionEffect potionEffect = context.getHolder().getPotionEffect(type); PotionEffect potionEffect = context.holder().getPotionEffect(type);
if (potionEffect != null) { if (potionEffect != null) {
level = potionEffect.getAmplifier(); level = potionEffect.getAmplifier();
} }