Skip to content

Commit 88b7541

Browse files
authored
Merge pull request #64 from Truly-Modular/release/1.20.1
Release/1.20.1
2 parents 80c29e3 + dc48951 commit 88b7541

File tree

24 files changed

+677
-123
lines changed

24 files changed

+677
-123
lines changed

CHANGELOG.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,6 @@
55
- improved armor compatibility
66
- fixed heavy attack not multiplying damage
77
- actually enabled NBT Property
8-
- fixed crash with minecolonies
8+
- fixed crash with minecolonies
9+
- fixed enchantment transformers
10+
- added Save Area Mining Config option to only allow area mining to start on blocks the player is looking at

common/src/main/java/smartin/miapi/Miapi.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,18 @@
5151
import java.util.concurrent.ConcurrentHashMap;
5252
import java.util.function.Consumer;
5353

54+
/**
55+
* The following docs are used for automatic wiki generation
56+
*
57+
* @header Wiki for 1.20
58+
* @description_start Welcome to the Wiki for Truly Modular 1.20
59+
* This Wiki is structured to help Modpack developers/people who want to add/modify content in Truly Modular via Datapacks
60+
* It goes in-depth about various Unique things to truly modular, but also over some common Datapack things,
61+
* It is aimed at all people
62+
* @description_end
63+
* @path root
64+
* @java false
65+
*/
5466
public class Miapi {
5567
public static final String MOD_ID = "miapi";
5668
public static final Logger LOGGER = LoggerFactory.getLogger("ModularItem API");

common/src/main/java/smartin/miapi/config/MiapiServerConfig.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,12 @@ public static class OtherCategory {
3030
@AutoCodec.Name("development_mode")
3131
public boolean developmentMode = Platform.isDevelopmentEnvironment();
3232

33+
@Comment("""
34+
Save Area Mining adds additional checks to prevent explosive behaviour when pared with other mods
35+
""")
36+
@AutoCodec.Name("save_area_mining")
37+
public boolean saveAreaMining = true;
38+
3339
@Comment("""
3440
Truly Modular Logs more aggressivly""")
3541
@AutoCodec.Name("verbose_logging")

common/src/main/java/smartin/miapi/craft/CraftAction.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,9 @@ public CraftAction(PacketByteBuf buf, @Nullable ModularWorkBenchEntity bench) {
9191
String modules = buf.readString();
9292
if (!modules.equals("null")) {
9393
toAdd = RegistryInventory.modules.get(modules);
94+
if (toAdd == null) {
95+
Miapi.LOGGER.error("could not find module " + modules + " craft action failed!");
96+
}
9497
} else {
9598
toAdd = null;
9699
}
@@ -245,7 +248,7 @@ public ItemStack perform() {
245248
private ItemStack craft() {
246249
ItemStack craftingStack = old.copy();
247250
if (toAdd == null) {
248-
return ItemStack.EMPTY;
251+
//return ItemStack.EMPTY;
249252
}
250253
if (slotId.size() == 1) {
251254
} else if (!old.hasNbt() || !(old.hasNbt() && old.getOrCreateNbt().contains(ItemModule.MODULE_KEY) || (old.hasNbt() && old.getOrCreateNbt().contains(NBT_MODULE_KEY)))) {
@@ -278,6 +281,10 @@ private ItemStack craft() {
278281
ItemModule.ModuleInstance parsingInstance = newBaseModule;
279282
for (int i = slotId.size() - 1; i > 0; i--) {
280283
parsingInstance = parsingInstance.subModules.get(slotId.get(i));
284+
if (parsingInstance == null) {
285+
Miapi.LOGGER.error("cannot find editing Slot aborting craft action!");
286+
return craftingStack;
287+
}
281288
}
282289

283290
if (toAdd == null) {

common/src/main/java/smartin/miapi/item/modular/items/ModularToolMaterial.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import net.minecraft.item.ToolMaterial;
44
import net.minecraft.recipe.Ingredient;
55

6-
public class ModularToolMaterial implements ToolMaterial{
6+
public class ModularToolMaterial implements ToolMaterial {
77
public static ModularToolMaterial toolMaterial = new ModularToolMaterial();
88

99
@Override

common/src/main/java/smartin/miapi/mixin/BCWeaponRegistryMixin.java

Lines changed: 0 additions & 30 deletions
This file was deleted.

common/src/main/java/smartin/miapi/mixin/EnchantmentHelperMixin.java

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
import org.spongepowered.asm.mixin.injection.Inject;
1919
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
2020
import smartin.miapi.events.MiapiEvents;
21-
import smartin.miapi.item.FakeEnchantment;
2221
import smartin.miapi.item.modular.ModularItem;
2322
import smartin.miapi.modules.properties.ChannelingProperty;
2423
import smartin.miapi.modules.properties.EnchantAbilityProperty;
@@ -131,17 +130,6 @@ public class EnchantmentHelperMixin {
131130
return original;
132131
}
133132

134-
@ModifyReturnValue(
135-
method = "getLevel(Lnet/minecraft/enchantment/Enchantment;Lnet/minecraft/item/ItemStack;)I",
136-
at = @At("RETURN")
137-
)
138-
private static int miapi$modifyPossibleEntries(int original, Enchantment enchantment, ItemStack stack) {
139-
if (stack.getItem() instanceof ModularItem) {
140-
return FakeEnchantment.getFakeLevel(enchantment, stack, original);
141-
}
142-
return original;
143-
}
144-
145133
private static List<EnchantmentLevelEntry> getLevels(int power, ItemStack stack, boolean treasureAllowed) {
146134
ArrayList<EnchantmentLevelEntry> list = Lists.newArrayList();
147135
if (stack.getItem() instanceof ModularItem) {
@@ -158,12 +146,4 @@ private static List<EnchantmentLevelEntry> getLevels(int power, ItemStack stack,
158146
}
159147
return list;
160148
}
161-
162-
@Inject(
163-
method = "forEachEnchantment(Lnet/minecraft/enchantment/EnchantmentHelper$Consumer;Lnet/minecraft/item/ItemStack;)V",
164-
at = @At("TAIL"),
165-
cancellable = true)
166-
private static void miapi$addFakeEnchants(EnchantmentHelper.Consumer consumer, ItemStack stack, CallbackInfo ci) {
167-
FakeEnchantment.addEnchantments(consumer, stack);
168-
}
169149
}

common/src/main/java/smartin/miapi/modules/material/GeneratedMaterial.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -295,17 +295,17 @@ public static void onReloadServer() {
295295
.filter(toolMaterial -> toolMaterial.getRepairIngredient() != null && toolMaterial.getRepairIngredient().getMatchingStacks() != null)
296296
.filter(toolMaterial -> toolMaterial.getRepairIngredient().getMatchingStacks().length > 0)
297297
.filter(toolMaterial -> !toolMaterial.getRepairIngredient().getMatchingStacks()[0].isIn(RegistryInventory.MIAPI_FORBIDDEN_TAG))
298-
.filter(toolMaterial -> Arrays.stream(toolMaterial.getRepairIngredient().getMatchingStacks()).allMatch(itemStack -> MaterialProperty.getMaterialFromIngredient(itemStack) != null && !itemStack.getItem().equals(Items.BARRIER)))
298+
.filter(toolMaterial -> toolMaterial.getRepairIngredient().getMatchingStacks()[0].getItem().equals(Items.BARRIER))
299299
.forEach(toolMaterial -> {
300300
Material material = MaterialProperty.getMaterialFromIngredient(toolMaterial.getRepairIngredient().getMatchingStacks()[0]);
301-
List<Item> toolMaterials = toolItems.stream()
302-
.filter(toolMat -> toolMaterial.equals(toolMat.getMaterial()))
303-
.filter(tool -> {
304-
ItemStack toolItem = tool.getDefaultStack();
305-
return ModularItemStackConverter.getModularVersion(toolItem)==toolItem;
306-
})
307-
.collect(Collectors.toList());
308301
if (material != null) {
302+
List<Item> toolMaterials = toolItems.stream()
303+
.filter(toolMat -> toolMaterial.equals(toolMat.getMaterial()))
304+
.filter(tool -> {
305+
ItemStack toolItem = tool.getDefaultStack();
306+
return ModularItemStackConverter.getModularVersion(toolItem)==toolItem;
307+
})
308+
.collect(Collectors.toList());
309309
if (material.generateConverters()) {
310310
try {
311311
MiapiEvents.GENERATE_MATERIAL_CONVERTERS.invoker().generated(material, toolMaterials, false);

common/src/main/java/smartin/miapi/modules/properties/mining/MiningShapeProperty.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import net.minecraft.util.hit.HitResult;
1111
import net.minecraft.util.math.BlockPos;
1212
import net.minecraft.util.math.Direction;
13+
import smartin.miapi.config.MiapiConfig;
1314
import smartin.miapi.item.modular.StatResolver;
1415
import smartin.miapi.modules.ItemModule;
1516
import smartin.miapi.modules.cache.ModularItemCache;
@@ -55,6 +56,9 @@ public MiningShapeProperty() {
5556
List<MiningShapeJson> miningShapeJsons = get(miningItem);
5657
HitResult hitResult = player.raycast(getBlockBreakDistance(player), 0, false);
5758
if (hitResult instanceof BlockHitResult blockHitResult) {
59+
if (MiapiConfig.INSTANCE.server.other.saveAreaMining && !blockHitResult.getBlockPos().equals(pos)) {
60+
return EventResult.pass();
61+
}
5862
Direction facing = blockHitResult.getSide();
5963
miningShapeJsons.stream().filter(miningShapeJson ->
6064
miningShapeJson.miningCondition.canMine(player, level, miningItem, pos, facing)).

common/src/main/java/smartin/miapi/wiki/Intro.wiki.md

Lines changed: 0 additions & 52 deletions
This file was deleted.

common/src/main/java/smartin/miapi/wiki/attributes/attributes.wiki.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
@path /attributes
33
@keywords attribute, attributes
44

5-
# Attributes
5+
66
Miapi Implements a couple of custom attributes.
77
Some of them will only work on Modular Items, so using them outside of Modular Items is not recommended.
88

0 commit comments

Comments
 (0)