mirror of
https://github.com/FancyInnovations/FancyPlugins.git
synced 2025-12-05 23:33:36 +00:00
Compare commits
8 Commits
5c5f82736b
...
6fe7cbabbd
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6fe7cbabbd | ||
|
|
0d378fa951 | ||
|
|
ccf9fe0d59 | ||
|
|
b3fc33cb95 | ||
|
|
e1ba7dd888 | ||
|
|
8735da08a6 | ||
|
|
540b3ad738 | ||
|
|
f71c783163 |
@@ -14,7 +14,7 @@ repositories {
|
|||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
compileOnly("io.papermc.paper:paper-api:1.21.10-R0.1-SNAPSHOT")
|
compileOnly("io.papermc.paper:paper-api:1.19.4-R0.1-SNAPSHOT")
|
||||||
compileOnly("de.oliver.FancyAnalytics:logger:0.0.8")
|
compileOnly("de.oliver.FancyAnalytics:logger:0.0.8")
|
||||||
compileOnly("org.jetbrains:annotations:26.0.2")
|
compileOnly("org.jetbrains:annotations:26.0.2")
|
||||||
|
|
||||||
@@ -26,7 +26,7 @@ dependencies {
|
|||||||
tasks {
|
tasks {
|
||||||
compileJava {
|
compileJava {
|
||||||
options.encoding = Charsets.UTF_8.name()
|
options.encoding = Charsets.UTF_8.name()
|
||||||
options.release.set(21)
|
options.release.set(17) //TODO change to 21, once 1.19.4 support is dropped
|
||||||
}
|
}
|
||||||
|
|
||||||
java {
|
java {
|
||||||
@@ -47,5 +47,5 @@ tasks {
|
|||||||
}
|
}
|
||||||
|
|
||||||
java {
|
java {
|
||||||
toolchain.languageVersion.set(JavaLanguageVersion.of(21))
|
toolchain.languageVersion.set(JavaLanguageVersion.of(17)) //TODO change to 21, once 1.19.4 support is dropped
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ plugins {
|
|||||||
paperweight.reobfArtifactConfiguration = io.papermc.paperweight.userdev.ReobfArtifactConfiguration.MOJANG_PRODUCTION
|
paperweight.reobfArtifactConfiguration = io.papermc.paperweight.userdev.ReobfArtifactConfiguration.MOJANG_PRODUCTION
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
paperweight.paperDevBundle("25w45a-R0.1-SNAPSHOT")
|
paperweight.paperDevBundle("25w46a-R0.1-SNAPSHOT")
|
||||||
compileOnly(project(":libraries:packets:packets-api"))
|
compileOnly(project(":libraries:packets:packets-api"))
|
||||||
|
|
||||||
testImplementation(project(":libraries:packets"))
|
testImplementation(project(":libraries:packets"))
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
2.8.0.308
|
2.8.0.309
|
||||||
@@ -10,6 +10,7 @@ dependencies {
|
|||||||
compileOnly("io.papermc.paper:paper-api:$minecraftVersion-R0.1-SNAPSHOT")
|
compileOnly("io.papermc.paper:paper-api:$minecraftVersion-R0.1-SNAPSHOT")
|
||||||
|
|
||||||
compileOnly(project(":libraries:common"))
|
compileOnly(project(":libraries:common"))
|
||||||
|
compileOnly(project(":libraries:config"))
|
||||||
compileOnly("de.oliver.FancyAnalytics:logger:0.0.8")
|
compileOnly("de.oliver.FancyAnalytics:logger:0.0.8")
|
||||||
|
|
||||||
implementation("org.lushplugins:ChatColorHandler:6.0.0")
|
implementation("org.lushplugins:ChatColorHandler:6.0.0")
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package de.oliver.fancynpcs.api;
|
package de.oliver.fancynpcs.api;
|
||||||
|
|
||||||
|
import com.fancyinnovations.config.featureflags.FeatureFlagConfig;
|
||||||
import de.oliver.fancyanalytics.logger.ExtendedFancyLogger;
|
import de.oliver.fancyanalytics.logger.ExtendedFancyLogger;
|
||||||
import de.oliver.fancylib.serverSoftware.schedulers.FancyScheduler;
|
import de.oliver.fancylib.serverSoftware.schedulers.FancyScheduler;
|
||||||
import de.oliver.fancylib.translations.Translator;
|
import de.oliver.fancylib.translations.Translator;
|
||||||
@@ -32,8 +33,8 @@ public interface FancyNpcsPlugin {
|
|||||||
ScheduledExecutorService getNpcThread();
|
ScheduledExecutorService getNpcThread();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates a new thread with the given name and runnable.
|
* Creates a new thread with the given name and runnable.
|
||||||
* Warning: Do not use this method, it is for internal use only.
|
* Warning: Do not use this method, it is for internal use only.
|
||||||
*/
|
*/
|
||||||
@ApiStatus.Internal
|
@ApiStatus.Internal
|
||||||
Thread newThread(String name, Runnable runnable);
|
Thread newThread(String name, Runnable runnable);
|
||||||
@@ -44,6 +45,8 @@ public interface FancyNpcsPlugin {
|
|||||||
|
|
||||||
FancyNpcsConfig getFancyNpcConfig();
|
FancyNpcsConfig getFancyNpcConfig();
|
||||||
|
|
||||||
|
FeatureFlagConfig getFeatureFlagConfig();
|
||||||
|
|
||||||
NpcManager getNpcManager();
|
NpcManager getNpcManager();
|
||||||
|
|
||||||
AttributeManager getAttributeManager();
|
AttributeManager getAttributeManager();
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package de.oliver.fancynpcs.api;
|
package de.oliver.fancynpcs.api;
|
||||||
|
|
||||||
import de.oliver.fancylib.RandomUtils;
|
import de.oliver.fancylib.RandomUtils;
|
||||||
|
import de.oliver.fancylib.serverSoftware.ServerSoftware;
|
||||||
import de.oliver.fancylib.translations.Translator;
|
import de.oliver.fancylib.translations.Translator;
|
||||||
import de.oliver.fancynpcs.api.actions.ActionTrigger;
|
import de.oliver.fancynpcs.api.actions.ActionTrigger;
|
||||||
import de.oliver.fancynpcs.api.actions.NpcAction;
|
import de.oliver.fancynpcs.api.actions.NpcAction;
|
||||||
@@ -18,6 +19,7 @@ import java.util.List;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
public abstract class Npc {
|
public abstract class Npc {
|
||||||
|
|
||||||
@@ -110,6 +112,15 @@ public abstract class Npc {
|
|||||||
|
|
||||||
if (shouldBeVisible && !wasVisible) {
|
if (shouldBeVisible && !wasVisible) {
|
||||||
spawn(player);
|
spawn(player);
|
||||||
|
|
||||||
|
// Respawn the npc to fix visibility issues on Folia
|
||||||
|
if (ServerSoftware.isFolia() && FancyNpcsPlugin.get().getFeatureFlagConfig().getFeatureFlag("enable-folia-visibility-fix").isEnabled()) {
|
||||||
|
FancyNpcsPlugin.get().getNpcThread().schedule(() -> {
|
||||||
|
remove(player);
|
||||||
|
spawn(player);
|
||||||
|
}, 100, TimeUnit.MILLISECONDS);
|
||||||
|
}
|
||||||
|
|
||||||
} else if (!shouldBeVisible && wasVisible) {
|
} else if (!shouldBeVisible && wasVisible) {
|
||||||
remove(player);
|
remove(player);
|
||||||
}
|
}
|
||||||
@@ -185,7 +196,7 @@ public abstract class Npc {
|
|||||||
|
|
||||||
// actions
|
// actions
|
||||||
ActionExecutor.execute(actionTrigger, this, player);
|
ActionExecutor.execute(actionTrigger, this, player);
|
||||||
|
|
||||||
if (actionTrigger == ActionTrigger.LEFT_CLICK || actionTrigger == ActionTrigger.RIGHT_CLICK) {
|
if (actionTrigger == ActionTrigger.LEFT_CLICK || actionTrigger == ActionTrigger.RIGHT_CLICK) {
|
||||||
ActionExecutor.execute(ActionTrigger.ANY_CLICK, this, player);
|
ActionExecutor.execute(ActionTrigger.ANY_CLICK, this, player);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ plugins {
|
|||||||
paperweight.reobfArtifactConfiguration = io.papermc.paperweight.userdev.ReobfArtifactConfiguration.MOJANG_PRODUCTION
|
paperweight.reobfArtifactConfiguration = io.papermc.paperweight.userdev.ReobfArtifactConfiguration.MOJANG_PRODUCTION
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
paperweight.paperDevBundle("25w45a-R0.1-SNAPSHOT")
|
paperweight.paperDevBundle("25w46a-R0.1-SNAPSHOT")
|
||||||
// compileOnly("com.fancyinnovations:fancymc:1.21.6-pre2")
|
// compileOnly("com.fancyinnovations:fancymc:1.21.6-pre2")
|
||||||
|
|
||||||
compileOnly(project(":plugins:fancynpcs:fn-api"))
|
compileOnly(project(":plugins:fancynpcs:fn-api"))
|
||||||
|
|||||||
@@ -82,6 +82,7 @@ public class FancyNpcs extends JavaPlugin implements FancyNpcsPlugin {
|
|||||||
public static final FeatureFlag PLAYER_NPCS_FEATURE_FLAG = new FeatureFlag("player-npcs", "Every player can only manage the npcs they have created", false);
|
public static final FeatureFlag PLAYER_NPCS_FEATURE_FLAG = new FeatureFlag("player-npcs", "Every player can only manage the npcs they have created", false);
|
||||||
public static final FeatureFlag USE_NATIVE_THREADS_FEATURE_FLAG = new FeatureFlag("use-native-threads", "Use native threads instead of virtual threads.", false);
|
public static final FeatureFlag USE_NATIVE_THREADS_FEATURE_FLAG = new FeatureFlag("use-native-threads", "Use native threads instead of virtual threads.", false);
|
||||||
public static final FeatureFlag ENABLE_DEBUG_MODE_FEATURE_FLAG = new FeatureFlag("enable-debug-mode", "Enable debug mode", false);
|
public static final FeatureFlag ENABLE_DEBUG_MODE_FEATURE_FLAG = new FeatureFlag("enable-debug-mode", "Enable debug mode", false);
|
||||||
|
public static final FeatureFlag ENABLE_FOLIA_VISIBILITY_FIX_FEATURE_FLAG = new FeatureFlag("enable-folia-visibility-fix", "When enabled, all npcs will respawn after 100ms when they should spawn", false);
|
||||||
public static final FeatureFlag USE_MINECRAFT_USERCACHE_FEATURE_FLAG = new FeatureFlag("use-minecraft-usercache", "Include the content of usercache.json to the username->uuid cache", false);
|
public static final FeatureFlag USE_MINECRAFT_USERCACHE_FEATURE_FLAG = new FeatureFlag("use-minecraft-usercache", "Include the content of usercache.json to the username->uuid cache", false);
|
||||||
|
|
||||||
private static FancyNpcs instance;
|
private static FancyNpcs instance;
|
||||||
@@ -154,6 +155,8 @@ public class FancyNpcs extends JavaPlugin implements FancyNpcsPlugin {
|
|||||||
featureFlagConfig.addFeatureFlag(PLAYER_NPCS_FEATURE_FLAG);
|
featureFlagConfig.addFeatureFlag(PLAYER_NPCS_FEATURE_FLAG);
|
||||||
featureFlagConfig.addFeatureFlag(USE_NATIVE_THREADS_FEATURE_FLAG);
|
featureFlagConfig.addFeatureFlag(USE_NATIVE_THREADS_FEATURE_FLAG);
|
||||||
featureFlagConfig.addFeatureFlag(ENABLE_DEBUG_MODE_FEATURE_FLAG);
|
featureFlagConfig.addFeatureFlag(ENABLE_DEBUG_MODE_FEATURE_FLAG);
|
||||||
|
featureFlagConfig.addFeatureFlag(ENABLE_FOLIA_VISIBILITY_FIX_FEATURE_FLAG);
|
||||||
|
featureFlagConfig.addFeatureFlag(USE_MINECRAFT_USERCACHE_FEATURE_FLAG);
|
||||||
featureFlagConfig.load();
|
featureFlagConfig.load();
|
||||||
|
|
||||||
if (ENABLE_DEBUG_MODE_FEATURE_FLAG.isEnabled()) {
|
if (ENABLE_DEBUG_MODE_FEATURE_FLAG.isEnabled()) {
|
||||||
@@ -598,6 +601,7 @@ public class FancyNpcs extends JavaPlugin implements FancyNpcsPlugin {
|
|||||||
return textConfig;
|
return textConfig;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public FeatureFlagConfig getFeatureFlagConfig() {
|
public FeatureFlagConfig getFeatureFlagConfig() {
|
||||||
return featureFlagConfig;
|
return featureFlagConfig;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user