Compare commits
3 Commits
165e6c6b16
...
390553c591
Author | SHA1 | Date | |
---|---|---|---|
390553c591 | |||
820f73a12d | |||
747f2fb30c |
@@ -8,7 +8,7 @@ yarn_mappings=1.20.6+build.3
|
||||
loader_version=0.15.11
|
||||
|
||||
# Mod Properties
|
||||
mod_version=1.2
|
||||
mod_version=1.3
|
||||
maven_group=systems.brn
|
||||
archives_base_name=Server_storage
|
||||
|
||||
|
@@ -1,13 +1,18 @@
|
||||
package systems.brn.server_storage.lib;
|
||||
|
||||
import net.minecraft.component.DataComponentTypes;
|
||||
import net.minecraft.component.type.LoreComponent;
|
||||
import net.minecraft.inventory.Inventory;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.text.RawFilteredPair;
|
||||
import net.minecraft.text.Style;
|
||||
import net.minecraft.text.Text;
|
||||
import net.minecraft.util.Formatting;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class Util {
|
||||
|
||||
@@ -53,4 +58,40 @@ public class Util {
|
||||
|
||||
return pages;
|
||||
}
|
||||
|
||||
public static ItemStack addCountToLore(final int count, ItemStack stack) {
|
||||
if (count > 0) {
|
||||
ItemStack newStack = stack.copy();
|
||||
LoreComponent lore = stack.get(DataComponentTypes.LORE);
|
||||
Text countLine = Text.literal("Amount: " + count).setStyle(Style.EMPTY.withColor(Formatting.GOLD).withItalic(true));
|
||||
|
||||
assert lore != null;
|
||||
List<Text> newLines = new ArrayList<>(lore.lines());
|
||||
newLines.addFirst(countLine);
|
||||
LoreComponent newLore = new LoreComponent(newLines);
|
||||
|
||||
newStack.set(DataComponentTypes.LORE, newLore);
|
||||
return newStack;
|
||||
} else {
|
||||
return stack;
|
||||
}
|
||||
}
|
||||
|
||||
public static ItemStack removeCountFromLore(ItemStack stack) {
|
||||
LoreComponent oldLore = stack.get(DataComponentTypes.LORE);
|
||||
|
||||
if (oldLore != null) {
|
||||
ItemStack newStack = stack.copy();
|
||||
List<Text> filteredLines = oldLore.lines().stream()
|
||||
.filter(line -> !line.getString().matches("Amount: \\d+"))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
LoreComponent newLore = new LoreComponent(filteredLines);
|
||||
|
||||
newStack.set(DataComponentTypes.LORE, newLore);
|
||||
return newStack;
|
||||
} else {
|
||||
return stack;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -13,6 +13,8 @@ import net.minecraft.world.World;
|
||||
import systems.brn.server_storage.lib.PagedGui;
|
||||
|
||||
import static systems.brn.server_storage.lib.StorageOperations.*;
|
||||
import static systems.brn.server_storage.lib.Util.addCountToLore;
|
||||
import static systems.brn.server_storage.lib.Util.removeCountFromLore;
|
||||
|
||||
public class StorageScreen extends PagedGui {
|
||||
private Inventory inventory;
|
||||
@@ -48,7 +50,8 @@ public class StorageScreen extends PagedGui {
|
||||
protected DisplayElement getElement(int id) {
|
||||
if (this.inventory.size() > id) {
|
||||
ItemStack itemStack = this.inventory.getStack(id);
|
||||
GuiElementBuilder guiElement = new GuiElementBuilder(itemStack);
|
||||
ItemStack newStack = addCountToLore(itemStack.getCount(), itemStack);
|
||||
GuiElementBuilder guiElement = new GuiElementBuilder(newStack);
|
||||
return DisplayElement.of(guiElement);
|
||||
}
|
||||
return DisplayElement.empty();
|
||||
@@ -59,8 +62,9 @@ public class StorageScreen extends PagedGui {
|
||||
GuiElementInterface clickedElement = this.getSlot(index);
|
||||
if (clickedElement != null) {
|
||||
ItemStack clickedItem = clickedElement.getItemStack();
|
||||
if (tryRemoveItemStackFromChests(world, pos, clickedItem)) {
|
||||
this.player.getInventory().insertStack(clickedItem);
|
||||
ItemStack noLoreStack = removeCountFromLore(clickedItem);
|
||||
if (tryRemoveItemStackFromChests(world, pos, noLoreStack)) {
|
||||
this.player.getInventory().insertStack(noLoreStack);
|
||||
}
|
||||
}
|
||||
this.updateDisplay();
|
||||
|
@@ -2,18 +2,18 @@
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"category": "redstone",
|
||||
"pattern": [
|
||||
"#A#",
|
||||
"AEA",
|
||||
"#A#"
|
||||
"DRD",
|
||||
"RCR",
|
||||
"DRD"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"D": {
|
||||
"item": "minecraft:diamond"
|
||||
},
|
||||
"A": {
|
||||
"R": {
|
||||
"item": "minecraft:redstone"
|
||||
},
|
||||
"E": {
|
||||
"C": {
|
||||
"item": "minecraft:chest"
|
||||
}
|
||||
},
|
||||
|
Reference in New Issue
Block a user