Skip to content

Commit c96dfde

Browse files
committed
stop continous equipping sound when wearing smart goggles
1 parent ef2c837 commit c96dfde

3 files changed

Lines changed: 35 additions & 5 deletions

File tree

src/main/java/de/srendi/advancedperipherals/common/component/ItemStackStorage.java

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,14 +104,41 @@ public boolean equals(Object other) {
104104
if (this == other) {
105105
return true;
106106
}
107-
return other instanceof ItemStackStorage storage && Arrays.equals(this.items, storage.items);
107+
if (!(other instanceof ItemStackStorage storage)) {
108+
return false;
109+
}
110+
int length = this.items.length;
111+
if (length != storage.items.length) {
112+
return false;
113+
}
114+
for (int i = 0; i < length; i++) {
115+
if (!ItemStack.isSameItemSameComponents(this.items[i], storage.items[i])) {
116+
return false;
117+
}
118+
}
119+
return true;
108120
}
109121

110122
@Override
111123
public int hashCode() {
112124
return Arrays.hashCode(this.items);
113125
}
114126

127+
@Override
128+
public String toString() {
129+
StringBuilder builder = new StringBuilder()
130+
.append("ItemStackStorage[");
131+
for (int i = 0; i < this.items.length; i++) {
132+
if (i > 0) {
133+
builder.append(", ");
134+
}
135+
builder.append(this.items[i].toString());
136+
}
137+
return builder
138+
.append("]")
139+
.toString();
140+
}
141+
115142
private static ItemStack[] copyItems(ItemStack[] items) {
116143
ItemStack[] copies = new ItemStack[items.length];
117144
for (int i = 0; i < items.length; i++) {

src/main/java/de/srendi/advancedperipherals/common/items/SmartGlassesItem.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import de.srendi.advancedperipherals.common.smartglasses.modules.IModuleItem;
3030
import net.minecraft.core.BlockPos;
3131
import net.minecraft.core.Holder;
32+
import net.minecraft.core.component.TypedDataComponent;
3233
import net.minecraft.server.MinecraftServer;
3334
import net.minecraft.server.level.ServerLevel;
3435
import net.minecraft.world.InteractionHand;
@@ -172,6 +173,9 @@ public void onEquippedTick(ItemStack stack, Level level, LivingEntity entity) {
172173
if (computer != null) {
173174
glassesAccess = computer.getSmartGlassesModuleAccess();
174175
module = computer.getModuleBySlot(slot);
176+
if (module == null) {
177+
continue;
178+
}
175179
}
176180
moduleItem.moduleTick(level, entity, slot, glassesAccess, module);
177181
}

src/main/java/de/srendi/advancedperipherals/common/smartglasses/modules/nightvision/NightVisionModuleItem.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
import net.minecraft.world.effect.MobEffectInstance;
77
import net.minecraft.world.effect.MobEffects;
88
import net.minecraft.world.entity.LivingEntity;
9-
import net.minecraft.world.entity.player.Player;
109
import net.minecraft.world.level.Level;
1110
import org.jetbrains.annotations.NotNull;
1211

@@ -26,14 +25,14 @@ public NightVisionModule createModule(SmartGlassesSideAccess access) {
2625

2726
@Override
2827
public void moduleTick(Level level, LivingEntity entity, int moduleSlot, SmartGlassesSideAccess access, NightVisionModule module) {
29-
if (level.isClientSide() || !(entity instanceof Player player)) {
28+
if (level.isClientSide()) {
3029
return;
3130
}
3231

3332
if (!module.isNightVisionEnabled()) {
34-
player.removeEffect(MobEffects.NIGHT_VISION);
33+
entity.removeEffect(MobEffects.NIGHT_VISION);
3534
return;
3635
}
37-
player.addEffect(new MobEffectInstance(MobEffects.NIGHT_VISION, NIGHT_VISION_TICKS, 0, false, false, true));
36+
entity.addEffect(new MobEffectInstance(MobEffects.NIGHT_VISION, NIGHT_VISION_TICKS, 0, false, false, true));
3837
}
3938
}

0 commit comments

Comments
 (0)