mirror of
https://github.com/Xiao-MoMi/Custom-Fishing.git
synced 2025-12-19 15:09:24 +00:00
add craftengine functions support
This commit is contained in:
@@ -69,8 +69,8 @@ dependencies {
|
|||||||
compileOnly("io.th0rgal:oraxen:1.168.0")
|
compileOnly("io.th0rgal:oraxen:1.168.0")
|
||||||
compileOnly("com.nexomc:nexo:1.7.3")
|
compileOnly("com.nexomc:nexo:1.7.3")
|
||||||
compileOnly("com.github.brcdev-minecraft:shopgui-api:3.0.0")
|
compileOnly("com.github.brcdev-minecraft:shopgui-api:3.0.0")
|
||||||
compileOnly("net.momirealms:craft-engine-core:0.0.61")
|
compileOnly("net.momirealms:craft-engine-core:0.0.65")
|
||||||
compileOnly("net.momirealms:craft-engine-bukkit:0.0.61")
|
compileOnly("net.momirealms:craft-engine-bukkit:0.0.65")
|
||||||
// entity
|
// entity
|
||||||
compileOnly("io.lumine:Mythic-Dist:5.6.2")
|
compileOnly("io.lumine:Mythic-Dist:5.6.2")
|
||||||
// eco
|
// eco
|
||||||
|
|||||||
@@ -0,0 +1,43 @@
|
|||||||
|
package net.momirealms.customfishing.bukkit.integration.action;
|
||||||
|
|
||||||
|
import net.momirealms.craftengine.bukkit.api.BukkitAdaptors;
|
||||||
|
import net.momirealms.craftengine.core.plugin.context.ContextHolder;
|
||||||
|
import net.momirealms.craftengine.core.plugin.context.PlayerOptionalContext;
|
||||||
|
import net.momirealms.craftengine.core.plugin.context.event.EventFunctions;
|
||||||
|
import net.momirealms.craftengine.core.plugin.context.function.Function;
|
||||||
|
import net.momirealms.customfishing.api.BukkitCustomFishingPlugin;
|
||||||
|
import net.momirealms.customfishing.api.mechanic.action.Action;
|
||||||
|
import net.momirealms.customfishing.api.mechanic.action.ActionFactory;
|
||||||
|
import net.momirealms.customfishing.api.mechanic.misc.value.MathValue;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
public class CEActionExpansion implements ActionFactory<Player> {
|
||||||
|
|
||||||
|
public static void register() {
|
||||||
|
BukkitCustomFishingPlugin.getInstance().getActionManager().registerAction(new CEActionExpansion(), "ce-function");
|
||||||
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings({"unchecked", "rawtypes"})
|
||||||
|
@Override
|
||||||
|
public Action<Player> process(Object arg, MathValue<Player> mathValue) {
|
||||||
|
if (arg instanceof List<?> list) {
|
||||||
|
List<Function<net.momirealms.craftengine.core.plugin.context.Context>> functions = new ArrayList<>();
|
||||||
|
for (Object o : list) {
|
||||||
|
if (o instanceof Map functionArguments) {
|
||||||
|
functions.add(EventFunctions.fromMap(functionArguments));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return context -> {
|
||||||
|
PlayerOptionalContext ctx = PlayerOptionalContext.of(BukkitAdaptors.adapt(context.holder()), ContextHolder.builder());
|
||||||
|
for (Function<net.momirealms.craftengine.core.plugin.context.Context> function : functions) {
|
||||||
|
function.run(ctx);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
return context -> {};
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -57,7 +57,6 @@ dependencies {
|
|||||||
|
|
||||||
tasks {
|
tasks {
|
||||||
shadowJar {
|
shadowJar {
|
||||||
from(project(":compatibility:j21").tasks.jar.get().archiveFile)
|
|
||||||
archiveFileName = "CustomFishing-${rootProject.properties["project_version"]}.jar"
|
archiveFileName = "CustomFishing-${rootProject.properties["project_version"]}.jar"
|
||||||
destinationDirectory.set(file("$rootDir/target"))
|
destinationDirectory.set(file("$rootDir/target"))
|
||||||
relocate("net.kyori", "net.momirealms.customfishing.libraries")
|
relocate("net.kyori", "net.momirealms.customfishing.libraries")
|
||||||
|
|||||||
@@ -21,7 +21,9 @@ import net.momirealms.customfishing.api.BukkitCustomFishingPlugin;
|
|||||||
import net.momirealms.customfishing.api.integration.*;
|
import net.momirealms.customfishing.api.integration.*;
|
||||||
import net.momirealms.customfishing.bukkit.block.BukkitBlockManager;
|
import net.momirealms.customfishing.bukkit.block.BukkitBlockManager;
|
||||||
import net.momirealms.customfishing.bukkit.entity.BukkitEntityManager;
|
import net.momirealms.customfishing.bukkit.entity.BukkitEntityManager;
|
||||||
|
import net.momirealms.customfishing.bukkit.integration.action.CEActionExpansion;
|
||||||
import net.momirealms.customfishing.bukkit.integration.block.ItemsAdderBlockProvider;
|
import net.momirealms.customfishing.bukkit.integration.block.ItemsAdderBlockProvider;
|
||||||
|
import net.momirealms.customfishing.bukkit.integration.block.NexoBlockProvider;
|
||||||
import net.momirealms.customfishing.bukkit.integration.block.OraxenBlockProvider;
|
import net.momirealms.customfishing.bukkit.integration.block.OraxenBlockProvider;
|
||||||
import net.momirealms.customfishing.bukkit.integration.enchant.AdvancedEnchantmentsProvider;
|
import net.momirealms.customfishing.bukkit.integration.enchant.AdvancedEnchantmentsProvider;
|
||||||
import net.momirealms.customfishing.bukkit.integration.enchant.VanillaEnchantmentsProvider;
|
import net.momirealms.customfishing.bukkit.integration.enchant.VanillaEnchantmentsProvider;
|
||||||
@@ -103,31 +105,12 @@ public class BukkitIntegrationManager implements IntegrationManager {
|
|||||||
registerEntityProvider(new ItemsAdderEntityProvider());
|
registerEntityProvider(new ItemsAdderEntityProvider());
|
||||||
}
|
}
|
||||||
if (isHooked("CraftEngine")) {
|
if (isHooked("CraftEngine")) {
|
||||||
try {
|
registerItemProvider(new CraftEngineItemProvider());
|
||||||
Class<?> ceItemProviderClass = Class.forName("net.momirealms.customfishing.bukkit.integration.item.CraftEngineItemProvider");
|
CEActionExpansion.register();
|
||||||
Constructor<?> itemProviderConstructor = ceItemProviderClass.getDeclaredConstructor();
|
|
||||||
itemProviderConstructor.setAccessible(true);
|
|
||||||
ItemProvider itemProvider = (ItemProvider) itemProviderConstructor.newInstance();
|
|
||||||
registerItemProvider(itemProvider);
|
|
||||||
} catch (ReflectiveOperationException e) {
|
|
||||||
plugin.getPluginLogger().warn("Failed to hook CraftEngine", e);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if (isHooked("Nexo")) {
|
if (isHooked("Nexo")) {
|
||||||
try {
|
registerItemProvider(new NexoItemProvider());
|
||||||
Class<?> nexoItemProviderClass = Class.forName("net.momirealms.customfishing.bukkit.integration.item.NexoItemProvider");
|
registerBlockProvider(new NexoBlockProvider());
|
||||||
Constructor<?> itemProviderConstructor = nexoItemProviderClass.getDeclaredConstructor();
|
|
||||||
itemProviderConstructor.setAccessible(true);
|
|
||||||
ItemProvider itemProvider = (ItemProvider) itemProviderConstructor.newInstance();
|
|
||||||
registerItemProvider(itemProvider);
|
|
||||||
Class<?> nexoBlockProviderClass = Class.forName("net.momirealms.customfishing.bukkit.integration.block.NexoBlockProvider");
|
|
||||||
Constructor<?> nexoBlockProviderConstructor = nexoBlockProviderClass.getDeclaredConstructor();
|
|
||||||
nexoBlockProviderConstructor.setAccessible(true);
|
|
||||||
BlockProvider blockProvider = (BlockProvider) nexoBlockProviderConstructor.newInstance();
|
|
||||||
registerBlockProvider(blockProvider);
|
|
||||||
} catch (ReflectiveOperationException e) {
|
|
||||||
plugin.getPluginLogger().warn("Failed to hook Nexo", e);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if (isHooked("MMOItems")) {
|
if (isHooked("MMOItems")) {
|
||||||
registerItemProvider(new MMOItemsItemProvider());
|
registerItemProvider(new MMOItemsItemProvider());
|
||||||
|
|||||||
@@ -2,4 +2,3 @@ rootProject.name = "CustomFishing"
|
|||||||
include(":api")
|
include(":api")
|
||||||
include(":core")
|
include(":core")
|
||||||
include(":compatibility")
|
include(":compatibility")
|
||||||
include(":compatibility:j21")
|
|
||||||
|
|||||||
Reference in New Issue
Block a user