Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
68a5bab704 |
@@ -12,7 +12,7 @@ apply plugin: 'net.minecraftforge.gradle'
|
|||||||
apply plugin: 'eclipse'
|
apply plugin: 'eclipse'
|
||||||
apply plugin: 'maven-publish'
|
apply plugin: 'maven-publish'
|
||||||
|
|
||||||
version = '1.17.1-2.28'
|
version = '1.17.1-2.31'
|
||||||
group = 'nl.requios.effortlessbuilding' // http://maven.apache.org/guides/mini/guide-naming-conventions.html
|
group = 'nl.requios.effortlessbuilding' // http://maven.apache.org/guides/mini/guide-naming-conventions.html
|
||||||
archivesBaseName = 'effortlessbuilding'
|
archivesBaseName = 'effortlessbuilding'
|
||||||
|
|
||||||
|
|||||||
@@ -16,33 +16,25 @@ import javax.annotation.Nonnull;
|
|||||||
@Mod.EventBusSubscriber
|
@Mod.EventBusSubscriber
|
||||||
public class ModeSettingsManager {
|
public class ModeSettingsManager {
|
||||||
|
|
||||||
private static ModeSettings cache = null;
|
|
||||||
|
|
||||||
//Retrieves the buildsettings of a player through the modeCapability capability
|
//Retrieves the buildsettings of a player through the modeCapability capability
|
||||||
//Never returns null
|
//Never returns null
|
||||||
@Nonnull
|
@Nonnull
|
||||||
public static ModeSettings getModeSettings(Player player) {
|
public static ModeSettings getModeSettings(Player player) {
|
||||||
if (cache != null) return cache;
|
|
||||||
|
|
||||||
LazyOptional<ModeCapabilityManager.IModeCapability> modeCapability =
|
LazyOptional<ModeCapabilityManager.IModeCapability> modeCapability =
|
||||||
player.getCapability(ModeCapabilityManager.MODE_CAPABILITY, null);
|
player.getCapability(ModeCapabilityManager.MODE_CAPABILITY, null);
|
||||||
|
|
||||||
if (modeCapability.isPresent()) {
|
if (modeCapability.isPresent()) {
|
||||||
ModeCapabilityManager.IModeCapability capability = modeCapability.orElse(null);
|
ModeCapabilityManager.IModeCapability capability = modeCapability.orElse(null);
|
||||||
cache = capability.getModeData();
|
if (capability.getModeData() == null){
|
||||||
if (cache == null) {
|
capability.setModeData(new ModeSettings());
|
||||||
cache = new ModeSettings();
|
|
||||||
capability.setModeData(cache);
|
|
||||||
}
|
}
|
||||||
//Add invalidation listener, to invalidate cache
|
|
||||||
modeCapability.addListener(self -> cache = null);
|
|
||||||
return capability.getModeData();
|
return capability.getModeData();
|
||||||
}
|
}
|
||||||
|
|
||||||
EffortlessBuilding.logger.warn("Player does not have modeCapability: " + player);
|
EffortlessBuilding.logger.warn("Player does not have modeCapability: " + player);
|
||||||
//Return dummy settings
|
//Return dummy settings
|
||||||
return new ModeSettings();
|
return new ModeSettings();
|
||||||
// throw new IllegalArgumentException("Player does not have modeCapability capability");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void setModeSettings(Player player, ModeSettings modeSettings) {
|
public static void setModeSettings(Player player, ModeSettings modeSettings) {
|
||||||
|
|||||||
@@ -17,27 +17,19 @@ import javax.annotation.Nonnull;
|
|||||||
@Mod.EventBusSubscriber
|
@Mod.EventBusSubscriber
|
||||||
public class ModifierSettingsManager {
|
public class ModifierSettingsManager {
|
||||||
|
|
||||||
private static ModifierSettings cache = null;
|
|
||||||
|
|
||||||
//Retrieves the buildsettings of a player through the modifierCapability capability
|
//Retrieves the buildsettings of a player through the modifierCapability capability
|
||||||
//Never returns null
|
//Never returns null
|
||||||
@Nonnull
|
@Nonnull
|
||||||
public static ModifierSettings getModifierSettings(Player player) {
|
public static ModifierSettings getModifierSettings(Player player) {
|
||||||
if (cache != null) return cache;
|
|
||||||
|
|
||||||
LazyOptional<ModifierCapabilityManager.IModifierCapability> modifierCapability =
|
LazyOptional<ModifierCapabilityManager.IModifierCapability> modifierCapability =
|
||||||
player.getCapability(ModifierCapabilityManager.MODIFIER_CAPABILITY, null);
|
player.getCapability(ModifierCapabilityManager.MODIFIER_CAPABILITY, null);
|
||||||
|
|
||||||
if (modifierCapability.isPresent()) {
|
if (modifierCapability.isPresent()) {
|
||||||
ModifierCapabilityManager.IModifierCapability capability = modifierCapability.orElse(null);
|
ModifierCapabilityManager.IModifierCapability capability = modifierCapability.orElse(null);
|
||||||
cache = capability.getModifierData();
|
if (capability.getModifierData() == null){
|
||||||
if (cache == null) {
|
capability.setModifierData(new ModifierSettings());
|
||||||
cache = new ModifierSettings();
|
|
||||||
capability.setModifierData(cache);
|
|
||||||
}
|
}
|
||||||
//Add invalidation listener, to invalidate cache
|
return capability.getModifierData();
|
||||||
modifierCapability.addListener(self -> cache = null);
|
|
||||||
return cache;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
EffortlessBuilding.logger.warn("Player does not have modifierCapability: " + player);
|
EffortlessBuilding.logger.warn("Player does not have modifierCapability: " + player);
|
||||||
|
|||||||
Reference in New Issue
Block a user