mirror of
https://github.com/Xiao-MoMi/Custom-Fishing.git
synced 2025-12-19 15:09:24 +00:00
2.0.11
This commit is contained in:
@@ -34,6 +34,7 @@ public class CFLoot implements Loot {
|
|||||||
private String nick;
|
private String nick;
|
||||||
private boolean showInFinder;
|
private boolean showInFinder;
|
||||||
private boolean disableGame;
|
private boolean disableGame;
|
||||||
|
private boolean disableGlobalAction;
|
||||||
private boolean disableStats;
|
private boolean disableStats;
|
||||||
private boolean instanceGame;
|
private boolean instanceGame;
|
||||||
private double score;
|
private double score;
|
||||||
@@ -129,6 +130,17 @@ public class CFLoot implements Loot {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set whether global actions are disabled for this loot.
|
||||||
|
*
|
||||||
|
* @param disable True if statistics are disabled, false otherwise.
|
||||||
|
* @return The builder.
|
||||||
|
*/
|
||||||
|
public Builder disableGlobalActions(boolean disable) {
|
||||||
|
this.loot.disableGlobalAction = disable;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the score for this loot.
|
* Set the score for this loot.
|
||||||
*
|
*
|
||||||
@@ -303,6 +315,14 @@ public class CFLoot implements Loot {
|
|||||||
return this.disableStats;
|
return this.disableStats;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if the loot disables global actions
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public boolean disableGlobalAction() {
|
||||||
|
return this.disableGlobalAction;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the loot group of this loot.
|
* Get the loot group of this loot.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -34,6 +34,11 @@ public interface Loot {
|
|||||||
*/
|
*/
|
||||||
boolean instanceGame();
|
boolean instanceGame();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if the loot disables global actions
|
||||||
|
*/
|
||||||
|
boolean disableGlobalAction();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the unique ID of this loot.
|
* Get the unique ID of this loot.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ plugins {
|
|||||||
|
|
||||||
allprojects {
|
allprojects {
|
||||||
|
|
||||||
version = "2.0.10.5"
|
version = "2.0.11"
|
||||||
|
|
||||||
apply<JavaPlugin>()
|
apply<JavaPlugin>()
|
||||||
apply(plugin = "java")
|
apply(plugin = "java")
|
||||||
|
|||||||
@@ -60,10 +60,10 @@ dependencies {
|
|||||||
implementation(project(":api"))
|
implementation(project(":api"))
|
||||||
|
|
||||||
// adventure
|
// adventure
|
||||||
implementation("net.kyori:adventure-api:4.14.0")
|
implementation("net.kyori:adventure-api:4.15.0")
|
||||||
implementation("net.kyori:adventure-platform-bukkit:4.3.1")
|
implementation("net.kyori:adventure-platform-bukkit:4.3.1")
|
||||||
implementation("net.kyori:adventure-text-minimessage:4.14.0")
|
implementation("net.kyori:adventure-text-minimessage:4.15.0")
|
||||||
implementation("net.kyori:adventure-text-serializer-legacy:4.14.0")
|
implementation("net.kyori:adventure-text-serializer-legacy:4.15.0")
|
||||||
|
|
||||||
// nbt
|
// nbt
|
||||||
implementation("de.tr7zw:item-nbt-api:2.12.2")
|
implementation("de.tr7zw:item-nbt-api:2.12.2")
|
||||||
|
|||||||
@@ -459,10 +459,14 @@ public class FishingManagerImpl implements Listener, FishingManager {
|
|||||||
var fishingPreparation = temp.getPreparation();
|
var fishingPreparation = temp.getPreparation();
|
||||||
fishingPreparation.setLocation(event.getHook().getLocation());
|
fishingPreparation.setLocation(event.getHook().getLocation());
|
||||||
|
|
||||||
|
if (!loot.disableGlobalAction())
|
||||||
|
GlobalSettings.triggerLootActions(ActionTrigger.BITE, fishingPreparation);
|
||||||
loot.triggerActions(ActionTrigger.BITE, fishingPreparation);
|
loot.triggerActions(ActionTrigger.BITE, fishingPreparation);
|
||||||
fishingPreparation.triggerActions(ActionTrigger.BITE);
|
fishingPreparation.triggerActions(ActionTrigger.BITE);
|
||||||
|
|
||||||
if (loot.instanceGame() && !loot.disableGame()) {
|
if (loot.instanceGame() && !loot.disableGame()) {
|
||||||
|
if (!loot.disableGlobalAction())
|
||||||
|
GlobalSettings.triggerLootActions(ActionTrigger.HOOK, fishingPreparation);
|
||||||
loot.triggerActions(ActionTrigger.HOOK, fishingPreparation);
|
loot.triggerActions(ActionTrigger.HOOK, fishingPreparation);
|
||||||
fishingPreparation.triggerActions(ActionTrigger.HOOK);
|
fishingPreparation.triggerActions(ActionTrigger.HOOK);
|
||||||
startFishingGame(player, fishingPreparation, temp.getEffect());
|
startFishingGame(player, fishingPreparation, temp.getEffect());
|
||||||
@@ -500,11 +504,14 @@ public class FishingManagerImpl implements Listener, FishingManager {
|
|||||||
var temp = getTempFishingState(uuid);
|
var temp = getTempFishingState(uuid);
|
||||||
if (temp != null ) {
|
if (temp != null ) {
|
||||||
Loot loot = temp.getLoot();
|
Loot loot = temp.getLoot();
|
||||||
loot.triggerActions(ActionTrigger.HOOK, temp.getPreparation());
|
var fishingPreparation = temp.getPreparation();
|
||||||
temp.getPreparation().triggerActions(ActionTrigger.HOOK);
|
if (!loot.disableGlobalAction())
|
||||||
|
GlobalSettings.triggerLootActions(ActionTrigger.HOOK, fishingPreparation);
|
||||||
|
loot.triggerActions(ActionTrigger.HOOK, fishingPreparation);
|
||||||
|
fishingPreparation.triggerActions(ActionTrigger.HOOK);
|
||||||
if (!loot.disableGame()) {
|
if (!loot.disableGame()) {
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
startFishingGame(player, temp.getPreparation(), temp.getEffect());
|
startFishingGame(player, fishingPreparation, temp.getEffect());
|
||||||
} else {
|
} else {
|
||||||
success(temp, event.getHook());
|
success(temp, event.getHook());
|
||||||
}
|
}
|
||||||
@@ -586,7 +593,8 @@ public class FishingManagerImpl implements Listener, FishingManager {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
GlobalSettings.triggerLootActions(ActionTrigger.FAILURE, fishingPreparation);
|
if (!loot.disableGlobalAction())
|
||||||
|
GlobalSettings.triggerLootActions(ActionTrigger.FAILURE, fishingPreparation);
|
||||||
loot.triggerActions(ActionTrigger.FAILURE, fishingPreparation);
|
loot.triggerActions(ActionTrigger.FAILURE, fishingPreparation);
|
||||||
fishingPreparation.triggerActions(ActionTrigger.FAILURE);
|
fishingPreparation.triggerActions(ActionTrigger.FAILURE);
|
||||||
|
|
||||||
@@ -662,11 +670,16 @@ public class FishingManagerImpl implements Listener, FishingManager {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
case ENTITY -> plugin.getEntityManager().summonEntity(hook.getLocation(), player.getLocation(), loot);
|
case ENTITY -> {
|
||||||
case BLOCK -> plugin.getBlockManager().summonBlock(player, hook.getLocation(), player.getLocation(), loot);
|
plugin.getEntityManager().summonEntity(hook.getLocation(), player.getLocation(), loot);
|
||||||
|
doSuccessActions(loot, effect, fishingPreparation, player);
|
||||||
|
}
|
||||||
|
case BLOCK -> {
|
||||||
|
plugin.getBlockManager().summonBlock(player, hook.getLocation(), player.getLocation(), loot);
|
||||||
|
doSuccessActions(loot, effect, fishingPreparation, player);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
doSuccessActions(loot, effect, fishingPreparation, player);
|
|
||||||
if (player.getGameMode() != GameMode.CREATIVE) {
|
if (player.getGameMode() != GameMode.CREATIVE) {
|
||||||
ItemStack rod = state.getPreparation().getRodItemStack();
|
ItemStack rod = state.getPreparation().getRodItemStack();
|
||||||
ItemUtils.decreaseHookDurability(rod, 1, false);
|
ItemUtils.decreaseHookDurability(rod, 1, false);
|
||||||
@@ -720,7 +733,8 @@ public class FishingManagerImpl implements Listener, FishingManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// events and actions
|
// events and actions
|
||||||
GlobalSettings.triggerLootActions(ActionTrigger.SUCCESS, fishingPreparation);
|
if (!loot.disableGlobalAction())
|
||||||
|
GlobalSettings.triggerLootActions(ActionTrigger.SUCCESS, fishingPreparation);
|
||||||
loot.triggerActions(ActionTrigger.SUCCESS, fishingPreparation);
|
loot.triggerActions(ActionTrigger.SUCCESS, fishingPreparation);
|
||||||
fishingPreparation.triggerActions(ActionTrigger.SUCCESS);
|
fishingPreparation.triggerActions(ActionTrigger.SUCCESS);
|
||||||
|
|
||||||
@@ -738,7 +752,8 @@ public class FishingManagerImpl implements Listener, FishingManager {
|
|||||||
String size = fishingPreparation.getArg("{SIZE}");
|
String size = fishingPreparation.getArg("{SIZE}");
|
||||||
if (size != null)
|
if (size != null)
|
||||||
if (it.setSizeIfHigher(loot.getStatisticKey().getSizeKey(), Float.parseFloat(size))) {
|
if (it.setSizeIfHigher(loot.getStatisticKey().getSizeKey(), Float.parseFloat(size))) {
|
||||||
GlobalSettings.triggerLootActions(ActionTrigger.NEW_SIZE_RECORD, fishingPreparation);
|
if (!loot.disableGlobalAction())
|
||||||
|
GlobalSettings.triggerLootActions(ActionTrigger.NEW_SIZE_RECORD, fishingPreparation);
|
||||||
loot.triggerActions(ActionTrigger.NEW_SIZE_RECORD, fishingPreparation);
|
loot.triggerActions(ActionTrigger.NEW_SIZE_RECORD, fishingPreparation);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -905,7 +905,8 @@ public class ItemManagerImpl implements ItemManager, Listener {
|
|||||||
Loot loot = plugin.getLootManager().getLoot(id);
|
Loot loot = plugin.getLootManager().getLoot(id);
|
||||||
if (loot != null) {
|
if (loot != null) {
|
||||||
Condition condition = new Condition(event.getPlayer());
|
Condition condition = new Condition(event.getPlayer());
|
||||||
GlobalSettings.triggerLootActions(ActionTrigger.CONSUME, condition);
|
if (!loot.disableGlobalAction())
|
||||||
|
GlobalSettings.triggerLootActions(ActionTrigger.CONSUME, condition);
|
||||||
loot.triggerActions(ActionTrigger.CONSUME, condition);
|
loot.triggerActions(ActionTrigger.CONSUME, condition);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -269,6 +269,7 @@ public class LootManagerImpl implements LootManager {
|
|||||||
.disableGames(section.getBoolean("disable-game", CFConfig.globalDisableGame))
|
.disableGames(section.getBoolean("disable-game", CFConfig.globalDisableGame))
|
||||||
.instantGame(section.getBoolean("instant-game", CFConfig.globalInstantGame))
|
.instantGame(section.getBoolean("instant-game", CFConfig.globalInstantGame))
|
||||||
.showInFinder(section.getBoolean("show-in-fishfinder", CFConfig.globalShowInFinder))
|
.showInFinder(section.getBoolean("show-in-fishfinder", CFConfig.globalShowInFinder))
|
||||||
|
.disableGlobalActions(section.getBoolean("disable-global-event", false))
|
||||||
.score(section.getDouble("score"))
|
.score(section.getDouble("score"))
|
||||||
.lootGroup(ConfigUtils.stringListArgs(section.get("group")).toArray(new String[0]))
|
.lootGroup(ConfigUtils.stringListArgs(section.get("group")).toArray(new String[0]))
|
||||||
.nick(section.getString("nick", section.getString("display.name", key)))
|
.nick(section.getString("nick", section.getString("display.name", key)))
|
||||||
|
|||||||
Reference in New Issue
Block a user