Implements the scrapper edit command

This commit is contained in:
2023-11-16 13:06:24 +01:00
parent 4f885135e3
commit 72d33ed7a2
15 changed files with 302 additions and 143 deletions

View File

@ -2,6 +2,8 @@ package net.knarcraft.blacksmith.trait;
import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.api.trait.Trait;
import net.knarcraft.blacksmith.config.Setting;
import net.knarcraft.blacksmith.config.Settings;
import net.knarcraft.blacksmith.config.TraitSettings;
import net.knarcraft.blacksmith.formatting.TimeFormatter;
import net.knarcraft.blacksmith.manager.EconomyManager;
@ -10,6 +12,7 @@ import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.Calendar;
import java.util.HashMap;
@ -22,10 +25,10 @@ import static net.knarcraft.blacksmith.formatting.BlacksmithStringFormatter.send
/**
* A custom trait that utilizes sessions
*/
public abstract class CustomTrait extends Trait {
public abstract class CustomTrait<K extends Setting> extends Trait {
protected Session session;
protected TraitSettings config;
protected TraitSettings<K> config;
protected final Map<UUID, Calendar> coolDowns = new HashMap<>();
protected long currentSessionStartTime = System.currentTimeMillis();
@ -43,10 +46,19 @@ public abstract class CustomTrait extends Trait {
*
* @param config <p>The trait settings to use</p>
*/
protected void setTraitSettings(TraitSettings config) {
protected void setTraitSettings(TraitSettings<K> config) {
this.config = config;
}
/**
* Gets the settings used by this trait
*
* @return <p>The settings used by this trait</p>
*/
public @Nullable Settings<K> getTraitSettings() {
return this.config;
}
/**
* Starts a new session, and prepares to repair the player's item
*