1
0
mirror of https://github.com/SquidDev-CC/CC-Tweaked synced 2025-05-25 18:54:10 +00:00

Replace several Guava classes with Java stdlib

Wow, some of this is /old/. All the Maps.newHashMap stuff dates back to
Java 6, so must originally be CCTweaks code?!

We're unlikely to drop our Guava dependency (we use too much other
stuff), but we should make the most of the stdlib where possible.
This commit is contained in:
Jonathan Coates 2023-10-11 09:58:39 +01:00
parent 7e5598d084
commit bdce9a8170
No known key found for this signature in database
GPG Key ID: B9E431FF07C98D06
17 changed files with 89 additions and 96 deletions

View File

@ -19,8 +19,6 @@ import net.minecraft.data.PackOutput;
import net.minecraft.resources.ResourceKey; import net.minecraft.resources.ResourceKey;
import net.minecraft.resources.ResourceLocation; import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.item.Item; import net.minecraft.world.item.Item;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import java.util.*; import java.util.*;
@ -36,8 +34,6 @@ import java.util.function.Function;
* @param <R> The upgrade serialiser to register for. * @param <R> The upgrade serialiser to register for.
*/ */
public abstract class UpgradeDataProvider<T extends UpgradeBase, R extends UpgradeSerialiser<? extends T>> implements DataProvider { public abstract class UpgradeDataProvider<T extends UpgradeBase, R extends UpgradeSerialiser<? extends T>> implements DataProvider {
private static final Logger LOGGER = LogManager.getLogger();
private final PackOutput output; private final PackOutput output;
private final String name; private final String name;
private final String folder; private final String folder;

View File

@ -14,10 +14,10 @@ import dan200.computercraft.core.terminal.TextBuffer;
import dan200.computercraft.core.util.Colour; import dan200.computercraft.core.util.Colour;
import net.minecraft.client.renderer.ShaderInstance; import net.minecraft.client.renderer.ShaderInstance;
import net.minecraft.server.packs.resources.ResourceProvider; import net.minecraft.server.packs.resources.ResourceProvider;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.lwjgl.opengl.GL13; import org.lwjgl.opengl.GL13;
import org.lwjgl.opengl.GL31; import org.lwjgl.opengl.GL31;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import java.io.IOException; import java.io.IOException;
@ -36,12 +36,12 @@ import static dan200.computercraft.client.render.text.FixedWidthFontRenderer.get
* @see RenderTypes#getMonitorTextureBufferShader() * @see RenderTypes#getMonitorTextureBufferShader()
*/ */
public class MonitorTextureBufferShader extends ShaderInstance { public class MonitorTextureBufferShader extends ShaderInstance {
private static final Logger LOG = LoggerFactory.getLogger(MonitorTextureBufferShader.class);
public static final int UNIFORM_SIZE = 4 * 4 * 16 + 4 + 4 + 2 * 4 + 4; public static final int UNIFORM_SIZE = 4 * 4 * 16 + 4 + 4 + 2 * 4 + 4;
static final int TEXTURE_INDEX = GL13.GL_TEXTURE3; static final int TEXTURE_INDEX = GL13.GL_TEXTURE3;
private static final Logger LOGGER = LogManager.getLogger();
private final int monitorData; private final int monitorData;
private int uniformBuffer = 0; private int uniformBuffer = 0;
@ -75,7 +75,7 @@ public class MonitorTextureBufferShader extends ShaderInstance {
private Uniform getUniformChecked(String name) { private Uniform getUniformChecked(String name) {
var uniform = getUniform(name); var uniform = getUniform(name);
if (uniform == null) { if (uniform == null) {
LOGGER.warn("Monitor shader {} should have uniform {}, but it was not present.", getName(), name); LOG.warn("Monitor shader {} should have uniform {}, but it was not present.", getName(), name);
} }
return uniform; return uniform;

View File

@ -18,8 +18,8 @@ import net.minecraft.server.packs.resources.SimpleJsonResourceReloadListener;
import net.minecraft.util.GsonHelper; import net.minecraft.util.GsonHelper;
import net.minecraft.util.profiling.ProfilerFiller; import net.minecraft.util.profiling.ProfilerFiller;
import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.ItemStack;
import org.apache.logging.log4j.LogManager; import org.slf4j.Logger;
import org.apache.logging.log4j.Logger; import org.slf4j.LoggerFactory;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import java.util.Collection; import java.util.Collection;
@ -37,7 +37,7 @@ import java.util.stream.Collectors;
* @see PocketUpgrades * @see PocketUpgrades
*/ */
public class UpgradeManager<R extends UpgradeSerialiser<? extends T>, T extends UpgradeBase> extends SimpleJsonResourceReloadListener { public class UpgradeManager<R extends UpgradeSerialiser<? extends T>, T extends UpgradeBase> extends SimpleJsonResourceReloadListener {
private static final Logger LOGGER = LogManager.getLogger(); private static final Logger LOG = LoggerFactory.getLogger(UpgradeManager.class);
private static final Gson GSON = new GsonBuilder().setPrettyPrinting().disableHtmlEscaping().create(); private static final Gson GSON = new GsonBuilder().setPrettyPrinting().disableHtmlEscaping().create();
public record UpgradeWrapper<R extends UpgradeSerialiser<? extends T>, T extends UpgradeBase>( public record UpgradeWrapper<R extends UpgradeSerialiser<? extends T>, T extends UpgradeBase>(
@ -103,13 +103,13 @@ public class UpgradeManager<R extends UpgradeSerialiser<? extends T>, T extends
try { try {
loadUpgrade(newUpgrades, element.getKey(), element.getValue()); loadUpgrade(newUpgrades, element.getKey(), element.getValue());
} catch (IllegalArgumentException | JsonParseException e) { } catch (IllegalArgumentException | JsonParseException e) {
LOGGER.error("Error loading {} {} from JSON file", kind, element.getKey(), e); LOG.error("Error loading {} {} from JSON file", kind, element.getKey(), e);
} }
} }
current = Collections.unmodifiableMap(newUpgrades); current = Collections.unmodifiableMap(newUpgrades);
currentWrappers = newUpgrades.values().stream().collect(Collectors.toUnmodifiableMap(UpgradeWrapper::upgrade, x -> x)); currentWrappers = newUpgrades.values().stream().collect(Collectors.toUnmodifiableMap(UpgradeWrapper::upgrade, x -> x));
LOGGER.info("Loaded {} {}s", current.size(), kind); LOG.info("Loaded {} {}s", current.size(), kind);
} }
private void loadUpgrade(Map<String, UpgradeWrapper<R, T>> current, ResourceLocation id, JsonElement json) { private void loadUpgrade(Map<String, UpgradeWrapper<R, T>> current, ResourceLocation id, JsonElement json) {

View File

@ -4,7 +4,6 @@
package dan200.computercraft.impl.network.wired; package dan200.computercraft.impl.network.wired;
import com.google.common.collect.ImmutableMap;
import dan200.computercraft.api.network.Packet; import dan200.computercraft.api.network.Packet;
import dan200.computercraft.api.network.wired.WiredNetwork; import dan200.computercraft.api.network.wired.WiredNetwork;
import dan200.computercraft.api.network.wired.WiredNode; import dan200.computercraft.api.network.wired.WiredNode;
@ -260,7 +259,7 @@ final class WiredNetworkImpl implements WiredNetwork {
var change = WiredNetworkChangeImpl.changeOf(oldPeripherals, newPeripherals); var change = WiredNetworkChangeImpl.changeOf(oldPeripherals, newPeripherals);
if (change.isEmpty()) return; if (change.isEmpty()) return;
wired.peripherals = ImmutableMap.copyOf(newPeripherals); wired.peripherals = Map.copyOf(newPeripherals);
// Detach the old peripherals then remove them. // Detach the old peripherals then remove them.
peripherals.keySet().removeAll(change.peripheralsRemoved().keySet()); peripherals.keySet().removeAll(change.peripheralsRemoved().keySet());

View File

@ -13,13 +13,16 @@ import dan200.computercraft.api.network.wired.WiredSender;
import dan200.computercraft.api.peripheral.IPeripheral; import dan200.computercraft.api.peripheral.IPeripheral;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import java.util.*; import java.util.HashSet;
import java.util.Map;
import java.util.Objects;
import java.util.Set;
public final class WiredNodeImpl implements WiredNode { public final class WiredNodeImpl implements WiredNode {
private @Nullable Set<PacketReceiver> receivers; private @Nullable Set<PacketReceiver> receivers;
final WiredElement element; final WiredElement element;
Map<String, IPeripheral> peripherals = Collections.emptyMap(); Map<String, IPeripheral> peripherals = Map.of();
final HashSet<WiredNodeImpl> neighbours = new HashSet<>(); final HashSet<WiredNodeImpl> neighbours = new HashSet<>();
volatile WiredNetworkImpl network; volatile WiredNetworkImpl network;

View File

@ -4,12 +4,12 @@
package dan200.computercraft.shared.peripheral.modem.wired; package dan200.computercraft.shared.peripheral.modem.wired;
import com.google.common.collect.ImmutableMap;
import dan200.computercraft.annotations.ForgeOverride; import dan200.computercraft.annotations.ForgeOverride;
import dan200.computercraft.shared.ModRegistry; import dan200.computercraft.shared.ModRegistry;
import dan200.computercraft.shared.platform.PlatformHelper; import dan200.computercraft.shared.platform.PlatformHelper;
import dan200.computercraft.shared.util.WaterloggableHelpers; import dan200.computercraft.shared.util.WaterloggableHelpers;
import dan200.computercraft.shared.util.WorldUtil; import dan200.computercraft.shared.util.WorldUtil;
import net.minecraft.Util;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction; import net.minecraft.core.Direction;
import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerLevel;
@ -52,12 +52,14 @@ public class CableBlock extends Block implements SimpleWaterloggedBlock, EntityB
public static final BooleanProperty UP = BooleanProperty.create("up"); public static final BooleanProperty UP = BooleanProperty.create("up");
public static final BooleanProperty DOWN = BooleanProperty.create("down"); public static final BooleanProperty DOWN = BooleanProperty.create("down");
static final EnumMap<Direction, BooleanProperty> CONNECTIONS = static final EnumMap<Direction, BooleanProperty> CONNECTIONS = Util.make(new EnumMap<>(Direction.class), m -> {
new EnumMap<>(new ImmutableMap.Builder<Direction, BooleanProperty>() m.put(Direction.DOWN, DOWN);
.put(Direction.DOWN, DOWN).put(Direction.UP, UP) m.put(Direction.UP, UP);
.put(Direction.NORTH, NORTH).put(Direction.SOUTH, SOUTH) m.put(Direction.NORTH, NORTH);
.put(Direction.WEST, WEST).put(Direction.EAST, EAST) m.put(Direction.SOUTH, SOUTH);
.build()); m.put(Direction.WEST, WEST);
m.put(Direction.EAST, EAST);
});
public CableBlock(Properties settings) { public CableBlock(Properties settings) {
super(settings); super(settings);

View File

@ -4,7 +4,6 @@
package dan200.computercraft.shared.peripheral.modem.wired; package dan200.computercraft.shared.peripheral.modem.wired;
import com.google.common.base.Objects;
import dan200.computercraft.api.network.wired.WiredElement; import dan200.computercraft.api.network.wired.WiredElement;
import dan200.computercraft.api.network.wired.WiredNode; import dan200.computercraft.api.network.wired.WiredNode;
import dan200.computercraft.api.peripheral.IPeripheral; import dan200.computercraft.api.peripheral.IPeripheral;
@ -32,6 +31,7 @@ import net.minecraft.world.phys.Vec3;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import java.util.Collections; import java.util.Collections;
import java.util.Objects;
public class CableBlockEntity extends BlockEntity { public class CableBlockEntity extends BlockEntity {
private static final String NBT_PERIPHERAL_ENABLED = "PeripheralAccess"; private static final String NBT_PERIPHERAL_ENABLED = "PeripheralAccess";
@ -181,7 +181,7 @@ public class CableBlockEntity extends BlockEntity {
var oldName = peripheral.getConnectedName(); var oldName = peripheral.getConnectedName();
togglePeripheralAccess(); togglePeripheralAccess();
var newName = peripheral.getConnectedName(); var newName = peripheral.getConnectedName();
if (!Objects.equal(newName, oldName)) { if (!Objects.equals(newName, oldName)) {
if (oldName != null) { if (oldName != null) {
player.displayClientMessage(Component.translatable("chat.computercraft.wired_modem.peripheral_disconnected", player.displayClientMessage(Component.translatable("chat.computercraft.wired_modem.peripheral_disconnected",
ChatHelpers.copy(oldName)), false); ChatHelpers.copy(oldName)), false);

View File

@ -4,9 +4,9 @@
package dan200.computercraft.shared.peripheral.modem.wired; package dan200.computercraft.shared.peripheral.modem.wired;
import com.google.common.collect.ImmutableMap;
import dan200.computercraft.shared.peripheral.modem.ModemShapes; import dan200.computercraft.shared.peripheral.modem.ModemShapes;
import dan200.computercraft.shared.util.DirectionUtil; import dan200.computercraft.shared.util.DirectionUtil;
import net.minecraft.Util;
import net.minecraft.core.Direction; import net.minecraft.core.Direction;
import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.phys.shapes.Shapes; import net.minecraft.world.phys.shapes.Shapes;
@ -21,16 +21,14 @@ public final class CableShapes {
private static final double MAX = 1 - MIN; private static final double MAX = 1 - MIN;
private static final VoxelShape SHAPE_CABLE_CORE = Shapes.box(MIN, MIN, MIN, MAX, MAX, MAX); private static final VoxelShape SHAPE_CABLE_CORE = Shapes.box(MIN, MIN, MIN, MAX, MAX, MAX);
private static final EnumMap<Direction, VoxelShape> SHAPE_CABLE_ARM = private static final EnumMap<Direction, VoxelShape> SHAPE_CABLE_ARM = Util.make(new EnumMap<>(Direction.class), m -> {
new EnumMap<>(new ImmutableMap.Builder<Direction, VoxelShape>() m.put(Direction.DOWN, Shapes.box(MIN, 0, MIN, MAX, MIN, MAX));
.put(Direction.DOWN, Shapes.box(MIN, 0, MIN, MAX, MIN, MAX)) m.put(Direction.UP, Shapes.box(MIN, MAX, MIN, MAX, 1, MAX));
.put(Direction.UP, Shapes.box(MIN, MAX, MIN, MAX, 1, MAX)) m.put(Direction.NORTH, Shapes.box(MIN, MIN, 0, MAX, MAX, MIN));
.put(Direction.NORTH, Shapes.box(MIN, MIN, 0, MAX, MAX, MIN)) m.put(Direction.SOUTH, Shapes.box(MIN, MIN, MAX, MAX, MAX, 1));
.put(Direction.SOUTH, Shapes.box(MIN, MIN, MAX, MAX, MAX, 1)) m.put(Direction.WEST, Shapes.box(0, MIN, MIN, MIN, MAX, MAX));
.put(Direction.WEST, Shapes.box(0, MIN, MIN, MIN, MAX, MAX)) m.put(Direction.EAST, Shapes.box(MAX, MIN, MIN, 1, MAX, MAX));
.put(Direction.EAST, Shapes.box(MAX, MIN, MIN, 1, MAX, MAX)) });
.build()
);
private static final VoxelShape[] SHAPES = new VoxelShape[(1 << 6) * 7]; private static final VoxelShape[] SHAPES = new VoxelShape[(1 << 6) * 7];
private static final VoxelShape[] CABLE_SHAPES = new VoxelShape[1 << 6]; private static final VoxelShape[] CABLE_SHAPES = new VoxelShape[1 << 6];

View File

@ -4,7 +4,6 @@
package dan200.computercraft.shared.peripheral.modem.wired; package dan200.computercraft.shared.peripheral.modem.wired;
import com.google.common.base.Objects;
import dan200.computercraft.api.network.wired.WiredElement; import dan200.computercraft.api.network.wired.WiredElement;
import dan200.computercraft.api.network.wired.WiredNode; import dan200.computercraft.api.network.wired.WiredNode;
import dan200.computercraft.api.peripheral.IPeripheral; import dan200.computercraft.api.peripheral.IPeripheral;
@ -133,7 +132,7 @@ public class WiredModemFullBlockEntity extends BlockEntity {
togglePeripheralAccess(); togglePeripheralAccess();
var periphNames = getConnectedPeripheralNames(); var periphNames = getConnectedPeripheralNames();
if (!Objects.equal(periphNames, oldPeriphNames)) { if (!Objects.equals(periphNames, oldPeriphNames)) {
sendPeripheralChanges(player, "chat.computercraft.wired_modem.peripheral_disconnected", oldPeriphNames); sendPeripheralChanges(player, "chat.computercraft.wired_modem.peripheral_disconnected", oldPeriphNames);
sendPeripheralChanges(player, "chat.computercraft.wired_modem.peripheral_connected", periphNames); sendPeripheralChanges(player, "chat.computercraft.wired_modem.peripheral_connected", periphNames);
} }

View File

@ -4,7 +4,6 @@
package dan200.computercraft.shared.peripheral.modem.wired; package dan200.computercraft.shared.peripheral.modem.wired;
import com.google.common.collect.ImmutableMap;
import dan200.computercraft.api.filesystem.Mount; import dan200.computercraft.api.filesystem.Mount;
import dan200.computercraft.api.filesystem.WritableMount; import dan200.computercraft.api.filesystem.WritableMount;
import dan200.computercraft.api.lua.*; import dan200.computercraft.api.lua.*;
@ -429,7 +428,7 @@ public abstract class WiredModemPeripheral extends ModemPeripheral implements Wi
public Map<String, IPeripheral> getAvailablePeripherals() { public Map<String, IPeripheral> getAvailablePeripherals() {
if (!attached) throw new NotAttachedException(); if (!attached) throw new NotAttachedException();
synchronized (element.getRemotePeripherals()) { synchronized (element.getRemotePeripherals()) {
return ImmutableMap.copyOf(element.getRemotePeripherals()); return Map.copyOf(element.getRemotePeripherals());
} }
} }

View File

@ -4,7 +4,6 @@
package dan200.computercraft.shared.pocket.items; package dan200.computercraft.shared.pocket.items;
import com.google.common.base.Objects;
import dan200.computercraft.annotations.ForgeOverride; import dan200.computercraft.annotations.ForgeOverride;
import dan200.computercraft.api.ComputerCraftAPI; import dan200.computercraft.api.ComputerCraftAPI;
import dan200.computercraft.api.filesystem.Mount; import dan200.computercraft.api.filesystem.Mount;
@ -44,6 +43,7 @@ import net.minecraft.world.level.Level;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import java.util.List; import java.util.List;
import java.util.Objects;
public class PocketComputerItem extends Item implements IComputerItem, IMedia, IColouredItem { public class PocketComputerItem extends Item implements IComputerItem, IMedia, IColouredItem {
private static final String NBT_UPGRADE = "Upgrade"; private static final String NBT_UPGRADE = "Upgrade";
@ -97,7 +97,7 @@ public class PocketComputerItem extends Item implements IComputerItem, IMedia, I
// Sync label // Sync label
var label = computer.getLabel(); var label = computer.getLabel();
if (!Objects.equal(label, getLabel(stack))) { if (!Objects.equals(label, getLabel(stack))) {
changed = true; changed = true;
setLabel(stack, label); setLabel(stack, label);
} }

View File

@ -4,7 +4,6 @@
package dan200.computercraft.shared.turtle.core; package dan200.computercraft.shared.turtle.core;
import com.google.common.base.Objects;
import com.mojang.authlib.GameProfile; import com.mojang.authlib.GameProfile;
import dan200.computercraft.api.lua.ILuaCallback; import dan200.computercraft.api.lua.ILuaCallback;
import dan200.computercraft.api.lua.MethodResult; import dan200.computercraft.api.lua.MethodResult;
@ -455,7 +454,7 @@ public class TurtleBrain implements TurtleAccessInternal {
} }
public void setOverlay(@Nullable ResourceLocation overlay) { public void setOverlay(@Nullable ResourceLocation overlay) {
if (!Objects.equal(this.overlay, overlay)) { if (!Objects.equals(this.overlay, overlay)) {
this.overlay = overlay; this.overlay = overlay;
BlockEntityHelpers.updateBlock(owner); BlockEntityHelpers.updateBlock(owner);
} }
@ -573,7 +572,7 @@ public class TurtleBrain implements TurtleAccessInternal {
public float getToolRenderAngle(TurtleSide side, float f) { public float getToolRenderAngle(TurtleSide side, float f) {
return (side == TurtleSide.LEFT && animation == TurtleAnimation.SWING_LEFT_TOOL) || return (side == TurtleSide.LEFT && animation == TurtleAnimation.SWING_LEFT_TOOL) ||
(side == TurtleSide.RIGHT && animation == TurtleAnimation.SWING_RIGHT_TOOL) (side == TurtleSide.RIGHT && animation == TurtleAnimation.SWING_RIGHT_TOOL)
? 45.0f * (float) Math.sin(getAnimationFraction(f) * Math.PI) ? 45.0f * (float) Math.sin(getAnimationFraction(f) * Math.PI)
: 0.0f; : 0.0f;
} }

View File

@ -4,8 +4,6 @@
package dan200.computercraft.impl.network.wired; package dan200.computercraft.impl.network.wired;
import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
import dan200.computercraft.api.network.wired.WiredElement; import dan200.computercraft.api.network.wired.WiredElement;
import dan200.computercraft.api.network.wired.WiredNetwork; import dan200.computercraft.api.network.wired.WiredNetwork;
import dan200.computercraft.api.network.wired.WiredNetworkChange; import dan200.computercraft.api.network.wired.WiredNetworkChange;
@ -19,6 +17,7 @@ import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import java.util.HashMap;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
import java.util.function.BiConsumer; import java.util.function.BiConsumer;
@ -47,24 +46,24 @@ public class NetworkTest {
assertFalse(aN.getNetwork().connect(aN, bN), "Cannot add connection twice"); assertFalse(aN.getNetwork().connect(aN, bN), "Cannot add connection twice");
assertEquals(aN.getNetwork(), bN.getNetwork(), "A's and B's network must be equal"); assertEquals(aN.getNetwork(), bN.getNetwork(), "A's and B's network must be equal");
assertEquals(Sets.newHashSet(aN, bN), nodes(aN.getNetwork()), "A's network should be A and B"); assertEquals(Set.of(aN, bN), nodes(aN.getNetwork()), "A's network should be A and B");
assertEquals(Sets.newHashSet("a", "b"), aE.allPeripherals().keySet(), "A's peripheral set should be A, B"); assertEquals(Set.of("a", "b"), aE.allPeripherals().keySet(), "A's peripheral set should be A, B");
assertEquals(Sets.newHashSet("a", "b"), bE.allPeripherals().keySet(), "B's peripheral set should be A, B"); assertEquals(Set.of("a", "b"), bE.allPeripherals().keySet(), "B's peripheral set should be A, B");
aN.getNetwork().connect(aN, cN); aN.getNetwork().connect(aN, cN);
assertEquals(aN.getNetwork(), bN.getNetwork(), "A's and B's network must be equal"); assertEquals(aN.getNetwork(), bN.getNetwork(), "A's and B's network must be equal");
assertEquals(aN.getNetwork(), cN.getNetwork(), "A's and C's network must be equal"); assertEquals(aN.getNetwork(), cN.getNetwork(), "A's and C's network must be equal");
assertEquals(Sets.newHashSet(aN, bN, cN), nodes(aN.getNetwork()), "A's network should be A, B and C"); assertEquals(Set.of(aN, bN, cN), nodes(aN.getNetwork()), "A's network should be A, B and C");
assertEquals(Sets.newHashSet(bN, cN), neighbours(aN), "A's neighbour set should be B, C"); assertEquals(Set.of(bN, cN), neighbours(aN), "A's neighbour set should be B, C");
assertEquals(Sets.newHashSet(aN), neighbours(bN), "B's neighbour set should be A"); assertEquals(Set.of(aN), neighbours(bN), "B's neighbour set should be A");
assertEquals(Sets.newHashSet(aN), neighbours(cN), "C's neighbour set should be A"); assertEquals(Set.of(aN), neighbours(cN), "C's neighbour set should be A");
assertEquals(Sets.newHashSet("a", "b", "c"), aE.allPeripherals().keySet(), "A's peripheral set should be A, B, C"); assertEquals(Set.of("a", "b", "c"), aE.allPeripherals().keySet(), "A's peripheral set should be A, B, C");
assertEquals(Sets.newHashSet("a", "b", "c"), bE.allPeripherals().keySet(), "B's peripheral set should be A, B, C"); assertEquals(Set.of("a", "b", "c"), bE.allPeripherals().keySet(), "B's peripheral set should be A, B, C");
assertEquals(Sets.newHashSet("a", "b", "c"), cE.allPeripherals().keySet(), "C's peripheral set should be A, B, C"); assertEquals(Set.of("a", "b", "c"), cE.allPeripherals().keySet(), "C's peripheral set should be A, B, C");
} }
@Test @Test
@ -87,11 +86,11 @@ public class NetworkTest {
assertEquals(aN.getNetwork(), bN.getNetwork(), "A's and B's network must be equal"); assertEquals(aN.getNetwork(), bN.getNetwork(), "A's and B's network must be equal");
assertEquals(aN.getNetwork(), cN.getNetwork(), "A's and C's network must be equal"); assertEquals(aN.getNetwork(), cN.getNetwork(), "A's and C's network must be equal");
assertEquals(Sets.newHashSet(aN, bN, cN), nodes(aN.getNetwork()), "A's network should be A, B and C"); assertEquals(Set.of(aN, bN, cN), nodes(aN.getNetwork()), "A's network should be A, B and C");
assertEquals(Sets.newHashSet("a", "b", "c"), aE.allPeripherals().keySet(), "A's peripheral set should be A, B, C"); assertEquals(Set.of("a", "b", "c"), aE.allPeripherals().keySet(), "A's peripheral set should be A, B, C");
assertEquals(Sets.newHashSet("a", "b", "c"), bE.allPeripherals().keySet(), "B's peripheral set should be A, B, C"); assertEquals(Set.of("a", "b", "c"), bE.allPeripherals().keySet(), "B's peripheral set should be A, B, C");
assertEquals(Sets.newHashSet("a", "b", "c"), cE.allPeripherals().keySet(), "C's peripheral set should be A, B, C"); assertEquals(Set.of("a", "b", "c"), cE.allPeripherals().keySet(), "C's peripheral set should be A, B, C");
} }
@Test @Test
@ -113,12 +112,12 @@ public class NetworkTest {
assertNotEquals(aN.getNetwork(), bN.getNetwork(), "A's and B's network must not be equal"); assertNotEquals(aN.getNetwork(), bN.getNetwork(), "A's and B's network must not be equal");
assertEquals(aN.getNetwork(), cN.getNetwork(), "A's and C's network must be equal"); assertEquals(aN.getNetwork(), cN.getNetwork(), "A's and C's network must be equal");
assertEquals(Sets.newHashSet(aN, cN), nodes(aN.getNetwork()), "A's network should be A and C"); assertEquals(Set.of(aN, cN), nodes(aN.getNetwork()), "A's network should be A and C");
assertEquals(Sets.newHashSet(bN), nodes(bN.getNetwork()), "B's network should be B"); assertEquals(Set.of(bN), nodes(bN.getNetwork()), "B's network should be B");
assertEquals(Sets.newHashSet("a", "c"), aE.allPeripherals().keySet(), "A's peripheral set should be A, C"); assertEquals(Set.of("a", "c"), aE.allPeripherals().keySet(), "A's peripheral set should be A, C");
assertEquals(Sets.newHashSet("b"), bE.allPeripherals().keySet(), "B's peripheral set should be B"); assertEquals(Set.of("b"), bE.allPeripherals().keySet(), "B's peripheral set should be B");
assertEquals(Sets.newHashSet("a", "c"), cE.allPeripherals().keySet(), "C's peripheral set should be A, C"); assertEquals(Set.of("a", "c"), cE.allPeripherals().keySet(), "C's peripheral set should be A, C");
} }
@Test @Test
@ -146,11 +145,11 @@ public class NetworkTest {
assertEquals(aN.getNetwork(), aaN.getNetwork(), "A's and A_'s network must be equal"); assertEquals(aN.getNetwork(), aaN.getNetwork(), "A's and A_'s network must be equal");
assertEquals(bN.getNetwork(), bbN.getNetwork(), "B's and B_'s network must be equal"); assertEquals(bN.getNetwork(), bbN.getNetwork(), "B's and B_'s network must be equal");
assertEquals(Sets.newHashSet(aN, aaN), nodes(aN.getNetwork()), "A's network should be A and A_"); assertEquals(Set.of(aN, aaN), nodes(aN.getNetwork()), "A's network should be A and A_");
assertEquals(Sets.newHashSet(bN, bbN), nodes(bN.getNetwork()), "B's network should be B and B_"); assertEquals(Set.of(bN, bbN), nodes(bN.getNetwork()), "B's network should be B and B_");
assertEquals(Sets.newHashSet("a", "a_"), aE.allPeripherals().keySet(), "A's peripheral set should be A and A_"); assertEquals(Set.of("a", "a_"), aE.allPeripherals().keySet(), "A's peripheral set should be A and A_");
assertEquals(Sets.newHashSet("b", "b_"), bE.allPeripherals().keySet(), "B's peripheral set should be B and B_"); assertEquals(Set.of("b", "b_"), bE.allPeripherals().keySet(), "B's peripheral set should be B and B_");
} }
@Test @Test
@ -184,12 +183,12 @@ public class NetworkTest {
assertNotEquals(aN.getNetwork(), bN.getNetwork(), "A's and B's network must not be equal"); assertNotEquals(aN.getNetwork(), bN.getNetwork(), "A's and B's network must not be equal");
assertEquals(aN.getNetwork(), cN.getNetwork(), "A's and C's network must be equal"); assertEquals(aN.getNetwork(), cN.getNetwork(), "A's and C's network must be equal");
assertEquals(Sets.newHashSet(aN, cN), nodes(aN.getNetwork()), "A's network should be A and C"); assertEquals(Set.of(aN, cN), nodes(aN.getNetwork()), "A's network should be A and C");
assertEquals(Sets.newHashSet(bN), nodes(bN.getNetwork()), "B's network should be B"); assertEquals(Set.of(bN), nodes(bN.getNetwork()), "B's network should be B");
assertEquals(Sets.newHashSet("a", "c"), aE.allPeripherals().keySet(), "A's peripheral set should be A, C"); assertEquals(Set.of("a", "c"), aE.allPeripherals().keySet(), "A's peripheral set should be A, C");
assertEquals(Sets.newHashSet(), bE.allPeripherals().keySet(), "B's peripheral set should be empty"); assertEquals(Set.of(), bE.allPeripherals().keySet(), "B's peripheral set should be empty");
assertEquals(Sets.newHashSet("a", "c"), cE.allPeripherals().keySet(), "C's peripheral set should be A, C"); assertEquals(Set.of("a", "c"), cE.allPeripherals().keySet(), "C's peripheral set should be A, C");
} }
@Test @Test
@ -220,13 +219,13 @@ public class NetworkTest {
assertEquals(aN.getNetwork(), aaN.getNetwork(), "A's and A_'s network must be equal"); assertEquals(aN.getNetwork(), aaN.getNetwork(), "A's and A_'s network must be equal");
assertEquals(bN.getNetwork(), bbN.getNetwork(), "B's and B_'s network must be equal"); assertEquals(bN.getNetwork(), bbN.getNetwork(), "B's and B_'s network must be equal");
assertEquals(Sets.newHashSet(aN, aaN), nodes(aN.getNetwork()), "A's network should be A and A_"); assertEquals(Set.of(aN, aaN), nodes(aN.getNetwork()), "A's network should be A and A_");
assertEquals(Sets.newHashSet(bN, bbN), nodes(bN.getNetwork()), "B's network should be B and B_"); assertEquals(Set.of(bN, bbN), nodes(bN.getNetwork()), "B's network should be B and B_");
assertEquals(Sets.newHashSet(cN), nodes(cN.getNetwork()), "C's network should be C"); assertEquals(Set.of(cN), nodes(cN.getNetwork()), "C's network should be C");
assertEquals(Sets.newHashSet("a", "a_"), aE.allPeripherals().keySet(), "A's peripheral set should be A and A_"); assertEquals(Set.of("a", "a_"), aE.allPeripherals().keySet(), "A's peripheral set should be A and A_");
assertEquals(Sets.newHashSet("b", "b_"), bE.allPeripherals().keySet(), "B's peripheral set should be B and B_"); assertEquals(Set.of("b", "b_"), bE.allPeripherals().keySet(), "B's peripheral set should be B and B_");
assertEquals(Sets.newHashSet(), cE.allPeripherals().keySet(), "C's peripheral set should be empty"); assertEquals(Set.of(), cE.allPeripherals().keySet(), "C's peripheral set should be empty");
} }
private static final int BRUTE_SIZE = 16; private static final int BRUTE_SIZE = 16;
@ -300,8 +299,8 @@ public class NetworkTest {
private final Vec3 position; private final Vec3 position;
private final String id; private final String id;
private final WiredNode node; private final WiredNode node;
private final Map<String, IPeripheral> localPeripherals = Maps.newHashMap(); private final Map<String, IPeripheral> localPeripherals = new HashMap<>();
private final Map<String, IPeripheral> remotePeripherals = Maps.newHashMap(); private final Map<String, IPeripheral> remotePeripherals = new HashMap<>();
private NetworkElement(Level world, Vec3 position, String id) { private NetworkElement(Level world, Vec3 position, String id) {
this.world = world; this.world = world;

View File

@ -17,7 +17,7 @@ import net.minecraft.gametest.framework.GameTestAssertException
import net.minecraft.gametest.framework.GameTestAssertPosException import net.minecraft.gametest.framework.GameTestAssertPosException
import net.minecraft.gametest.framework.GameTestInfo import net.minecraft.gametest.framework.GameTestInfo
import net.minecraft.gametest.framework.GameTestSequence import net.minecraft.gametest.framework.GameTestSequence
import org.apache.logging.log4j.LogManager import org.slf4j.LoggerFactory
import java.io.InputStream import java.io.InputStream
import java.util.* import java.util.*
import java.util.concurrent.CancellationException import java.util.concurrent.CancellationException
@ -33,7 +33,7 @@ import java.util.concurrent.atomic.AtomicReference
* @see GameTestSequence.thenOnComputer * @see GameTestSequence.thenOnComputer
*/ */
object ManagedComputers : ILuaMachine.Factory { object ManagedComputers : ILuaMachine.Factory {
private val LOGGER = LogManager.getLogger(ManagedComputers::class.java) private val LOGGER = LoggerFactory.getLogger(ManagedComputers::class.java)
private val computers: MutableMap<String, Queue<suspend LuaTaskContext.() -> Unit>> = mutableMapOf() private val computers: MutableMap<String, Queue<suspend LuaTaskContext.() -> Unit>> = mutableMapOf()
internal fun enqueue(test: GameTestInfo, label: String, task: suspend LuaTaskContext.() -> Unit): Monitor { internal fun enqueue(test: GameTestInfo, label: String, task: suspend LuaTaskContext.() -> Unit): Monitor {

View File

@ -4,12 +4,12 @@
package dan200.computercraft.core.apis.http.websocket; package dan200.computercraft.core.apis.http.websocket;
import com.google.common.base.Objects;
import dan200.computercraft.api.lua.*; import dan200.computercraft.api.lua.*;
import dan200.computercraft.core.apis.IAPIEnvironment; import dan200.computercraft.core.apis.IAPIEnvironment;
import dan200.computercraft.core.apis.http.options.Options; import dan200.computercraft.core.apis.http.options.Options;
import java.util.Arrays; import java.util.Arrays;
import java.util.Objects;
import java.util.Optional; import java.util.Optional;
import static dan200.computercraft.api.lua.LuaValues.checkFinite; import static dan200.computercraft.api.lua.LuaValues.checkFinite;
@ -106,12 +106,12 @@ public class WebsocketHandle {
@Override @Override
public MethodResult resume(Object[] event) { public MethodResult resume(Object[] event) {
if (event.length >= 3 && Objects.equal(event[0], MESSAGE_EVENT) && Objects.equal(event[1], address)) { if (event.length >= 3 && Objects.equals(event[0], MESSAGE_EVENT) && Objects.equals(event[1], address)) {
return MethodResult.of(Arrays.copyOfRange(event, 2, event.length)); return MethodResult.of(Arrays.copyOfRange(event, 2, event.length));
} else if (event.length >= 2 && Objects.equal(event[0], CLOSE_EVENT) && Objects.equal(event[1], address) && websocket.isClosed()) { } else if (event.length >= 2 && Objects.equals(event[0], CLOSE_EVENT) && Objects.equals(event[1], address) && websocket.isClosed()) {
// If the socket is closed abort. // If the socket is closed abort.
return MethodResult.of(); return MethodResult.of();
} else if (event.length >= 2 && timeoutId != -1 && Objects.equal(event[0], TIMER_EVENT) } else if (event.length >= 2 && timeoutId != -1 && Objects.equals(event[0], TIMER_EVENT)
&& event[1] instanceof Number id && id.intValue() == timeoutId) { && event[1] instanceof Number id && id.intValue() == timeoutId) {
// If we received a matching timer event then abort. // If we received a matching timer event then abort.
return MethodResult.of(); return MethodResult.of();

View File

@ -4,7 +4,6 @@
package dan200.computercraft.core.computer; package dan200.computercraft.core.computer;
import com.google.common.base.Objects;
import dan200.computercraft.api.lua.ILuaAPI; import dan200.computercraft.api.lua.ILuaAPI;
import dan200.computercraft.api.lua.ILuaContext; import dan200.computercraft.api.lua.ILuaContext;
import dan200.computercraft.api.lua.LuaTask; import dan200.computercraft.api.lua.LuaTask;
@ -16,6 +15,7 @@ import dan200.computercraft.core.filesystem.FileSystem;
import dan200.computercraft.core.terminal.Terminal; import dan200.computercraft.core.terminal.Terminal;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import java.util.Objects;
import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicLong; import java.util.concurrent.atomic.AtomicLong;
@ -140,7 +140,7 @@ public class Computer {
} }
public void setLabel(@Nullable String label) { public void setLabel(@Nullable String label) {
if (!Objects.equal(label, this.label)) { if (!Objects.equals(label, this.label)) {
this.label = label; this.label = label;
externalOutputChanged.set(true); externalOutputChanged.set(true);
} }

View File

@ -4,7 +4,6 @@
package dan200.computercraft.core.filesystem; package dan200.computercraft.core.filesystem;
import com.google.common.collect.Sets;
import dan200.computercraft.api.filesystem.FileOperationException; import dan200.computercraft.api.filesystem.FileOperationException;
import dan200.computercraft.api.filesystem.WritableMount; import dan200.computercraft.api.filesystem.WritableMount;
import org.slf4j.Logger; import org.slf4j.Logger;
@ -28,8 +27,8 @@ public class WritableFileMount extends FileMount implements WritableMount {
private static final Logger LOG = LoggerFactory.getLogger(WritableFileMount.class); private static final Logger LOG = LoggerFactory.getLogger(WritableFileMount.class);
static final long MINIMUM_FILE_SIZE = 500; static final long MINIMUM_FILE_SIZE = 500;
private static final Set<OpenOption> WRITE_OPTIONS = Sets.newHashSet(StandardOpenOption.WRITE, StandardOpenOption.CREATE, StandardOpenOption.TRUNCATE_EXISTING); private static final Set<OpenOption> WRITE_OPTIONS = Set.of(StandardOpenOption.WRITE, StandardOpenOption.CREATE, StandardOpenOption.TRUNCATE_EXISTING);
private static final Set<OpenOption> APPEND_OPTIONS = Sets.newHashSet(StandardOpenOption.WRITE, StandardOpenOption.CREATE, StandardOpenOption.APPEND); private static final Set<OpenOption> APPEND_OPTIONS = Set.of(StandardOpenOption.WRITE, StandardOpenOption.CREATE, StandardOpenOption.APPEND);
protected final File rootFile; protected final File rootFile;
private final long capacity; private final long capacity;