mirror of
https://github.com/mcMMO-Dev/mcMMO.git
synced 2024-11-25 06:36:45 +01:00
Current progress on data accessors
Pushing because I started on stuff and don't wanna lose it...
This commit is contained in:
parent
ec58a0e81f
commit
21a0a05683
@ -1,3 +1,8 @@
|
|||||||
plugins {
|
plugins {
|
||||||
`java-library`
|
`java-library`
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
api("org.jetbrains:annotations:17.0.0")
|
||||||
}
|
}
|
@ -0,0 +1,4 @@
|
|||||||
|
package com.gmail.nossr50.mcmmo.api.data;
|
||||||
|
|
||||||
|
public interface MMOEntity {
|
||||||
|
}
|
@ -1,6 +1,6 @@
|
|||||||
package com.gmail.nossr50.mcmmo.api.data;
|
package com.gmail.nossr50.mcmmo.api.data;
|
||||||
|
|
||||||
public interface MMOPlayer<N> {
|
public interface MMOPlayer<N> extends MMOEntity {
|
||||||
|
|
||||||
|
|
||||||
N getPlayer();
|
N getPlayer();
|
||||||
|
@ -1,5 +1,9 @@
|
|||||||
package com.gmail.nossr50.mcmmo.api.platform;
|
package com.gmail.nossr50.mcmmo.api.platform;
|
||||||
|
|
||||||
|
import com.gmail.nossr50.mcmmo.api.data.MMOPlayer;
|
||||||
|
import com.gmail.nossr50.mcmmo.api.platform.util.MetadataStore;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
public interface PlatformProvider {
|
public interface PlatformProvider {
|
||||||
@ -7,4 +11,10 @@ public interface PlatformProvider {
|
|||||||
Logger getLogger();
|
Logger getLogger();
|
||||||
|
|
||||||
void tearDown();
|
void tearDown();
|
||||||
|
|
||||||
|
MetadataStore getMetadataStore();
|
||||||
|
|
||||||
|
File getDataFolder();
|
||||||
|
|
||||||
|
void getVersion();
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,17 @@
|
|||||||
|
package com.gmail.nossr50.mcmmo.api.platform.util;
|
||||||
|
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
|
public class MetadataKey<V> {
|
||||||
|
|
||||||
|
private final String key;
|
||||||
|
|
||||||
|
public MetadataKey(@NotNull String key) {
|
||||||
|
this.key = key;
|
||||||
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
public String getKey() {
|
||||||
|
return key;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,39 @@
|
|||||||
|
package com.gmail.nossr50.mcmmo.api.platform.util;
|
||||||
|
|
||||||
|
import com.gmail.nossr50.mcmmo.api.data.MMOEntity;
|
||||||
|
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
|
|
||||||
|
public interface MetadataStore {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param holder holder of the metadata
|
||||||
|
* @param key key for the metdata
|
||||||
|
* @param <V> value type
|
||||||
|
* @return the metadata value or null
|
||||||
|
*/
|
||||||
|
@Nullable
|
||||||
|
<V> V getMetadata(@NotNull MMOEntity holder, @NotNull MetadataKey<V> key);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param holder holder of the metdata
|
||||||
|
* @param key metadata key
|
||||||
|
* @param value metadata value
|
||||||
|
* @param <V> value type
|
||||||
|
* @return the existing metadata value if set, or null
|
||||||
|
*/
|
||||||
|
@Nullable
|
||||||
|
<V> V setMetadata(@NotNull MMOEntity holder, @NotNull MetadataKey<V> key, @Nullable V value);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param holder holder of the metadata
|
||||||
|
* @param key metadata key
|
||||||
|
* @param <V> value type
|
||||||
|
* @return the removed metadata key
|
||||||
|
*/
|
||||||
|
@Nullable
|
||||||
|
<V> V removeMetadata(@NotNull MMOEntity holder, @NotNull MetadataKey<V> key);
|
||||||
|
|
||||||
|
}
|
@ -33,7 +33,7 @@ dependencies {
|
|||||||
implementation(project(":mcmmo-core"))
|
implementation(project(":mcmmo-core"))
|
||||||
|
|
||||||
api("org.apache.tomcat:tomcat-jdbc:7.0.52")
|
api("org.apache.tomcat:tomcat-jdbc:7.0.52")
|
||||||
implementation("org.jetbrains:annotations:17.0.0")
|
api("net.kyori:event-api:3.0.0")
|
||||||
implementation("org.apache.maven.scm:maven-scm-provider-gitexe:1.8.1")
|
implementation("org.apache.maven.scm:maven-scm-provider-gitexe:1.8.1")
|
||||||
implementation("org.bstats:bstats-bukkit:1.4")
|
implementation("org.bstats:bstats-bukkit:1.4")
|
||||||
implementation("org.spigotmc:spigot:1.14.4-R0.1-SNAPSHOT")
|
implementation("org.spigotmc:spigot:1.14.4-R0.1-SNAPSHOT")
|
||||||
|
@ -2,6 +2,7 @@ package com.gmail.nossr50.mcmmo.bukkit;
|
|||||||
|
|
||||||
import com.gmail.nossr50.mcMMO;
|
import com.gmail.nossr50.mcMMO;
|
||||||
import com.gmail.nossr50.mcmmo.api.platform.PlatformProvider;
|
import com.gmail.nossr50.mcmmo.api.platform.PlatformProvider;
|
||||||
|
import com.gmail.nossr50.mcmmo.api.platform.util.MetadataStore;
|
||||||
|
|
||||||
import org.bukkit.event.HandlerList;
|
import org.bukkit.event.HandlerList;
|
||||||
import org.bukkit.plugin.java.JavaPlugin;
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
@ -25,4 +26,9 @@ public class BukkitBoostrap extends JavaPlugin implements PlatformProvider {
|
|||||||
core.debug("Unregister all events...");
|
core.debug("Unregister all events...");
|
||||||
HandlerList.unregisterAll(this); // Cancel event registrations
|
HandlerList.unregisterAll(this); // Cancel event registrations
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public MetadataStore getMetadataStore() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
package com.gmail.nossr50.core;
|
package com.gmail.nossr50.core;
|
||||||
|
|
||||||
|
import com.gmail.nossr50.mcmmo.api.platform.util.MetadataKey;
|
||||||
|
|
||||||
import org.bukkit.metadata.FixedMetadataValue;
|
import org.bukkit.metadata.FixedMetadataValue;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -8,30 +10,28 @@ import org.bukkit.metadata.FixedMetadataValue;
|
|||||||
public class MetadataConstants {
|
public class MetadataConstants {
|
||||||
|
|
||||||
/* Metadata Values */
|
/* Metadata Values */
|
||||||
public static final String FISH_HOOK_REF_METAKEY = "mcMMO: Fish Hook Tracker";
|
public static final MetadataKey<Boolean> FISH_HOOK_REF_METAKEY = new MetadataKey<>("mcMMO: Fish Hook Tracker");
|
||||||
public static final String DODGE_TRACKER = "mcMMO: Dodge Tracker";
|
public static final MetadataKey<Boolean> DODGE_TRACKER = new MetadataKey<>("mcMMO: Dodge Tracker");
|
||||||
public static final String CUSTOM_DAMAGE_METAKEY = "mcMMO: Custom Damage";
|
public static final MetadataKey<Boolean> CUSTOM_DAMAGE_METAKEY = new MetadataKey<>("mcMMO: Custom Damage");
|
||||||
public final static String UNNATURAL_MOB_METAKEY = "mcMMO: Spawned Entity";
|
public final static MetadataKey<Boolean> UNNATURAL_MOB_METAKEY = new MetadataKey<>("mcMMO: Spawned Entity");
|
||||||
public final static String PISTON_TRACKING_METAKEY = "mcMMO: Piston Tracking";
|
public final static MetadataKey<Boolean> PISTON_TRACKING_METAKEY = new MetadataKey<>("mcMMO: Piston Tracking");
|
||||||
public final static String FURNACE_TRACKING_METAKEY = "mcMMO: Tracked Furnace";
|
public final static MetadataKey<Boolean> FURNACE_TRACKING_METAKEY = new MetadataKey<>("mcMMO: Tracked Furnace");
|
||||||
public final static String TNT_TRACKING_METAKEY = "mcMMO: Tracked TNT";
|
public final static MetadataKey<Boolean> TNT_TRACKING_METAKEY = new MetadataKey<>("mcMMO: Tracked TNT");
|
||||||
public final static String SPAWNED_FIREWORKS_METAKEY = "mcMMO: Funfetti";
|
public final static MetadataKey<Boolean> SPAWNED_FIREWORKS_METAKEY = new MetadataKey<>("mcMMO: Funfetti");
|
||||||
public final static String SAFE_TNT_METAKEY = "mcMMO: Safe TNT";
|
public final static MetadataKey<Boolean> SAFE_TNT_METAKEY = new MetadataKey<>("mcMMO: Safe TNT");
|
||||||
public final static String CUSTOM_NAME_METAKEY = "mcMMO: Custom Name";
|
public final static MetadataKey<String> CUSTOM_NAME_METAKEY = new MetadataKey<>("mcMMO: Custom Name");
|
||||||
public final static String NAME_VISIBILITY_METAKEY = "mcMMO: Name Visibility";
|
public final static MetadataKey<Boolean> NAME_VISIBILITY_METAKEY = new MetadataKey<>("mcMMO: Name Visibility");
|
||||||
public final static String DROPPED_ITEM_TRACKING_METAKEY = "mcMMO: Tracked Item";
|
public final static MetadataKey<Boolean> DROPPED_ITEM_TRACKING_METAKEY = new MetadataKey<>("mcMMO: Tracked Item");
|
||||||
public final static String INFINITE_ARROW_METAKEY = "mcMMO: Infinite Arrow";
|
public final static MetadataKey<Boolean> INFINITE_ARROW_METAKEY = new MetadataKey<>("mcMMO: Infinite Arrow");
|
||||||
public final static String BOW_FORCE_METAKEY = "mcMMO: Bow Force";
|
public final static MetadataKey<Boolean> BOW_FORCE_METAKEY = new MetadataKey<>("mcMMO: Bow Force");
|
||||||
public final static String ARROW_DISTANCE_METAKEY = "mcMMO: Arrow Distance";
|
public final static MetadataKey<Boolean> ARROW_DISTANCE_METAKEY = new MetadataKey<>("mcMMO: Arrow Distance");
|
||||||
public final static String ARROW_TRACKER_METAKEY = "mcMMO: Arrow Tracker";
|
public final static MetadataKey<Boolean> ARROW_TRACKER_METAKEY = new MetadataKey<>("mcMMO: Arrow Tracker");
|
||||||
public final static String BONUS_DROPS_METAKEY = "mcMMO: Bonus Drops";
|
public final static MetadataKey<Boolean> BONUS_DROPS_METAKEY = new MetadataKey<>("mcMMO: Bonus Drops");
|
||||||
public final static String DISARMED_ITEM_METAKEY = "mcMMO: Disarmed Item";
|
public final static MetadataKey<Boolean> DISARMED_ITEM_METAKEY = new MetadataKey<>("mcMMO: Disarmed Item");
|
||||||
public final static String PLAYER_DATA_METAKEY = "mcMMO: Player Data";
|
public final static MetadataKey<Boolean> PLAYER_DATA_METAKEY = new MetadataKey<>("mcMMO: Player Data");
|
||||||
public final static String GREEN_THUMB_METAKEY = "mcMMO: Green Thumb";
|
public final static MetadataKey<Boolean> GREEN_THUMB_METAKEY = new MetadataKey<>("mcMMO: Green Thumb");
|
||||||
public final static String DATABASE_PROCESSING_COMMAND_METAKEY = "mcMMO: Processing Database Command";
|
public final static MetadataKey<Boolean> DATABASE_PROCESSING_COMMAND_METAKEY = new MetadataKey<>("mcMMO: Processing Database Command");
|
||||||
public final static String PETS_ANIMAL_TRACKING_METAKEY = "mcMMO: Pet Animal";
|
public final static MetadataKey<Boolean> PETS_ANIMAL_TRACKING_METAKEY = new MetadataKey<>("mcMMO: Pet Animal");
|
||||||
public static final String COTW_TEMPORARY_SUMMON = "mcMMO: COTW Entity";
|
public static final MetadataKey<Boolean> COTW_TEMPORARY_SUMMON = new MetadataKey<>("mcMMO: COTW Entity");
|
||||||
|
|
||||||
public static FixedMetadataValue metadataValue; //Gains value in onEnable
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -139,9 +139,6 @@ public class mcMMO implements McMMOApi {
|
|||||||
try {
|
try {
|
||||||
platformProvider.getLogger().setFilter(new LogFilter(this));
|
platformProvider.getLogger().setFilter(new LogFilter(this));
|
||||||
|
|
||||||
//TODO: Disgusting...
|
|
||||||
MetadataConstants.metadataValue = new FixedMetadataValue(this, true);
|
|
||||||
|
|
||||||
PluginManager pluginManager = platformProvider.getServer().getPluginManager();
|
PluginManager pluginManager = platformProvider.getServer().getPluginManager();
|
||||||
healthBarPluginEnabled = pluginManager.getPlugin("HealthBar") != null;
|
healthBarPluginEnabled = pluginManager.getPlugin("HealthBar") != null;
|
||||||
|
|
||||||
@ -214,7 +211,7 @@ public class mcMMO implements McMMOApi {
|
|||||||
new PlayerProfileLoadingTask(this, player).runTaskLaterAsynchronously(this, 1); // 1 Tick delay to ensure the player is marked as online before we begin loading
|
new PlayerProfileLoadingTask(this, player).runTaskLaterAsynchronously(this, 1); // 1 Tick delay to ensure the player is marked as online before we begin loading
|
||||||
}
|
}
|
||||||
|
|
||||||
debug("Version " + getDescription().getVersion() + " is enabled!");
|
debug("Version " + getVersion() + " is enabled!");
|
||||||
|
|
||||||
scheduleTasks();
|
scheduleTasks();
|
||||||
commandRegistrationManager = new CommandRegistrationManager(this);
|
commandRegistrationManager = new CommandRegistrationManager(this);
|
||||||
@ -307,6 +304,10 @@ public class mcMMO implements McMMOApi {
|
|||||||
perkUtils = new PerkUtils(this);
|
perkUtils = new PerkUtils(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private String getVersion() {
|
||||||
|
platformProvider.getVersion();
|
||||||
|
}
|
||||||
|
|
||||||
public void onLoad()
|
public void onLoad()
|
||||||
{
|
{
|
||||||
if(getServer().getPluginManager().getPlugin("WorldGuard") != null) {
|
if(getServer().getPluginManager().getPlugin("WorldGuard") != null) {
|
||||||
@ -579,7 +580,7 @@ public class mcMMO implements McMMOApi {
|
|||||||
* Setup the various storage file paths
|
* Setup the various storage file paths
|
||||||
*/
|
*/
|
||||||
private void setupFilePaths() {
|
private void setupFilePaths() {
|
||||||
mainDirectory = getDataFolder().getPath() + File.separator;
|
mainDirectory = platformProvider.getDataFolder().getPath() + File.separator;
|
||||||
localesDirectory = mainDirectory + "locales" + File.separator;
|
localesDirectory = mainDirectory + "locales" + File.separator;
|
||||||
flatFileDirectory = mainDirectory + "flatfile" + File.separator;
|
flatFileDirectory = mainDirectory + "flatfile" + File.separator;
|
||||||
usersFile = flatFileDirectory + "mcmmo.users";
|
usersFile = flatFileDirectory + "mcmmo.users";
|
||||||
|
Loading…
Reference in New Issue
Block a user