123456789101112131415161718192021222324252627282930313233343536 |
- package me.km.snuviscript.commands;
- import me.hammerle.snuviscript.code.ScriptManager;
- import me.km.snuviscript.FakeMerchant;
- import net.minecraft.entity.player.ServerPlayerEntity;
- import net.minecraft.item.ItemStack;
- import net.minecraft.item.MerchantOffer;
- import net.minecraft.util.text.StringTextComponent;
- public class ShopCommands {
- public static void registerFunctions(ScriptManager sm) {
- sm.registerFunction("shop.new", (sc, in) -> new FakeMerchant());
- sm.registerConsumer("shop.addoffer", (sc, in) -> {
- FakeMerchant npc = (FakeMerchant) in[0].get(sc);
- ItemStack buy = (ItemStack) in[1].get(sc);
- ItemStack sell = (ItemStack) in[2].get(sc);
- int maxUses = (in.length >= 4) ? in[3].getInt(sc) : Integer.MAX_VALUE;
- npc.getOffers().add(new MerchantOffer(buy, sell, maxUses, 0, 1.0f));
- });
- sm.registerConsumer("shop.adddoubleoffer", (sc, in) -> {
- FakeMerchant npc = (FakeMerchant) in[0].get(sc);
- ItemStack buyA = (ItemStack) in[1].get(sc);
- ItemStack buyB = (ItemStack) in[2].get(sc);
- ItemStack sell = (ItemStack) in[3].get(sc);
- int maxUses = (in.length >= 5) ? in[4].getInt(sc) : Integer.MAX_VALUE;
- npc.getOffers().add(new MerchantOffer(buyA, buyB, sell, maxUses, 0, 1.0f));
- });
- sm.registerConsumer("shop.open", (sc, in) -> {
- FakeMerchant npc = (FakeMerchant) in[0].get(sc);
- ServerPlayerEntity p = (ServerPlayerEntity) in[1].get(sc);
- String name = in[2].getString(sc);
- npc.setCustomer(p);
- npc.openMerchantContainer(p, new StringTextComponent(name), 1);
- });
- }
- }
|