Skip to content

Commit

Permalink
Add create_new_trade_offer
Browse files Browse the repository at this point in the history
  • Loading branch information
pisaiah committed Apr 28, 2024
1 parent 2e0d418 commit f17c16d
Show file tree
Hide file tree
Showing 11 changed files with 153 additions and 4 deletions.
6 changes: 6 additions & 0 deletions iCommon-API/src/main/java/me/isaiah/common/IServer.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,9 @@
import com.mojang.authlib.GameProfile;

import me.isaiah.common.world.IWorld;
import net.minecraft.item.ItemStack;
import net.minecraft.server.MinecraftServer;
import net.minecraft.village.TradeOffer;

public interface IServer {

Expand Down Expand Up @@ -55,5 +57,9 @@ public default Loader getLoaderType() {
* Get UUID from Profile
*/
public UUID get_uuid_from_profile(GameProfile profile);

/**
*/
TradeOffer create_trade_offer(ItemStack result, int uses, int maxUses, boolean experienceReward, int experience, float priceMultiplier, int demand, int specialPrice);

}
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,11 @@
import java.util.UUID;

import com.mojang.authlib.GameProfile;

import net.minecraft.item.ItemStack;
import net.minecraft.server.command.CommandManager;
import net.minecraft.server.command.CommandManager.RegistrationEnvironment;
import net.minecraft.village.TradeOffer;
//import net.minecraft.util.registry.DynamicRegistryManager.Impl;
import net.minecraft.world.chunk.ChunkSection;
import net.minecraft.world.gen.chunk.NoiseChunkGenerator;
Expand Down Expand Up @@ -49,5 +52,9 @@ public interface IMixinMinecraftServer {
* @implNote 1.19 - new CommandManager(RegistrationEnvironment, CommandRegistryAccess)
*/
public CommandManager new_command_manager(RegistrationEnvironment env);

/**
*/
public TradeOffer create_new_trade_offer(ItemStack result, int uses, int maxUses, boolean experienceReward, int experience, float priceMultiplier, int demand, int specialPrice);

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package me.isaiah.common.cmixin;

import net.minecraft.village.TradeOffer;

/**
*/
public interface IMixinTradeOffer {

/**
*/
public TradeOffer IC$new_trade_offer();

/**
*/
public void IC$set_experience_reward(boolean val);


/**
*/
public void IC$set_villager_experience(int val);


/**
*/
public void IC$set_price_multiplier(float val);

}
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@
import com.mojang.authlib.GameProfile;
import me.isaiah.common.GameVersion;
import net.minecraft.util.JsonHelper;
import net.minecraft.village.TradeOffer;

import java.io.InputStream;
import java.io.InputStreamReader;

Expand All @@ -16,6 +18,7 @@
import me.isaiah.common.world.IWorld;
import net.minecraft.MinecraftVersion;
import net.minecraft.SharedConstants;
import net.minecraft.item.ItemStack;
import net.minecraft.server.MinecraftServer;

public class FabricServer implements IServer {
Expand Down Expand Up @@ -89,5 +92,13 @@ public MinecraftServer getMinecraft() {
public UUID get_uuid_from_profile(GameProfile profile) {
return ((IMixinMinecraftServer)mc).get_uuid_from_profile(profile);
}

/**
* @see {@link IMixinMinecraftServer.create_new_trade_offer}
*/
@Override
public TradeOffer create_trade_offer(ItemStack result, int uses, int maxUses, boolean experienceReward, int experience, float priceMultiplier, int demand, int specialPrice) {
return ((IMixinMinecraftServer)mc).create_new_trade_offer(result, uses, maxUses, experienceReward, experience, priceMultiplier, demand, specialPrice);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -61,10 +61,10 @@ public static GameVersion create() {
public boolean shouldApplyMixin(String targetClassName, String mixinClassName) {
if (!start) {
GameVersion ver = getGameVersion();
logger.info("=======================================================");
logger.info("-------------------------------------------------");
logger.info(" iCommon - Isaiah's common library for mods.");
logger.info(" Copyright (c) 2018-2024 Isaiah. Running on MC " + ver.getReleaseTarget());
logger.info("=======================================================");
logger.info("-------------------------------------------------");
}
start = true;

Expand Down Expand Up @@ -97,7 +97,7 @@ public boolean shouldApply(String mixinClassName, String output) {

if (mixin.contains("CampfireBlockEntity")) {
if (has_lithium) {
logger.info("Lithium detected");
// logger.info("Lithium detected");
return false;
}
}
Expand Down Expand Up @@ -126,8 +126,9 @@ public boolean shouldApply(String mixinClassName, String output) {
}

if (mixin.contains("1_20")) {
if (r20)
if (r20) {
logger.info("Applying mixin: " + mixin + "...");
}
return r20;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,15 @@
import me.isaiah.common.ICommonMod;
import me.isaiah.common.cmixin.IMixinMinecraftServer;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.ItemStack;
import net.minecraft.resource.ResourceManager;
import net.minecraft.server.MinecraftServer;
import net.minecraft.server.command.CommandManager;
import net.minecraft.server.command.CommandManager.RegistrationEnvironment;
import net.minecraft.server.dedicated.MinecraftDedicatedServer;
import net.minecraft.util.dynamic.RegistryOps;
import net.minecraft.util.registry.Registry;
import net.minecraft.village.TradeOffer;
import net.minecraft.util.registry.DynamicRegistryManager;
//import net.minecraft.util.registry.DynamicRegistryManager.Impl;
import net.minecraft.world.chunk.ChunkSection;
Expand Down Expand Up @@ -54,5 +56,18 @@ public UUID get_uuid_from_profile(GameProfile profile) {
public CommandManager new_command_manager(RegistrationEnvironment env) {
return new CommandManager(env);
}

@Override
public TradeOffer create_new_trade_offer(ItemStack result, int uses, int maxUses, boolean experienceReward,
int experience, float priceMultiplier, int demand, int specialPrice) {
return new net.minecraft.village.TradeOffer(
net.minecraft.item.ItemStack.EMPTY,
net.minecraft.item.ItemStack.EMPTY,
result,
uses,
maxUses,
experience,
priceMultiplier);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import me.isaiah.common.ICommonMod;
import me.isaiah.common.cmixin.IMixinMinecraftServer;
import net.minecraft.command.CommandRegistryAccess;
import net.minecraft.item.ItemStack;
import net.minecraft.registry.BuiltinRegistries;
import net.minecraft.registry.DynamicRegistryManager;
import net.minecraft.registry.Registry;
Expand All @@ -21,6 +22,7 @@
import net.minecraft.structure.StructureSet;
import net.minecraft.util.Uuids;
import net.minecraft.util.math.noise.DoublePerlinNoiseSampler;
import net.minecraft.village.TradeOffer;
import net.minecraft.world.World;
import net.minecraft.world.biome.Biome;
import net.minecraft.world.biome.source.BiomeSource;
Expand Down Expand Up @@ -93,6 +95,19 @@ public CommandManager new_command_manager(RegistrationEnvironment env) {
CommandRegistryAccess ac = CommandManager.createRegistryAccess(BuiltinRegistries.createWrapperLookup());
return new CommandManager(env, ac);
}

@Override
public TradeOffer create_new_trade_offer(ItemStack result, int uses, int maxUses, boolean experienceReward,
int experience, float priceMultiplier, int demand, int specialPrice) {
return new net.minecraft.village.TradeOffer(
net.minecraft.item.ItemStack.EMPTY,
net.minecraft.item.ItemStack.EMPTY,
result,
uses,
maxUses,
experience,
priceMultiplier);
}


}
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
import me.isaiah.common.cmixin.IMixinMinecraftServer;
import net.minecraft.command.CommandRegistryAccess;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.ItemStack;
import net.minecraft.resource.ResourceManager;
import net.minecraft.server.MinecraftServer;
import net.minecraft.server.command.CommandManager;
Expand All @@ -23,6 +24,7 @@
import net.minecraft.util.math.noise.DoublePerlinNoiseSampler;
import net.minecraft.util.registry.Registry;
import net.minecraft.util.registry.RegistryKey;
import net.minecraft.village.TradeOffer;
import net.minecraft.util.registry.DynamicRegistryManager;
import net.minecraft.world.biome.Biome;
import net.minecraft.world.biome.OverworldBiomeCreator;
Expand Down Expand Up @@ -92,5 +94,18 @@ public CommandManager new_command_manager(RegistrationEnvironment env) {
MinecraftDedicatedServer mc = (MinecraftDedicatedServer) (Object) this;
return new CommandManager(env, new CommandRegistryAccess(mc.getRegistryManager()));
}

@Override
public TradeOffer create_new_trade_offer(ItemStack result, int uses, int maxUses, boolean experienceReward,
int experience, float priceMultiplier, int demand, int specialPrice) {
return new net.minecraft.village.TradeOffer(
net.minecraft.item.ItemStack.EMPTY,
net.minecraft.item.ItemStack.EMPTY,
result,
uses,
maxUses,
experience,
priceMultiplier);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import me.isaiah.common.ICommonMod;
import me.isaiah.common.cmixin.IMixinMinecraftServer;
import net.minecraft.command.CommandRegistryAccess;
import net.minecraft.item.ItemStack;
import net.minecraft.registry.BuiltinRegistries;
import net.minecraft.registry.DynamicRegistryManager;
import net.minecraft.registry.Registry;
Expand All @@ -21,6 +22,7 @@
import net.minecraft.structure.StructureSet;
import net.minecraft.util.Uuids;
import net.minecraft.util.math.noise.DoublePerlinNoiseSampler;
import net.minecraft.village.TradeOffer;
import net.minecraft.world.World;
import net.minecraft.world.biome.Biome;
import net.minecraft.world.biome.source.BiomeSource;
Expand Down Expand Up @@ -93,6 +95,19 @@ public CommandManager new_command_manager(RegistrationEnvironment env) {
CommandRegistryAccess ac = CommandManager.createRegistryAccess(BuiltinRegistries.createWrapperLookup());
return new CommandManager(env, ac);
}

@Override
public TradeOffer create_new_trade_offer(ItemStack result, int uses, int maxUses, boolean experienceReward,
int experience, float priceMultiplier, int demand, int specialPrice) {
return new net.minecraft.village.TradeOffer(
net.minecraft.item.ItemStack.EMPTY,
net.minecraft.item.ItemStack.EMPTY,
result,
uses,
maxUses,
experience,
priceMultiplier);
}


}
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import me.isaiah.common.ICommonMod;
import me.isaiah.common.cmixin.IMixinMinecraftServer;
import net.minecraft.command.CommandRegistryAccess;
import net.minecraft.item.ItemStack;
import net.minecraft.registry.BuiltinRegistries;
import net.minecraft.registry.DynamicRegistryManager;
import net.minecraft.registry.Registry;
Expand All @@ -16,12 +17,14 @@
import net.minecraft.structure.StructureSet;
import net.minecraft.util.Uuids;
import net.minecraft.util.math.noise.DoublePerlinNoiseSampler;
import net.minecraft.village.TradeOffer;
import net.minecraft.world.World;
import net.minecraft.world.biome.Biome;
import net.minecraft.world.biome.source.BiomeSource;
import net.minecraft.world.chunk.ChunkSection;
import net.minecraft.world.gen.chunk.ChunkGeneratorSettings;
import net.minecraft.world.gen.chunk.NoiseChunkGenerator;

import org.spongepowered.asm.mixin.Mixin;

import java.util.Random;
Expand Down Expand Up @@ -95,5 +98,18 @@ public CommandManager new_command_manager(RegistrationEnvironment env) {
return new CommandManager(env, ac);
}

@Override
public TradeOffer create_new_trade_offer(ItemStack result, int uses, int maxUses, boolean experienceReward,
int experience, float priceMultiplier, int demand, int specialPrice) {
return new net.minecraft.village.TradeOffer(
net.minecraft.item.ItemStack.EMPTY,
net.minecraft.item.ItemStack.EMPTY,
result,
uses,
maxUses,
experience,
priceMultiplier);
}


}
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@
import me.isaiah.common.ICommonMod;
import me.isaiah.common.cmixin.IMixinMinecraftServer;
import net.minecraft.command.CommandRegistryAccess;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
import net.minecraft.registry.BuiltinRegistries;
import net.minecraft.registry.DynamicRegistryManager;
import net.minecraft.registry.Registry;
Expand All @@ -16,6 +18,8 @@
import net.minecraft.structure.StructureSet;
import net.minecraft.util.Uuids;
import net.minecraft.util.math.noise.DoublePerlinNoiseSampler;
import net.minecraft.village.TradeOffer;
import net.minecraft.village.TradedItem;
import net.minecraft.world.World;
import net.minecraft.world.biome.Biome;
import net.minecraft.world.biome.source.BiomeSource;
Expand All @@ -24,6 +28,7 @@
import net.minecraft.world.gen.chunk.NoiseChunkGenerator;
import org.spongepowered.asm.mixin.Mixin;

import java.util.Optional;
import java.util.Random;
import java.util.UUID;

Expand Down Expand Up @@ -95,5 +100,21 @@ public CommandManager new_command_manager(RegistrationEnvironment env) {
return new CommandManager(env, ac);
}

@Override
public TradeOffer create_new_trade_offer(ItemStack result, int uses, int maxUses, boolean experienceReward,
int experience, float priceMultiplier, int demand, int specialPrice) {
// TODO Auto-generated method stub
return new net.minecraft.village.TradeOffer(
new TradedItem(Items.AIR),
Optional.empty(),
result,
uses,
maxUses,
experience,
priceMultiplier,
demand
);
}


}

0 comments on commit f17c16d

Please sign in to comment.