mirror of
https://github.com/architectury/architectury-api.git
synced 2026-04-01 21:17:45 -05:00
Add an easy way to register Villager and Wandering Trader trades (#84)
* Add TradeRegistry to add Trades a bit more easily. Uses the VillagerTradesEvent on forge * Added TradeRegistry#registerTradeForWanderer which uses the WandererTraderEvent on forge * Added javadoc * Use Fabric own Trade implementation and fixed Test Mod * Update common/src/main/java/me/shedaniel/architectury/registry/TradeRegistry.java Co-authored-by: Juuxel <6596629+Juuxel@users.noreply.github.com> * Update common/src/main/java/me/shedaniel/architectury/registry/TradeRegistry.java Co-authored-by: Juuxel <6596629+Juuxel@users.noreply.github.com> * Update common/src/main/java/me/shedaniel/architectury/registry/TradeRegistry.java Co-authored-by: Juuxel <6596629+Juuxel@users.noreply.github.com> * Update common/src/main/java/me/shedaniel/architectury/registry/TradeRegistry.java Co-authored-by: Juuxel <6596629+Juuxel@users.noreply.github.com> * Added javadoc for SimpleTrade * Use two lists instead of Int2ObjectMap * Use "registerTradeForWanderingTrader" instead of "registerTradeForWanderer" for better clarification * Use IllegalArgumentException instead of RuntimeException * Remove level limit (Mods may be able to remove this restriction in VillagerData#canLevelUp), Clean up forge's implementation Signed-off-by: shedaniel <daniel@shedaniel.me> * Clean up TestTrades and add licenses Signed-off-by: shedaniel <daniel@shedaniel.me> * [ciskip] Reintroduce lower bound validation for level Co-authored-by: Juuxel <6596629+Juuxel@users.noreply.github.com> Co-authored-by: shedaniel <daniel@shedaniel.me> Co-authored-by: Max <maxh2709@gmail.com>
This commit is contained in:
@@ -28,6 +28,7 @@ import me.shedaniel.architectury.test.gamerule.TestGameRules;
|
||||
import me.shedaniel.architectury.test.registry.TestRegistries;
|
||||
import me.shedaniel.architectury.test.registry.client.TestKeybinds;
|
||||
import me.shedaniel.architectury.test.tags.TestTags;
|
||||
import me.shedaniel.architectury.test.trade.TestTrades;
|
||||
import me.shedaniel.architectury.utils.Env;
|
||||
import me.shedaniel.architectury.utils.EnvExecutor;
|
||||
|
||||
@@ -40,6 +41,7 @@ public class TestMod {
|
||||
TestRegistries.initialize();
|
||||
TestGameRules.init();
|
||||
TestTags.initialize();
|
||||
TestTrades.init();
|
||||
if (Platform.getEnvironment() == Env.CLIENT)
|
||||
TestKeybinds.initialize();
|
||||
}
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
/*
|
||||
* This file is part of architectury.
|
||||
* Copyright (C) 2020, 2021 architectury
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* along with this program; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
package me.shedaniel.architectury.test.trade;
|
||||
|
||||
import me.shedaniel.architectury.registry.trade.TradeRegistry;
|
||||
import me.shedaniel.architectury.registry.trade.SimpleTrade;
|
||||
import net.minecraft.core.Registry;
|
||||
import net.minecraft.world.entity.npc.VillagerProfession;
|
||||
import net.minecraft.world.entity.npc.VillagerTrades;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.Items;
|
||||
|
||||
public class TestTrades {
|
||||
public static void init() {
|
||||
for (VillagerProfession villagerProfession : Registry.VILLAGER_PROFESSION) {
|
||||
TradeRegistry.registerVillagerTrade(villagerProfession, 1, TestTrades.createTrades());
|
||||
}
|
||||
TradeRegistry.registerTradeForWanderingTrader(false, TestTrades.createTrades());
|
||||
}
|
||||
|
||||
private static VillagerTrades.ItemListing[] createTrades() {
|
||||
SimpleTrade trade = new SimpleTrade(Items.APPLE.getDefaultInstance(), ItemStack.EMPTY, Items.ACACIA_BOAT.getDefaultInstance(), 1, 0, 1.0F);
|
||||
return new VillagerTrades.ItemListing[]{trade};
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user