Skip to content

Commit 5d7674f

Browse files
committed
Fixed item disappearing when put into output slot
1 parent 68b2282 commit 5d7674f

File tree

4 files changed

+23
-5
lines changed

4 files changed

+23
-5
lines changed

build.gradle

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ plugins {
44
}
55

66
group = 'com.artillexstudios.axsmithing'
7-
version = '1.0'
7+
version = '1.2'
88

99
repositories {
1010
mavenCentral()
@@ -40,6 +40,12 @@ compileJava {
4040
options.encoding = "UTF-8"
4141
}
4242

43+
processResources {
44+
filesMatching("plugin.yml") {
45+
expand(version: version)
46+
}
47+
}
48+
4349
shadowJar {
4450
relocate("net.byteflux.libby", "com.artillexstudios.axsmithing.libs.libby")
4551
relocate("net.kyori", "com.artillexstudios.axsmithing.libs.kyori")

src/main/java/com/artillexstudios/axsmithing/gui/impl/SmithingTable_V1_16.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,12 @@ public void handleClose(InventoryCloseEvent event) {
116116
public void handleDrag(InventoryDragEvent event) {
117117
if (!(event.getInventory().getHolder() instanceof SmithingTable_V1_16)) return;
118118

119+
ItemStack outputItem = event.getInventory().getItem(outputSlot);
120+
if (event.getRawSlots().contains(outputSlot) && (outputItem == null || outputItem.getType().isAir()) && !event.getOldCursor().getType().isAir()) {
121+
event.setCancelled(true);
122+
return;
123+
}
124+
119125
if (event.getInventory().getItem(outputSlot) != null && event.getInventory().getItem(outputSlot).getType() != Material.AIR) {
120126
event.getInventory().getItem(outputSlot).setAmount(0);
121127
}

src/main/java/com/artillexstudios/axsmithing/gui/impl/SmithingTable_V1_20.java

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -133,18 +133,24 @@ public void handleClick(InventoryClickEvent event) {
133133
public void handleClose(InventoryCloseEvent event) {
134134
if (!(event.getInventory().getHolder() instanceof SmithingTable_V1_20)) return;
135135

136-
if (event.getInventory().getItem(templateSlot) != null)
136+
if (event.getInventory().getItem(templateSlot) != null && event.getInventory().getItem(templateSlot).getType() != Material.AIR)
137137
event.getPlayer().getInventory().addItem(event.getInventory().getItem(templateSlot));
138-
if (event.getInventory().getItem(itemSlot) != null)
138+
if (event.getInventory().getItem(itemSlot) != null && event.getInventory().getItem(itemSlot).getType() != Material.AIR)
139139
event.getPlayer().getInventory().addItem(event.getInventory().getItem(itemSlot));
140-
if (event.getInventory().getItem(upgradeSlot) != null)
140+
if (event.getInventory().getItem(upgradeSlot) != null && event.getInventory().getItem(upgradeSlot).getType() != Material.AIR)
141141
event.getPlayer().getInventory().addItem(event.getInventory().getItem(upgradeSlot));
142142
}
143143

144144
@Override
145145
public void handleDrag(InventoryDragEvent event) {
146146
if (!(event.getInventory().getHolder() instanceof SmithingTable_V1_20)) return;
147147

148+
ItemStack outputItem = event.getInventory().getItem(outputSlot);
149+
if (event.getRawSlots().contains(outputSlot) && (outputItem == null || outputItem.getType().isAir()) && !event.getOldCursor().getType().isAir()) {
150+
event.setCancelled(true);
151+
return;
152+
}
153+
148154
if (event.getInventory().getItem(outputSlot) != null) {
149155
event.getInventory().getItem(outputSlot).setAmount(0);
150156
}

src/main/resources/plugin.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name: "AxSmithing"
22
main: "com.artillexstudios.axsmithing.AxSmithingPlugin"
3-
version: "1.0"
3+
version: "$version"
44
api-version: "1.16"
55
depend:
66
- ViaVersion

0 commit comments

Comments
 (0)