Compare commits

...
9 Commits
Author SHA1 Message Date
Jikoo f8df83b31d Bump version to 5.1.5 for release 2025-01-10 11:01:37 -05:00
Jikoo eb98bd79d3 Update release action 2025-01-10 11:01:18 -05:00
Adam e948fdc011 Improve compatibility of view-only inventories (#273) 2025-01-10 10:35:48 -05:00
Jikoo f5c31c32d3 Correct edit other permission
See discussion #266
2025-01-04 21:37:29 -05:00
dependabot[bot] 56f8cf4d71 Bump softprops/action-gh-release from 2.1.0 to 2.2.0 (#271)
Bumps [softprops/action-gh-release](https://github.com/softprops/action-gh-release) from 2.1.0 to 2.2.0.
- [Release notes](https://github.com/softprops/action-gh-release/releases)
- [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md)
- [Commits](https://github.com/softprops/action-gh-release/compare/v2.1.0...v2.2.0)

---
updated-dependencies:
- dependency-name: softprops/action-gh-release
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-01 13:11:50 -05:00
dependabot[bot] 7f1f6ccc82 Bump com.github.jikoo:planarwrappers from 3.2.3 to 3.3.0 (#270) 2025-01-01 17:39:40 +00:00
Adam 9196ab3e61 Improve equal access (#269)
* Respect deny equals mode if viewer cannot edit
* Revert default mode to allow equals
2024-12-29 13:47:09 +00:00
Adam 0ac7575bad Re-add rpack support for 1.21.3 (#264)
* Re-add support for 1.21.3 to resource pack
* Add pack icon
2024-12-14 13:18:44 -05:00
Jikoo b0c7c8421e Bump version to 5.1.5-SNAPSHOT for development 2024-12-08 20:09:37 -05:00
41 changed files with 768 additions and 65 deletions

No files matched your search

+1 -1
View File
@@ -34,7 +34,7 @@ jobs:
- name: Create Release
id: create-release
uses: softprops/action-gh-release@v2.1.0
uses: softprops/action-gh-release@v2.2.1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
+1 -1
View File
@@ -8,7 +8,7 @@
<artifactId>openinvparent</artifactId>
<groupId>com.lishid</groupId>
<relativePath>../../pom.xml</relativePath>
<version>5.1.4</version>
<version>5.1.5</version>
</parent>
<artifactId>openinvtogglepersist</artifactId>
+1 -1
View File
@@ -21,7 +21,7 @@
<parent>
<artifactId>openinvparent</artifactId>
<groupId>com.lishid</groupId>
<version>5.1.4</version>
<version>5.1.5</version>
</parent>
<artifactId>openinvapi</artifactId>
@@ -16,9 +16,17 @@
package com.lishid.openinv.internal;
import org.bukkit.event.inventory.InventoryType;
import org.jetbrains.annotations.NotNull;
/**
* An {@link ISpecialInventory} representing an ender chest.
*/
public interface ISpecialEnderChest extends ISpecialInventory {
@Override
default @NotNull InventoryType getBukkitType() {
return InventoryType.ENDER_CHEST;
}
}
@@ -18,6 +18,7 @@ package com.lishid.openinv.internal;
import org.bukkit.entity.HumanEntity;
import org.bukkit.entity.Player;
import org.bukkit.event.inventory.InventoryType;
import org.bukkit.inventory.Inventory;
import org.jetbrains.annotations.NotNull;
@@ -33,6 +34,13 @@ public interface ISpecialInventory {
*/
@NotNull Inventory getBukkitInventory();
/**
* Get the {@link InventoryType} corresponding to this {@code ISpecialInventory}.
*
* @return the type of Bukkit inventory
*/
@NotNull InventoryType getBukkitType();
/**
* Set the owning {@link Player} instance to a newly-joined user.
*
@@ -16,35 +16,17 @@
package com.lishid.openinv.internal;
import java.util.List;
import org.bukkit.entity.HumanEntity;
import org.bukkit.inventory.Inventory;
import org.bukkit.event.inventory.InventoryType;
import org.jetbrains.annotations.NotNull;
/**
* An {@link ISpecialInventory} representing a player inventory.
*/
public interface ISpecialPlayerInventory extends ISpecialInventory {
/*
* Player inventory usage varies from all other inventories - as the inventory is technically open at all times,
* if the player is online or has been online while the inventory is open, they are in the viewer list.
*/
@Override
default boolean isInUse() {
Inventory inventory = getBukkitInventory();
List<HumanEntity> viewers = inventory.getViewers();
if (viewers.size() != 1) {
return !viewers.isEmpty();
}
HumanEntity viewer = viewers.get(0);
if (!viewer.getUniqueId().equals(getPlayer().getUniqueId())) {
return true;
}
return viewer.getOpenInventory().getTopInventory().equals(inventory);
default @NotNull InventoryType getBukkitType() {
return InventoryType.PLAYER;
}
}
+1 -1
View File
@@ -7,7 +7,7 @@
<parent>
<groupId>com.lishid</groupId>
<artifactId>openinvparent</artifactId>
<version>5.1.4</version>
<version>5.1.5</version>
</parent>
<artifactId>openinvcommon</artifactId>
+1 -1
View File
@@ -23,7 +23,7 @@
<artifactId>openinvparent</artifactId>
<groupId>com.lishid</groupId>
<relativePath>../../pom.xml</relativePath>
<version>5.1.4</version>
<version>5.1.5</version>
</parent>
<artifactId>openinvadapter1_21_R2</artifactId>
@@ -4,6 +4,7 @@ import com.lishid.openinv.internal.ViewOnly;
import net.minecraft.world.Container;
import org.bukkit.Material;
import org.bukkit.craftbukkit.v1_21_R2.inventory.CraftInventory;
import org.bukkit.event.inventory.InventoryType;
import org.bukkit.inventory.ItemStack;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -17,8 +18,16 @@ import java.util.ListIterator;
*/
public class OpenDummyInventory extends CraftInventory implements ViewOnly {
public OpenDummyInventory(Container inventory) {
private final InventoryType type;
public OpenDummyInventory(Container inventory, InventoryType type) {
super(inventory);
this.type = type;
}
@Override
public @NotNull InventoryType getType() {
return type;
}
@Override
@@ -0,0 +1,134 @@
package com.lishid.openinv.internal.v1_21_R2.container.bukkit;
import net.minecraft.world.Container;
import org.bukkit.Material;
import org.bukkit.entity.HumanEntity;
import org.bukkit.event.inventory.InventoryType;
import org.bukkit.inventory.EquipmentSlot;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.PlayerInventory;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
public class OpenDummyPlayerInventory extends OpenDummyInventory implements PlayerInventory {
public OpenDummyPlayerInventory(Container inventory) {
super(inventory, InventoryType.PLAYER);
}
@Override
public HumanEntity getHolder() {
return (HumanEntity) super.getHolder();
}
@Override
public @NotNull ItemStack[] getArmorContents() {
return new ItemStack[4];
}
@Override
public @NotNull ItemStack[] getExtraContents() {
return new ItemStack[4];
}
@Override
public @Nullable ItemStack getHelmet() {
return null;
}
@Override
public @Nullable ItemStack getChestplate() {
return null;
}
@Override
public @Nullable ItemStack getLeggings() {
return null;
}
@Override
public @Nullable ItemStack getBoots() {
return null;
}
@Override
public void setItem(@NotNull EquipmentSlot slot, @Nullable ItemStack item) {
}
@Override
public @Nullable ItemStack getItem(@NotNull EquipmentSlot slot) {
return null;
}
@Override
public void setArmorContents(@Nullable ItemStack[] items) {
}
@Override
public void setExtraContents(@Nullable ItemStack[] items) {
}
@Override
public void setHelmet(@Nullable ItemStack helmet) {
}
@Override
public void setChestplate(@Nullable ItemStack chestplate) {
}
@Override
public void setLeggings(@Nullable ItemStack leggings) {
}
@Override
public void setBoots(@Nullable ItemStack boots) {
}
@Override
public @NotNull ItemStack getItemInMainHand() {
return new ItemStack(Material.AIR);
}
@Override
public void setItemInMainHand(@Nullable ItemStack item) {
}
@Override
public @NotNull ItemStack getItemInOffHand() {
return new ItemStack(Material.AIR);
}
@Override
public void setItemInOffHand(@Nullable ItemStack item) {
}
@Override
public @NotNull ItemStack getItemInHand() {
return new ItemStack(Material.AIR);
}
@Override
public void setItemInHand(@Nullable ItemStack stack) {
}
@Override
public int getHeldItemSlot() {
return 0;
}
@Override
public void setHeldItemSlot(int slot) {
}
}
@@ -143,7 +143,7 @@ public abstract class OpenChestMenu<T extends Container & ISpecialInventory & In
protected @NotNull CraftInventoryView<OpenChestMenu<T>, Inventory> createBukkitEntity() {
Inventory top;
if (viewOnly) {
top = new OpenDummyInventory(container);
top = new OpenDummyInventory(container, container.getBukkitType());
} else {
top = container.getBukkitInventory();
}
@@ -2,7 +2,7 @@ package com.lishid.openinv.internal.v1_21_R2.container.menu;
import com.google.common.base.Preconditions;
import com.lishid.openinv.internal.v1_21_R2.container.OpenInventory;
import com.lishid.openinv.internal.v1_21_R2.container.bukkit.OpenDummyInventory;
import com.lishid.openinv.internal.v1_21_R2.container.bukkit.OpenDummyPlayerInventory;
import com.lishid.openinv.internal.v1_21_R2.container.bukkit.OpenPlayerInventorySelf;
import com.lishid.openinv.internal.v1_21_R2.container.slot.ContentDrop;
import com.lishid.openinv.internal.v1_21_R2.container.slot.ContentEquipment;
@@ -102,7 +102,7 @@ public class OpenInventoryMenu extends OpenChestMenu<OpenInventory> {
protected @NotNull CraftInventoryView<OpenChestMenu<OpenInventory>, Inventory> createBukkitEntity() {
org.bukkit.inventory.Inventory bukkitInventory;
if (viewOnly) {
bukkitInventory = new OpenDummyInventory(container);
bukkitInventory = new OpenDummyPlayerInventory(container);
} else if (ownContainer) {
bukkitInventory = new OpenPlayerInventorySelf(container, offset);
} else {
+1 -1
View File
@@ -23,7 +23,7 @@
<artifactId>openinvparent</artifactId>
<groupId>com.lishid</groupId>
<relativePath>../../pom.xml</relativePath>
<version>5.1.4</version>
<version>5.1.5</version>
</parent>
<artifactId>openinvadapter1_21_R3</artifactId>
@@ -4,6 +4,7 @@ import com.lishid.openinv.internal.ViewOnly;
import net.minecraft.world.Container;
import org.bukkit.Material;
import org.bukkit.craftbukkit.v1_21_R3.inventory.CraftInventory;
import org.bukkit.event.inventory.InventoryType;
import org.bukkit.inventory.ItemStack;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -17,8 +18,16 @@ import java.util.ListIterator;
*/
public class OpenDummyInventory extends CraftInventory implements ViewOnly {
public OpenDummyInventory(Container inventory) {
private final InventoryType type;
public OpenDummyInventory(Container inventory, InventoryType type) {
super(inventory);
this.type = type;
}
@Override
public @NotNull InventoryType getType() {
return type;
}
@Override
@@ -0,0 +1,134 @@
package com.lishid.openinv.internal.v1_21_R3.container.bukkit;
import net.minecraft.world.Container;
import org.bukkit.Material;
import org.bukkit.entity.HumanEntity;
import org.bukkit.event.inventory.InventoryType;
import org.bukkit.inventory.EquipmentSlot;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.PlayerInventory;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
public class OpenDummyPlayerInventory extends OpenDummyInventory implements PlayerInventory {
public OpenDummyPlayerInventory(Container inventory) {
super(inventory, InventoryType.PLAYER);
}
@Override
public HumanEntity getHolder() {
return (HumanEntity) super.getHolder();
}
@Override
public @NotNull ItemStack[] getArmorContents() {
return new ItemStack[4];
}
@Override
public @NotNull ItemStack[] getExtraContents() {
return new ItemStack[4];
}
@Override
public @Nullable ItemStack getHelmet() {
return null;
}
@Override
public @Nullable ItemStack getChestplate() {
return null;
}
@Override
public @Nullable ItemStack getLeggings() {
return null;
}
@Override
public @Nullable ItemStack getBoots() {
return null;
}
@Override
public void setItem(@NotNull EquipmentSlot slot, @Nullable ItemStack item) {
}
@Override
public @Nullable ItemStack getItem(@NotNull EquipmentSlot slot) {
return null;
}
@Override
public void setArmorContents(@Nullable ItemStack[] items) {
}
@Override
public void setExtraContents(@Nullable ItemStack[] items) {
}
@Override
public void setHelmet(@Nullable ItemStack helmet) {
}
@Override
public void setChestplate(@Nullable ItemStack chestplate) {
}
@Override
public void setLeggings(@Nullable ItemStack leggings) {
}
@Override
public void setBoots(@Nullable ItemStack boots) {
}
@Override
public @NotNull ItemStack getItemInMainHand() {
return new ItemStack(Material.AIR);
}
@Override
public void setItemInMainHand(@Nullable ItemStack item) {
}
@Override
public @NotNull ItemStack getItemInOffHand() {
return new ItemStack(Material.AIR);
}
@Override
public void setItemInOffHand(@Nullable ItemStack item) {
}
@Override
public @NotNull ItemStack getItemInHand() {
return new ItemStack(Material.AIR);
}
@Override
public void setItemInHand(@Nullable ItemStack stack) {
}
@Override
public int getHeldItemSlot() {
return 0;
}
@Override
public void setHeldItemSlot(int slot) {
}
}
@@ -143,7 +143,7 @@ public abstract class OpenChestMenu<T extends Container & ISpecialInventory & In
protected @NotNull CraftInventoryView<OpenChestMenu<T>, Inventory> createBukkitEntity() {
Inventory top;
if (viewOnly) {
top = new OpenDummyInventory(container);
top = new OpenDummyInventory(container, container.getBukkitType());
} else {
top = container.getBukkitInventory();
}
@@ -2,7 +2,7 @@ package com.lishid.openinv.internal.v1_21_R3.container.menu;
import com.google.common.base.Preconditions;
import com.lishid.openinv.internal.v1_21_R3.container.OpenInventory;
import com.lishid.openinv.internal.v1_21_R3.container.bukkit.OpenDummyInventory;
import com.lishid.openinv.internal.v1_21_R3.container.bukkit.OpenDummyPlayerInventory;
import com.lishid.openinv.internal.v1_21_R3.container.bukkit.OpenPlayerInventorySelf;
import com.lishid.openinv.internal.v1_21_R3.container.slot.ContentDrop;
import com.lishid.openinv.internal.v1_21_R3.container.slot.ContentEquipment;
@@ -102,7 +102,7 @@ public class OpenInventoryMenu extends OpenChestMenu<OpenInventory> {
protected @NotNull CraftInventoryView<OpenChestMenu<OpenInventory>, Inventory> createBukkitEntity() {
org.bukkit.inventory.Inventory bukkitInventory;
if (viewOnly) {
bukkitInventory = new OpenDummyInventory(container);
bukkitInventory = new OpenDummyPlayerInventory(container);
} else if (ownContainer) {
bukkitInventory = new OpenPlayerInventorySelf(container, offset);
} else {
+3 -3
View File
@@ -21,7 +21,7 @@
<parent>
<artifactId>openinvparent</artifactId>
<groupId>com.lishid</groupId>
<version>5.1.4</version>
<version>5.1.5</version>
</parent>
<artifactId>openinvplugin</artifactId>
@@ -47,13 +47,13 @@
<dependency>
<groupId>com.lishid</groupId>
<artifactId>openinvadapter1_21_R3</artifactId>
<version>5.1.4</version>
<version>5.1.5</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.lishid</groupId>
<artifactId>openinvadapter1_21_R2</artifactId>
<version>5.1.4</version>
<version>5.1.5</version>
<scope>compile</scope>
</dependency>
<dependency>
@@ -250,35 +250,37 @@ public class OpenInv extends JavaPlugin implements IOpenInv {
if (inventory instanceof ISpecialPlayerInventory) {
edit = ownContainer ? Permissions.INVENTORY_EDIT_SELF : Permissions.INVENTORY_EDIT_OTHER;
} else if (inventory instanceof ISpecialEnderChest) {
edit = ownContainer ? Permissions.ENDERCHEST_EDIT_SELF : Permissions.ENDERCHEST_OPEN_OTHER;
edit = ownContainer ? Permissions.ENDERCHEST_EDIT_SELF : Permissions.ENDERCHEST_EDIT_OTHER;
}
boolean viewOnly = edit != null && !edit.hasPermission(player);
if (!ownContainer && !viewOnly) {
for (int level = 4; level > 0; --level) {
String permission = "openinv.access.level." + level;
// If the target doesn't have this access level...
if (!target.hasPermission(permission)) {
// If the viewer does have the access level, all good.
if (player.hasPermission(permission)) {
break;
}
// Otherwise check next access level.
continue;
}
if (ownContainer || viewOnly && config.getAccessEqualMode() != AccessEqualMode.DENY) {
this.accessor.openInventory(player, inventory, viewOnly);
}
// If the player doesn't have an equal access level or equal access is a denial, deny.
if (!player.hasPermission(permission) || config.getAccessEqualMode() == AccessEqualMode.DENY) {
return null;
for (int level = 4; level > 0; --level) {
String permission = "openinv.access.level." + level;
// If the target doesn't have this access level...
if (!target.hasPermission(permission)) {
// If the viewer does have the access level, all good.
if (player.hasPermission(permission)) {
break;
}
// Since this is a tie, setting decides view state.
if (config.getAccessEqualMode() == AccessEqualMode.VIEW) {
viewOnly = true;
}
break;
// Otherwise check next access level.
continue;
}
// If the viewer doesn't have an equal access level or equal access is a denial, deny.
if (!player.hasPermission(permission) || config.getAccessEqualMode() == AccessEqualMode.DENY) {
return null;
}
// Since this is a tie, setting decides view state.
if (config.getAccessEqualMode() == AccessEqualMode.VIEW) {
viewOnly = true;
}
break;
}
return this.accessor.openInventory(player, inventory, viewOnly);
+1 -1
View File
@@ -1,6 +1,6 @@
config-version: 8
settings:
equal-access: view
equal-access: allow
command:
open:
no-args-opens-self: false
+2 -2
View File
@@ -24,7 +24,7 @@
<modules>
<module>common</module>
</modules>
<version>5.1.4</version>
<version>5.1.5</version>
<packaging>pom</packaging>
@@ -101,7 +101,7 @@
<artifactId>planarwrappers</artifactId>
<groupId>com.github.jikoo</groupId>
<scope>compile</scope>
<version>3.2.3</version>
<version>3.3.0</version>
</dependency>
</dependencies>
</dependencyManagement>
@@ -0,0 +1,11 @@
{
"parent": "minecraft:block/crafting_table",
"overrides": [
{
"model": "openinv:item/crafting_output",
"predicate": {
"custom_model_data": 9999
}
}
]
}
@@ -0,0 +1,11 @@
{
"parent": "minecraft:block/dropper",
"overrides": [
{
"model": "openinv:item/drop",
"predicate": {
"custom_model_data": 9999
}
}
]
}
@@ -0,0 +1,75 @@
{
"parent": "minecraft:item/generated",
"overrides": [
{
"model": "openinv:item/empty_boots",
"predicate": {
"custom_model_data": 9999
}
},
{
"model": "minecraft:item/leather_boots_quartz_trim",
"predicate": {
"trim_type": 0.1
}
},
{
"model": "minecraft:item/leather_boots_iron_trim",
"predicate": {
"trim_type": 0.2
}
},
{
"model": "minecraft:item/leather_boots_netherite_trim",
"predicate": {
"trim_type": 0.3
}
},
{
"model": "minecraft:item/leather_boots_redstone_trim",
"predicate": {
"trim_type": 0.4
}
},
{
"model": "minecraft:item/leather_boots_copper_trim",
"predicate": {
"trim_type": 0.5
}
},
{
"model": "minecraft:item/leather_boots_gold_trim",
"predicate": {
"trim_type": 0.6
}
},
{
"model": "minecraft:item/leather_boots_emerald_trim",
"predicate": {
"trim_type": 0.7
}
},
{
"model": "minecraft:item/leather_boots_diamond_trim",
"predicate": {
"trim_type": 0.8
}
},
{
"model": "minecraft:item/leather_boots_lapis_trim",
"predicate": {
"trim_type": 0.9
}
},
{
"model": "minecraft:item/leather_boots_amethyst_trim",
"predicate": {
"trim_type": 1.0
}
}
],
"textures": {
"layer0": "minecraft:item/leather_boots",
"layer1": "minecraft:item/leather_boots_overlay"
}
}
@@ -0,0 +1,75 @@
{
"parent": "minecraft:item/generated",
"overrides": [
{
"model": "openinv:item/empty_chestplate",
"predicate": {
"custom_model_data": 9999
}
},
{
"model": "minecraft:item/leather_chestplate_quartz_trim",
"predicate": {
"trim_type": 0.1
}
},
{
"model": "minecraft:item/leather_chestplate_iron_trim",
"predicate": {
"trim_type": 0.2
}
},
{
"model": "minecraft:item/leather_chestplate_netherite_trim",
"predicate": {
"trim_type": 0.3
}
},
{
"model": "minecraft:item/leather_chestplate_redstone_trim",
"predicate": {
"trim_type": 0.4
}
},
{
"model": "minecraft:item/leather_chestplate_copper_trim",
"predicate": {
"trim_type": 0.5
}
},
{
"model": "minecraft:item/leather_chestplate_gold_trim",
"predicate": {
"trim_type": 0.6
}
},
{
"model": "minecraft:item/leather_chestplate_emerald_trim",
"predicate": {
"trim_type": 0.7
}
},
{
"model": "minecraft:item/leather_chestplate_diamond_trim",
"predicate": {
"trim_type": 0.8
}
},
{
"model": "minecraft:item/leather_chestplate_lapis_trim",
"predicate": {
"trim_type": 0.9
}
},
{
"model": "minecraft:item/leather_chestplate_amethyst_trim",
"predicate": {
"trim_type": 1.0
}
}
],
"textures": {
"layer0": "minecraft:item/leather_chestplate",
"layer1": "minecraft:item/leather_chestplate_overlay"
}
}
@@ -0,0 +1,75 @@
{
"parent": "minecraft:item/generated",
"overrides": [
{
"model": "openinv:item/empty_helmet",
"predicate": {
"custom_model_data": 9999
}
},
{
"model": "minecraft:item/leather_helmet_quartz_trim",
"predicate": {
"trim_type": 0.1
}
},
{
"model": "minecraft:item/leather_helmet_iron_trim",
"predicate": {
"trim_type": 0.2
}
},
{
"model": "minecraft:item/leather_helmet_netherite_trim",
"predicate": {
"trim_type": 0.3
}
},
{
"model": "minecraft:item/leather_helmet_redstone_trim",
"predicate": {
"trim_type": 0.4
}
},
{
"model": "minecraft:item/leather_helmet_copper_trim",
"predicate": {
"trim_type": 0.5
}
},
{
"model": "minecraft:item/leather_helmet_gold_trim",
"predicate": {
"trim_type": 0.6
}
},
{
"model": "minecraft:item/leather_helmet_emerald_trim",
"predicate": {
"trim_type": 0.7
}
},
{
"model": "minecraft:item/leather_helmet_diamond_trim",
"predicate": {
"trim_type": 0.8
}
},
{
"model": "minecraft:item/leather_helmet_lapis_trim",
"predicate": {
"trim_type": 0.9
}
},
{
"model": "minecraft:item/leather_helmet_amethyst_trim",
"predicate": {
"trim_type": 1.0
}
}
],
"textures": {
"layer0": "minecraft:item/leather_helmet",
"layer1": "minecraft:item/leather_helmet_overlay"
}
}
@@ -0,0 +1,75 @@
{
"parent": "minecraft:item/generated",
"overrides": [
{
"model": "openinv:item/empty_leggings",
"predicate": {
"custom_model_data": 9999
}
},
{
"model": "minecraft:item/leather_leggings_quartz_trim",
"predicate": {
"trim_type": 0.1
}
},
{
"model": "minecraft:item/leather_leggings_iron_trim",
"predicate": {
"trim_type": 0.2
}
},
{
"model": "minecraft:item/leather_leggings_netherite_trim",
"predicate": {
"trim_type": 0.3
}
},
{
"model": "minecraft:item/leather_leggings_redstone_trim",
"predicate": {
"trim_type": 0.4
}
},
{
"model": "minecraft:item/leather_leggings_copper_trim",
"predicate": {
"trim_type": 0.5
}
},
{
"model": "minecraft:item/leather_leggings_gold_trim",
"predicate": {
"trim_type": 0.6
}
},
{
"model": "minecraft:item/leather_leggings_emerald_trim",
"predicate": {
"trim_type": 0.7
}
},
{
"model": "minecraft:item/leather_leggings_diamond_trim",
"predicate": {
"trim_type": 0.8
}
},
{
"model": "minecraft:item/leather_leggings_lapis_trim",
"predicate": {
"trim_type": 0.9
}
},
{
"model": "minecraft:item/leather_leggings_amethyst_trim",
"predicate": {
"trim_type": 1.0
}
}
],
"textures": {
"layer0": "minecraft:item/leather_leggings",
"layer1": "minecraft:item/leather_leggings_overlay"
}
}
@@ -0,0 +1,58 @@
{
"parent": "builtin/entity",
"gui_light": "front",
"textures": {
"particle": "block/dark_oak_planks"
},
"display": {
"thirdperson_righthand": {
"rotation": [ 0, 90, 0 ],
"translation": [ 10, 6, -4 ],
"scale": [ 1, 1, 1 ]
},
"thirdperson_lefthand": {
"rotation": [ 0, 90, 0 ],
"translation": [ 10, 6, 12 ],
"scale": [ 1, 1, 1 ]
},
"firstperson_righthand": {
"rotation": [ 0, 180, 5 ],
"translation": [ -10, 2, -10 ],
"scale": [ 1.25, 1.25, 1.25 ]
},
"firstperson_lefthand": {
"rotation": [ 0, 180, 5 ],
"translation": [ 10, 0, -10 ],
"scale": [ 1.25, 1.25, 1.25 ]
},
"gui": {
"rotation": [ 15, -25, -5 ],
"translation": [ 2, 3, 0 ],
"scale": [ 0.65, 0.65, 0.65 ]
},
"fixed": {
"rotation": [ 0, 180, 0 ],
"translation": [ -4.5, 4.5, -5],
"scale":[ 0.55, 0.55, 0.55]
},
"ground": {
"rotation": [ 0, 0, 0 ],
"translation": [ 2, 4, 2],
"scale":[ 0.25, 0.25, 0.25]
}
},
"overrides": [
{
"model": "openinv:item/empty_shield",
"predicate": {
"custom_model_data": 9999
}
},
{
"predicate": {
"blocking": 1
},
"model": "item/shield_blocking"
}
]
}
@@ -0,0 +1,11 @@
{
"parent": "minecraft:item/template_banner",
"overrides": [
{
"model": "openinv:item/cursor",
"predicate": {
"custom_model_data": 9999
}
}
]
}
@@ -0,0 +1,14 @@
{
"parent": "minecraft:item/generated",
"textures": {
"layer0": "minecraft:block/white_stained_glass"
},
"overrides": [
{
"model": "openinv:item/not_a_slot",
"predicate": {
"custom_model_data": 9999
}
}
]
}
+13 -1
View File
@@ -2,6 +2,18 @@
"pack": {
"description": "Improve OpenInv's legibility",
"pack_format": 46,
"supported_formats": [ 46 ]
"supported_formats": [ 34, 46 ]
},
"overlays": {
"entries": [
{
"formats": [ 44, 46 ],
"directory": "openinv_44"
},
{
"formats": [ 34, 43 ],
"directory": "openinv_34"
}
]
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB