Skip to content

Commit f4f475b

Browse files
committed
mooore tweaks
1 parent 7649638 commit f4f475b

File tree

13 files changed

+94
-74
lines changed

13 files changed

+94
-74
lines changed

src/main/java/embin/strangeitems/SIRegisteredEvents.java

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -14,28 +14,20 @@
1414
public final class SIRegisteredEvents {
1515
public static final Identifier BLOCK_MINED = Id.of("blocks_mined_tracker");
1616
public static final Identifier ENTITY_ATTACKED = Id.of("mobs_hit_tracker");
17-
public static final Identifier PLAYER_CROUCH = Id.of("time_sneaking_tracker");
17+
public static final Identifier PLAYER_DROP_ITEM = Id.of("player_drop_item");
1818
public static final Identifier PLAYER_TICK = Id.of("player_tick");
1919

2020
public static void registerEvents() {
2121
PlayerBlockBreakEvents.AFTER.register(BLOCK_MINED, (level, player, blockPos, blockState, blockEntity) -> {
22-
ItemStack itemStack = player.getActiveItem();
23-
Trackers.BLOCKS_MINED.appendTracker(itemStack, BuiltInRegistries.BLOCK.getKey(blockState.getBlock()).toString());
24-
});
25-
26-
ServerPlayerEvents.WHEN_CROUCHING.register(PLAYER_CROUCH, player -> {
27-
ItemStack legs_stack = player.getItemBySlot(EquipmentSlot.LEGS);
28-
if (!legs_stack.isEmpty()) {
29-
Trackers.TIME_SNEAKING.appendTracker(legs_stack);
30-
}
31-
return InteractionResult.PASS;
22+
Identifier blockId = BuiltInRegistries.BLOCK.getKey(blockState.getBlock());
23+
Trackers.BLOCKS_MINED.appendTracker(player.getActiveItem(), blockId.toString());
3224
});
3325

3426
ServerPlayerEvents.ON_TICK.register(PLAYER_TICK, player -> {
3527
if (!player.isSpectator() || !player.touchingUnloadedChunk()) {
3628
ItemStack headStack = player.getItemBySlot(EquipmentSlot.HEAD);
3729
ItemStack chestStack = player.getItemBySlot(EquipmentSlot.CHEST);
38-
ItemStack legStack = player.getItemBySlot(EquipmentSlot.LEGS);
30+
ItemStack legsStack = player.getItemBySlot(EquipmentSlot.LEGS);
3931

4032
if (!headStack.isEmpty()) {
4133
if (player.isEyeInFluid(FluidTags.WATER)) {
@@ -47,12 +39,20 @@ public static void registerEvents() {
4739
Trackers.TIME_IN_LAVA.appendTracker(chestStack);
4840
}
4941
}
50-
if (!legStack.isEmpty()) {
42+
if (!legsStack.isEmpty()) {
5143
String dimension = player.level().dimensionTypeRegistration().getRegisteredName();
52-
Trackers.TIME_IN_DIMENSIONS.appendTracker(legStack, dimension);
44+
Trackers.TIME_IN_DIMENSIONS.appendTracker(legsStack, dimension);
45+
if (player.isDiscrete()) {
46+
Trackers.TIME_SNEAKING.appendTracker(legsStack);
47+
}
5348
}
5449
}
5550
return InteractionResult.PASS;
5651
});
52+
53+
ServerPlayerEvents.ON_DROP_ITEM.register(PLAYER_DROP_ITEM, (player, itemStack) -> {
54+
Trackers.TIMES_DROPPED.appendTracker(itemStack);
55+
return InteractionResult.PASS;
56+
});
5757
}
5858
}

src/main/java/embin/strangeitems/client/StrangeItemsClient.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ private static KeyMapping debugKeybind(String translation, int key) {
4949
public static KeyMapping show_times_dropped = vanillaKeybind("show_times_dropped", GLFW.GLFW_KEY_RIGHT_ALT);
5050
public static KeyMapping show_mobs_killed = vanillaKeybind("show_mobs_killed", GLFW.GLFW_KEY_LEFT_ALT);
5151
public static KeyMapping show_time_in_dimensions = vanillaKeybind("show_time_in_dimension", GLFW.GLFW_KEY_GRAVE_ACCENT);
52+
public static KeyMapping SHOW_SHOTS_HIT = vanillaKeybind("show_shots_hit", GLFW.GLFW_KEY_X);
5253

5354
public static KeyMapping DEBUG_LIST_TRACKERS = vanillaKeybind("debug_list_trackers", GLFW.GLFW_KEY_KP_DIVIDE);
5455

src/main/java/embin/strangeitems/event/ServerPlayerEvents.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import net.fabricmc.fabric.api.event.EventFactory;
55
import net.minecraft.server.level.ServerPlayer;
66
import net.minecraft.world.InteractionResult;
7+
import net.minecraft.world.item.ItemStack;
78
import org.jetbrains.annotations.NotNull;
89

910
public final class ServerPlayerEvents {
@@ -19,9 +20,9 @@ private ServerPlayerEvents() {}
1920
return InteractionResult.PASS;
2021
});
2122

22-
public static final Event<@NotNull WhenCrouching> WHEN_CROUCHING = EventFactory.createArrayBacked(WhenCrouching.class, listeners -> player -> {
23-
for (WhenCrouching listener : listeners) {
24-
InteractionResult result = listener.whenCrouching(player);
23+
public static final Event<@NotNull DropItem> ON_DROP_ITEM = EventFactory.createArrayBacked(DropItem.class, listeners -> (player, itemStack) -> {
24+
for (DropItem listener : listeners) {
25+
InteractionResult result = listener.onDrop(player, itemStack);
2526
if (result != InteractionResult.PASS) {
2627
return result;
2728
}
@@ -33,7 +34,7 @@ public interface OnTick {
3334
InteractionResult tick(ServerPlayer player);
3435
}
3536

36-
public interface WhenCrouching {
37-
InteractionResult whenCrouching(ServerPlayer player);
37+
public interface DropItem {
38+
InteractionResult onDrop(ServerPlayer player, ItemStack itemStack);
3839
}
3940
}

src/main/java/embin/strangeitems/mixin/AbstractArrowMixin.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,14 @@
11
package embin.strangeitems.mixin;
22

3-
import embin.strangeitems.StrangeItems;
43
import embin.strangeitems.tracker.Trackers;
54
import net.minecraft.core.registries.BuiltInRegistries;
65
import net.minecraft.resources.Identifier;
7-
import net.minecraft.world.entity.Entity;
86
import net.minecraft.world.entity.projectile.arrow.AbstractArrow;
97
import net.minecraft.world.phys.EntityHitResult;
108
import org.spongepowered.asm.mixin.Mixin;
119
import org.spongepowered.asm.mixin.injection.At;
1210
import org.spongepowered.asm.mixin.injection.Inject;
1311
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
14-
import org.spongepowered.asm.mixin.injection.callback.LocalCapture;
1512

1613
@Mixin(AbstractArrow.class)
1714
public abstract class AbstractArrowMixin {

src/main/java/embin/strangeitems/mixin/ServerPlayerMixin.java

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -14,19 +14,12 @@
1414

1515
@Mixin(ServerPlayer.class)
1616
public class ServerPlayerMixin {
17-
@Inject(method = "drop*", at = @At(value = "HEAD"))
17+
@Inject(method = "drop*", at = @At(value = "HEAD"), cancellable = true)
1818
public void dropItemMixin(ItemStack stack, boolean throwRandomly, boolean retainOwnership, CallbackInfoReturnable<ItemEntity> cir) {
19-
if (!stack.isEmpty()) {
20-
Trackers.TIMES_DROPPED.appendTracker(stack);
21-
}
22-
}
23-
24-
@Inject(method = "doTick", at = @At(value = "INVOKE", target = "Lnet/minecraft/server/level/ServerPlayer;awardStat(Lnet/minecraft/resources/Identifier;)V", ordinal = 3))
25-
public void whenSneaking(CallbackInfo ci) {
2619
ServerPlayer player = (ServerPlayer)(Object) this;
27-
InteractionResult result = ServerPlayerEvents.WHEN_CROUCHING.invoker().whenCrouching(player);
20+
InteractionResult result = ServerPlayerEvents.ON_DROP_ITEM.invoker().onDrop(player, stack);
2821
if (result == InteractionResult.FAIL) {
29-
ci.cancel();
22+
cir.cancel();
3023
}
3124
}
3225

src/main/java/embin/strangeitems/tracker/TrackerItemTags.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ private static TagKey<Item> createTag(String name) {
1111
}
1212

1313
public static final TagKey<Item> CAN_TRACK_STATS = createTag("can_track_stats");
14+
public static final TagKey<Item> TRACKER_BLOCKS_MINED = createTag("trackers/blocks_mined");
1415
public static final TagKey<Item> TRACKER_SHEEP_SHEARED = createTag("trackers/sheep_sheared");
1516
public static final TagKey<Item> TRACKER_PLANTS_TRIMMED = createTag("trackers/plants_trimmed");
1617
public static final TagKey<Item> TRACKER_SHOTS_FIRED = createTag("trackers/shots_fired");

src/main/java/embin/strangeitems/tracker/TrackerKeybindings.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package embin.strangeitems.tracker;
22

3-
import com.google.common.collect.Maps;
43
import com.mojang.blaze3d.platform.InputConstants;
54
import embin.strangeitems.StrangeItems;
65
import embin.strangeitems.client.StrangeItemsClient;
@@ -9,6 +8,7 @@
98
import org.lwjgl.glfw.GLFW;
109

1110
import java.util.ArrayList;
11+
import java.util.HashMap;
1212
import java.util.List;
1313
import java.util.Map;
1414

@@ -24,13 +24,14 @@ private TrackerKeybindings() {}
2424

2525
public static final List<Tracker> WARNED_KEYBINDINGS = new ArrayList<>(99);
2626

27-
public static final Map<MapTracker, KeyMapping> MAP_TRACKER_KEYBINDINGS = Util.make(Maps.newHashMap(), (map) -> {
27+
public static final Map<MapTracker, KeyMapping> MAP_TRACKER_KEYBINDINGS = Util.make(HashMap.newHashMap(8), (map) -> {
2828
map.put(Trackers.BLOCKS_MINED, StrangeItemsClient.show_blocks_mined);
2929
map.put(Trackers.MOBS_KILLED, StrangeItemsClient.show_mobs_killed);
3030
map.put(Trackers.TIME_IN_DIMENSIONS, StrangeItemsClient.show_time_in_dimensions);
31+
map.put(Trackers.SHOTS_HIT, StrangeItemsClient.SHOW_SHOTS_HIT);
3132
});
3233

33-
public static final Map<TimestampTracker, KeyMapping> TIMESTAMP_TRACKER_KEYBINDINGS = Util.make(Maps.newHashMap(), (map) -> {
34+
public static final Map<TimestampTracker, KeyMapping> TIMESTAMP_TRACKER_KEYBINDINGS = Util.make(HashMap.newHashMap(8), (map) -> {
3435
map.put(Trackers.TIMES_DROPPED, StrangeItemsClient.show_times_dropped);
3536
});
3637

src/main/java/embin/strangeitems/tracker/Trackers.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
* Also contains methods to register trackers.
1414
*/
1515
public class Trackers {
16-
public static final MapTracker BLOCKS_MINED = registerMap("blocks_mined", "block");
16+
public static final MapTracker BLOCKS_MINED = registerMap("blocks_mined", "block", TrackerItemTags.TRACKER_BLOCKS_MINED);
1717
public static final Tracker TIME_FLOWN_WITH_ELYTRA = register("time_flown_with_elytra", TrackerItemTags.TRACKER_TIME_FLOWN, StatFormatter.TIME, 20);
1818
public static final TimestampTracker TIMES_DROPPED = registerTimestamp("times_dropped");
1919
public static final Tracker MOBS_HIT = register("mobs_hit");
Lines changed: 21 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,23 @@
11
{
2-
"values":[
3-
"#minecraft:swords",
4-
"#minecraft:pickaxes",
5-
"#minecraft:axes",
6-
"#minecraft:shovels",
7-
"#minecraft:hoes",
8-
"minecraft:mace",
9-
"minecraft:bow",
10-
"minecraft:flint_and_steel",
11-
"minecraft:shears",
12-
"minecraft:elytra",
13-
"minecraft:trident",
14-
"minecraft:brush",
15-
"minecraft:fishing_rod",
16-
"#minecraft:head_armor",
17-
"#minecraft:chest_armor",
18-
"#minecraft:leg_armor",
19-
"#minecraft:foot_armor",
20-
"minecraft:crossbow"
21-
]
2+
"values":[
3+
"#minecraft:swords",
4+
"#minecraft:pickaxes",
5+
"#minecraft:axes",
6+
"#minecraft:shovels",
7+
"#minecraft:hoes",
8+
"#minecraft:spears",
9+
"minecraft:mace",
10+
"minecraft:bow",
11+
"minecraft:flint_and_steel",
12+
"minecraft:shears",
13+
"minecraft:elytra",
14+
"minecraft:trident",
15+
"minecraft:brush",
16+
"minecraft:fishing_rod",
17+
"#minecraft:head_armor",
18+
"#minecraft:chest_armor",
19+
"#minecraft:leg_armor",
20+
"#minecraft:foot_armor",
21+
"minecraft:crossbow"
22+
]
2223
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
{
2+
"values":[
3+
"#minecraft:swords",
4+
"#minecraft:pickaxes",
5+
"#minecraft:axes",
6+
"#minecraft:shovels",
7+
"#minecraft:hoes",
8+
"minecraft:mace",
9+
"minecraft:bow",
10+
"minecraft:flint_and_steel",
11+
"minecraft:shears",
12+
"minecraft:elytra",
13+
"minecraft:trident",
14+
"minecraft:brush",
15+
"minecraft:fishing_rod",
16+
"#minecraft:head_armor",
17+
"#minecraft:chest_armor",
18+
"#minecraft:leg_armor",
19+
"#minecraft:foot_armor",
20+
"minecraft:crossbow"
21+
]
22+
}

0 commit comments

Comments
 (0)