69 lines
2.9 KiB
Java
69 lines
2.9 KiB
Java
package com.hypixel.hytale.builtin.adventure.shop;
|
|
|
|
import com.hypixel.hytale.assetstore.map.DefaultAssetMap;
|
|
import com.hypixel.hytale.builtin.adventure.shop.barter.BarterShopAsset;
|
|
import com.hypixel.hytale.builtin.adventure.shop.barter.BarterShopState;
|
|
import com.hypixel.hytale.server.core.asset.HytaleAssetStore;
|
|
import com.hypixel.hytale.server.core.asset.type.item.config.Item;
|
|
import com.hypixel.hytale.server.core.entity.entities.player.pages.choices.ChoiceElement;
|
|
import com.hypixel.hytale.server.core.entity.entities.player.pages.choices.ChoiceInteraction;
|
|
import com.hypixel.hytale.server.core.modules.interaction.interaction.config.server.OpenCustomUIInteraction;
|
|
import com.hypixel.hytale.server.core.plugin.JavaPlugin;
|
|
import com.hypixel.hytale.server.core.plugin.JavaPluginInit;
|
|
import java.util.logging.Level;
|
|
import javax.annotation.Nonnull;
|
|
|
|
public class ShopPlugin extends JavaPlugin {
|
|
protected static ShopPlugin instance;
|
|
|
|
public static ShopPlugin get() {
|
|
return instance;
|
|
}
|
|
|
|
public ShopPlugin(@Nonnull JavaPluginInit init) {
|
|
super(init);
|
|
}
|
|
|
|
@Override
|
|
protected void setup() {
|
|
instance = this;
|
|
this.getAssetRegistry()
|
|
.register(
|
|
((HytaleAssetStore.Builder)((HytaleAssetStore.Builder)((HytaleAssetStore.Builder)((HytaleAssetStore.Builder)HytaleAssetStore.builder(
|
|
ShopAsset.class, new DefaultAssetMap()
|
|
)
|
|
.setPath("Shops"))
|
|
.setCodec(ShopAsset.CODEC))
|
|
.setKeyFunction(ShopAsset::getId))
|
|
.loadsAfter(Item.class))
|
|
.build()
|
|
);
|
|
this.getAssetRegistry()
|
|
.register(
|
|
((HytaleAssetStore.Builder)((HytaleAssetStore.Builder)((HytaleAssetStore.Builder)((HytaleAssetStore.Builder)HytaleAssetStore.builder(
|
|
BarterShopAsset.class, new DefaultAssetMap()
|
|
)
|
|
.setPath("BarterShops"))
|
|
.setCodec(BarterShopAsset.CODEC))
|
|
.setKeyFunction(BarterShopAsset::getId))
|
|
.loadsAfter(Item.class))
|
|
.build()
|
|
);
|
|
this.getCodecRegistry(ChoiceElement.CODEC).register("ShopElement", ShopElement.class, ShopElement.CODEC);
|
|
this.getCodecRegistry(ChoiceInteraction.CODEC).register("GiveItem", GiveItemInteraction.class, GiveItemInteraction.CODEC);
|
|
this.getCodecRegistry(OpenCustomUIInteraction.PAGE_CODEC).register("Shop", ShopPageSupplier.class, ShopPageSupplier.CODEC);
|
|
}
|
|
|
|
@Override
|
|
protected void start() {
|
|
BarterShopState.initialize(this.getDataDirectory());
|
|
this.getLogger().at(Level.INFO).log("Barter shop state initialized");
|
|
}
|
|
|
|
@Override
|
|
protected void shutdown() {
|
|
BarterShopState.shutdown();
|
|
this.getLogger().at(Level.INFO).log("Barter shop state saved");
|
|
}
|
|
}
|