Skip to content

Commit ef45e59

Browse files
committed
Merge branch '1.15' into 1.14
2 parents 1d48f8f + 2c0f4a7 commit ef45e59

File tree

4 files changed

+115
-101
lines changed

4 files changed

+115
-101
lines changed

build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ plugins {
22
id 'fabric-loom' version '0.7-SNAPSHOT'
33
id 'maven-publish'
44
id 'com.matthewprenger.cursegradle' version '1.4.0'
5-
id 'com.modrinth.minotaur' version '1.1.0'
5+
id 'com.modrinth.minotaur' version '1.2.1'
66
id 'org.cadixdev.licenser' version '0.5.0'
77
}
88

@@ -214,7 +214,7 @@ if (project.hasProperty("siphalorModrinthApi")) {
214214
versionName = "[${project.mod_mc_version_specifier}] ${project.mod_version}"
215215
changelog = getProjectChangelog()
216216
uploadFile = remapJar
217-
releaseType = project.mod_release
217+
versionType = project.mod_release
218218
for (version in ((String) project.mod_mc_versions).split(";")) {
219219
addGameVersion(version)
220220
}

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ yarn_build=18:v2
88
loader_version=0.9.0+build.204
99
# Mod Properties
1010
mod_id=mousewheelie
11-
mod_version=1.7.1
11+
mod_version=1.7.2
1212
mod_release=release
1313
mod_mc_version_specifier=1.14.4
1414
mod_mc_versions=1.14.4

src/main/java/de/siphalor/mousewheelie/client/MWClient.java

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -111,11 +111,25 @@ public static boolean performRefill() {
111111
Hand hand = refillHand;
112112
refillHand = null;
113113
if (MWConfig.refill.offHand && hand.equals(Hand.OFF_HAND)) {
114-
InteractionManager.push(new InteractionManager.PacketEvent(new PlayerActionC2SPacket(PlayerActionC2SPacket.Action.SWAP_HELD_ITEMS, BlockPos.ORIGIN, Direction.DOWN), triggerType -> triggerType == InteractionManager.TriggerType.CONTAINER_SLOT_UPDATE && MWClient.lastUpdatedSlot == 45));
114+
// interaction only gets pushed softly so it can be removed if the refill was not successful
115+
InteractionManager.interactionEventQueue.add(
116+
new InteractionManager.PacketEvent(
117+
new PlayerActionC2SPacket(PlayerActionC2SPacket.Action.SWAP_HELD_ITEMS, BlockPos.ORIGIN, Direction.DOWN),
118+
triggerType -> triggerType == InteractionManager.TriggerType.CONTAINER_SLOT_UPDATE && MWClient.lastUpdatedSlot == 45
119+
)
120+
);
115121
}
116-
SlotRefiller.refill();
117-
if (MWConfig.refill.offHand && hand.equals(Hand.OFF_HAND)) {
118-
InteractionManager.push(new InteractionManager.PacketEvent(new PlayerActionC2SPacket(PlayerActionC2SPacket.Action.SWAP_HELD_ITEMS, BlockPos.ORIGIN, Direction.DOWN), triggerType -> triggerType == InteractionManager.TriggerType.CONTAINER_SLOT_UPDATE && MWClient.lastUpdatedSlot == 45));
122+
if (SlotRefiller.refill()) {
123+
if (MWConfig.refill.offHand && hand.equals(Hand.OFF_HAND)) {
124+
InteractionManager.push(
125+
new InteractionManager.PacketEvent(
126+
new PlayerActionC2SPacket(PlayerActionC2SPacket.Action.SWAP_HELD_ITEMS, BlockPos.ORIGIN, Direction.DOWN),
127+
triggerType -> triggerType == InteractionManager.TriggerType.CONTAINER_SLOT_UPDATE && MWClient.lastUpdatedSlot == 45
128+
)
129+
);
130+
}
131+
} else {
132+
InteractionManager.clear();
119133
}
120134

121135
return true;
Lines changed: 94 additions & 94 deletions
Original file line numberDiff line numberDiff line change
@@ -1,94 +1,94 @@
1-
/*
2-
* Copyright 2021 Siphalor
3-
*
4-
* Licensed under the Apache License, Version 2.0 (the "License");
5-
* you may not use this file except in compliance with the License.
6-
* You may obtain a copy of the License at
7-
*
8-
* http://www.apache.org/licenses/LICENSE-2.0
9-
*
10-
* Unless required by applicable law or agreed to in writing,
11-
* software distributed under the License is distributed on an
12-
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
13-
* either express or implied.
14-
* See the License for the specific language governing
15-
* permissions and limitations under the License.
16-
*/
17-
18-
package de.siphalor.mousewheelie.client.inventory;
19-
20-
import de.siphalor.mousewheelie.MWConfig;
21-
import de.siphalor.mousewheelie.client.MWClient;
22-
import net.fabricmc.api.EnvType;
23-
import net.fabricmc.api.Environment;
24-
import net.fabricmc.fabric.api.network.ClientSidePacketRegistry;
25-
import net.minecraft.block.BlockState;
26-
import net.minecraft.entity.player.PlayerInventory;
27-
import net.minecraft.item.ItemStack;
28-
import net.minecraft.network.packet.c2s.play.PickFromInventoryC2SPacket;
29-
30-
@Environment(EnvType.CLIENT)
31-
public class ToolPicker {
32-
PlayerInventory inventory;
33-
34-
static int lastToolPickSlot = -1;
35-
36-
public ToolPicker(PlayerInventory inventory) {
37-
this.inventory = inventory;
38-
}
39-
40-
public int findToolFor(BlockState blockState) {
41-
float bestBreakSpeed = 1.0F;
42-
int bestSpeedSlot = -1;
43-
int invSize = (MWConfig.toolPicking.pickFromInventory ? inventory.main.size() : 9);
44-
for (int i = 1; i <= invSize; i++) {
45-
int index = (i + lastToolPickSlot) % invSize;
46-
if (index == inventory.selectedSlot) continue;
47-
ItemStack stack = inventory.main.get(index);
48-
if (stack.isEffectiveOn(blockState)) {
49-
return index;
50-
} else {
51-
float breakSpeed = stack.getMiningSpeed(blockState);
52-
if (breakSpeed > bestBreakSpeed) {
53-
bestSpeedSlot = index;
54-
bestBreakSpeed = breakSpeed;
55-
}
56-
}
57-
}
58-
if (bestBreakSpeed == -1) {
59-
ItemStack stack = inventory.main.get(inventory.selectedSlot);
60-
if (stack.isEffectiveOn(blockState) || stack.getMiningSpeed(blockState) > 1.0F)
61-
return inventory.selectedSlot;
62-
}
63-
return bestSpeedSlot;
64-
}
65-
66-
public boolean pickToolFor(BlockState blockState) {
67-
return pick(findToolFor(blockState));
68-
}
69-
70-
public int findWeapon() {
71-
int invSize = (MWConfig.toolPicking.pickFromInventory ? inventory.main.size() : 9);
72-
for (int i = 1; i <= invSize; i++) {
73-
int index = (i + lastToolPickSlot) % invSize;
74-
if (index == inventory.selectedSlot) continue;
75-
if (MWClient.isWeapon(inventory.main.get(index).getItem()))
76-
return index;
77-
}
78-
return -1;
79-
}
80-
81-
public boolean pickWeapon() {
82-
return pick(findWeapon());
83-
}
84-
85-
private boolean pick(int index) {
86-
lastToolPickSlot = index;
87-
if (index != -1 && index != inventory.selectedSlot) {
88-
PickFromInventoryC2SPacket packet = new PickFromInventoryC2SPacket(index);
89-
ClientSidePacketRegistry.INSTANCE.sendToServer(packet);
90-
return true;
91-
}
92-
return false;
93-
}
94-
}
1+
/*
2+
* Copyright 2021 Siphalor
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing,
11+
* software distributed under the License is distributed on an
12+
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
13+
* either express or implied.
14+
* See the License for the specific language governing
15+
* permissions and limitations under the License.
16+
*/
17+
18+
package de.siphalor.mousewheelie.client.inventory;
19+
20+
import de.siphalor.mousewheelie.MWConfig;
21+
import de.siphalor.mousewheelie.client.MWClient;
22+
import net.fabricmc.api.EnvType;
23+
import net.fabricmc.api.Environment;
24+
import net.minecraft.block.BlockState;
25+
import net.minecraft.client.MinecraftClient;
26+
import net.minecraft.entity.player.PlayerInventory;
27+
import net.minecraft.item.ItemStack;
28+
import net.minecraft.network.packet.c2s.play.PickFromInventoryC2SPacket;
29+
30+
@Environment(EnvType.CLIENT)
31+
public class ToolPicker {
32+
PlayerInventory inventory;
33+
34+
static int lastToolPickSlot = -1;
35+
36+
public ToolPicker(PlayerInventory inventory) {
37+
this.inventory = inventory;
38+
}
39+
40+
public int findToolFor(BlockState blockState) {
41+
float bestBreakSpeed = 1.0F;
42+
int bestSpeedSlot = -1;
43+
int invSize = (MWConfig.toolPicking.pickFromInventory ? inventory.main.size() : 9);
44+
for (int i = 1; i <= invSize; i++) {
45+
int index = (i + lastToolPickSlot) % invSize;
46+
if (index == inventory.selectedSlot) continue;
47+
ItemStack stack = inventory.main.get(index);
48+
if (stack.isEffectiveOn(blockState)) {
49+
return index;
50+
} else {
51+
float breakSpeed = stack.getMiningSpeed(blockState);
52+
if (breakSpeed > bestBreakSpeed) {
53+
bestSpeedSlot = index;
54+
bestBreakSpeed = breakSpeed;
55+
}
56+
}
57+
}
58+
if (bestBreakSpeed == -1) {
59+
ItemStack stack = inventory.main.get(inventory.selectedSlot);
60+
if (stack.isEffectiveOn(blockState) || stack.getMiningSpeed(blockState) > 1.0F)
61+
return inventory.selectedSlot;
62+
}
63+
return bestSpeedSlot;
64+
}
65+
66+
public boolean pickToolFor(BlockState blockState) {
67+
return pick(findToolFor(blockState));
68+
}
69+
70+
public int findWeapon() {
71+
int invSize = (MWConfig.toolPicking.pickFromInventory ? inventory.main.size() : 9);
72+
for (int i = 1; i <= invSize; i++) {
73+
int index = (i + lastToolPickSlot) % invSize;
74+
if (index == inventory.selectedSlot) continue;
75+
if (MWClient.isWeapon(inventory.main.get(index).getItem()))
76+
return index;
77+
}
78+
return -1;
79+
}
80+
81+
public boolean pickWeapon() {
82+
return pick(findWeapon());
83+
}
84+
85+
private boolean pick(int index) {
86+
lastToolPickSlot = index;
87+
if (index != -1 && index != inventory.selectedSlot) {
88+
PickFromInventoryC2SPacket packet = new PickFromInventoryC2SPacket(index);
89+
MinecraftClient.getInstance().getNetworkHandler().sendPacket(packet);
90+
return true;
91+
}
92+
return false;
93+
}
94+
}

0 commit comments

Comments
 (0)