Giter Site home page Giter Site logo

fnuecke / oc2 Goto Github PK

View Code? Open in Web Editor NEW
602.0 58.0 70.0 4.83 MB

RISC-V VMs in Minecraft.

Home Page: https://www.curseforge.com/minecraft/mc-mods/oc2

License: Other

Java 98.66% Lua 0.68% Shell 0.12% Python 0.33% GLSL 0.21%
java minecraft mod risc-v vm

oc2's Introduction

OpenComputers II

OpenComputers II is a Minecraft mod adding virtual computers to the game. These computers run a virtual machine emulating a 64-Bit RISC-V architecture capable of booting Linux. On top of this, a high-level Lua API is provided to communicate with various devices in the game world. This enables adding virtual devices using a simple, Java-friendly API, without having to implement actual kernel drivers.

This mod is a successor to OpenComputers. At least in spirit. While many of the implementation details have changed quite dramatically, the core concepts of customizable hardware, persistence and sand-boxing are shared.

Gameplay Documentation

For documentation on how the to get computers up and running, and how to use them, see the documentation. It is available as a manual item in the game.

Development Documentation

While the mod isn't quite yet ready for release due to some remaining technical and usability issues, the API should be mostly stable at this point. For most people the high level device API will be sufficient, and is much more accessible. It centers around the RPCDevice. For a sample block implementation, see the redstone interface. For a sample item implementation, see the sound card. If you wish to dive deeper, and provide emulated hardware that requires a Linux driver, this centers around the VMDevice. For a sample block implementation, see the disk drive. For a sample item implementation, see the network card.

Building

To build this project, credentials for the Github Package Repository must be set up once on your machine (see the documentation for more information). In short, you'll want to add your username and a public access token with read:packages permissions into your ~/.gradle/gradle.properties. The properties must be named gpr.user and gpr.key.

oc2's People

Contributors

amandacameron avatar bs0dd avatar chloedawn avatar fnuecke avatar intquant avatar ipsumcapra avatar kore-signet avatar ktlo avatar lucsoft avatar mckuhei avatar squiddev avatar tome25 avatar zccafa3 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

oc2's Issues

memory leak.

[19:35:17][Server thread][ERROR]: Leaked memory allocation:
  li.cil.oc2.common.vm.context.managed.ManagedMemoryAllocator.claimMemory(ManagedMemoryAllocator.java:34)
  li.cil.oc2.common.bus.device.item.MemoryDevice.allocateDevice(MemoryDevice.java:121)
  li.cil.oc2.common.bus.device.item.MemoryDevice.mount(MemoryDevice.java:51)
  li.cil.oc2.common.vm.VMDeviceBusAdapter.mount(VMDeviceBusAdapter.java:46)
  li.cil.oc2.common.vm.AbstractVirtualMachine.load(AbstractVirtualMachine.java:309)
  li.cil.oc2.common.vm.AbstractVirtualMachine.tick(AbstractVirtualMachine.java:224)
  li.cil.oc2.common.tileentity.ComputerTileEntity$ComputerVirtualMachine.tick(ComputerTileEntity.java:416)
  li.cil.oc2.common.tileentity.ComputerTileEntity.func_73660_a(ComputerTileEntity.java:185)
  net.minecraft.world.World.func_217391_K(World.java:667)
  net.minecraft.world.server.ServerWorld.func_72835_b(ServerWorld.java:456)
  net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:1015)
  net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:333)
  net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:926)
  net.minecraft.server.MinecraftServer.func_240802_v_(MinecraftServer.java:759)
  net.minecraft.server.MinecraftServer.func_240783_a_(MinecraftServer.java:271)
  java.lang.Thread.run(Unknown Source)
[19:35:17][Server thread][ERROR]: Leaked memory allocation:
  li.cil.oc2.common.vm.context.managed.ManagedMemoryAllocator.claimMemory(ManagedMemoryAllocator.java:34)
  li.cil.oc2.common.bus.device.item.AbstractBlockDeviceVMDevice.allocateDevice(AbstractBlockDeviceVMDevice.java:172)
  li.cil.oc2.common.bus.device.item.AbstractBlockDeviceVMDevice.mount(AbstractBlockDeviceVMDevice.java:59)
  li.cil.oc2.common.vm.VMDeviceBusAdapter.mount(VMDeviceBusAdapter.java:46)
  li.cil.oc2.common.vm.AbstractVirtualMachine.load(AbstractVirtualMachine.java:309)
  li.cil.oc2.common.vm.AbstractVirtualMachine.tick(AbstractVirtualMachine.java:224)
  li.cil.oc2.common.tileentity.ComputerTileEntity$ComputerVirtualMachine.tick(ComputerTileEntity.java:416)
  li.cil.oc2.common.tileentity.ComputerTileEntity.func_73660_a(ComputerTileEntity.java:185)
  net.minecraft.world.World.func_217391_K(World.java:667)
  net.minecraft.world.server.ServerWorld.func_72835_b(ServerWorld.java:456)
  net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:1015)
  net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:333)
  net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:926)
  net.minecraft.server.MinecraftServer.func_240802_v_(MinecraftServer.java:759)
  net.minecraft.server.MinecraftServer.func_240783_a_(MinecraftServer.java:271)
  java.lang.Thread.run(Unknown Source)
[19:35:17][Server thread][ERROR]: Leaked memory allocation:
  li.cil.oc2.common.vm.context.managed.ManagedMemoryAllocator.claimMemory(ManagedMemoryAllocator.java:34)
  li.cil.oc2.common.bus.device.item.MemoryDevice.allocateDevice(MemoryDevice.java:121)
  li.cil.oc2.common.bus.device.item.MemoryDevice.mount(MemoryDevice.java:51)
  li.cil.oc2.common.vm.VMDeviceBusAdapter.mount(VMDeviceBusAdapter.java:46)
  li.cil.oc2.common.vm.AbstractVirtualMachine.load(AbstractVirtualMachine.java:309)
  li.cil.oc2.common.vm.AbstractVirtualMachine.tick(AbstractVirtualMachine.java:224)
  li.cil.oc2.common.tileentity.ComputerTileEntity$ComputerVirtualMachine.tick(ComputerTileEntity.java:416)
  li.cil.oc2.common.tileentity.ComputerTileEntity.func_73660_a(ComputerTileEntity.java:185)
  net.minecraft.world.World.func_217391_K(World.java:667)
  net.minecraft.world.server.ServerWorld.func_72835_b(ServerWorld.java:456)
  net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:1015)
  net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:333)
  net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:926)
  net.minecraft.server.MinecraftServer.func_240802_v_(MinecraftServer.java:759)
  net.minecraft.server.MinecraftServer.func_240783_a_(MinecraftServer.java:271)
  java.lang.Thread.run(Unknown Source)
[19:35:17][Server thread][ERROR]: Leaked memory allocation:
  li.cil.oc2.common.vm.context.managed.ManagedMemoryAllocator.claimMemory(ManagedMemoryAllocator.java:34)
  li.cil.oc2.common.bus.device.item.MemoryDevice.allocateDevice(MemoryDevice.java:121)
  li.cil.oc2.common.bus.device.item.MemoryDevice.mount(MemoryDevice.java:51)
  li.cil.oc2.common.vm.VMDeviceBusAdapter.mount(VMDeviceBusAdapter.java:46)
  li.cil.oc2.common.vm.AbstractVirtualMachine.load(AbstractVirtualMachine.java:309)
  li.cil.oc2.common.vm.AbstractVirtualMachine.tick(AbstractVirtualMachine.java:224)
  li.cil.oc2.common.tileentity.ComputerTileEntity$ComputerVirtualMachine.tick(ComputerTileEntity.java:416)
  li.cil.oc2.common.tileentity.ComputerTileEntity.func_73660_a(ComputerTileEntity.java:185)
  net.minecraft.world.World.func_217391_K(World.java:667)
  net.minecraft.world.server.ServerWorld.func_72835_b(ServerWorld.java:456)
  net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:1015)
  net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:333)
  net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:926)
  net.minecraft.server.MinecraftServer.func_240802_v_(MinecraftServer.java:759)
  net.minecraft.server.MinecraftServer.func_240783_a_(MinecraftServer.java:271)
  java.lang.Thread.run(Unknown Source)
[19:35:17][Server thread][ERROR]: Leaked memory allocation:
  li.cil.oc2.common.vm.context.managed.ManagedMemoryAllocator.claimMemory(ManagedMemoryAllocator.java:34)
  li.cil.oc2.common.bus.device.item.MemoryDevice.allocateDevice(MemoryDevice.java:121)
  li.cil.oc2.common.bus.device.item.MemoryDevice.mount(MemoryDevice.java:51)
  li.cil.oc2.common.vm.VMDeviceBusAdapter.mount(VMDeviceBusAdapter.java:46)
  li.cil.oc2.common.vm.AbstractVirtualMachine.load(AbstractVirtualMachine.java:309)
  li.cil.oc2.common.vm.AbstractVirtualMachine.tick(AbstractVirtualMachine.java:224)
  li.cil.oc2.common.tileentity.ComputerTileEntity$ComputerVirtualMachine.tick(ComputerTileEntity.java:416)
  li.cil.oc2.common.tileentity.ComputerTileEntity.func_73660_a(ComputerTileEntity.java:185)
  net.minecraft.world.World.func_217391_K(World.java:667)
  net.minecraft.world.server.ServerWorld.func_72835_b(ServerWorld.java:456)
  net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:1015)
  net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:333)
  net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:926)
  net.minecraft.server.MinecraftServer.func_240802_v_(MinecraftServer.java:759)
  net.minecraft.server.MinecraftServer.func_240783_a_(MinecraftServer.java:271)
  java.lang.Thread.run(Unknown Source)
[19:35:17][Server thread][ERROR]: Leaked memory allocation:
  li.cil.oc2.common.vm.context.managed.ManagedMemoryAllocator.claimMemory(ManagedMemoryAllocator.java:34)
  li.cil.oc2.common.bus.device.item.AbstractBlockDeviceVMDevice.allocateDevice(AbstractBlockDeviceVMDevice.java:172)
  li.cil.oc2.common.bus.device.item.AbstractBlockDeviceVMDevice.mount(AbstractBlockDeviceVMDevice.java:59)
  li.cil.oc2.common.vm.VMDeviceBusAdapter.mount(VMDeviceBusAdapter.java:46)
  li.cil.oc2.common.vm.AbstractVirtualMachine.load(AbstractVirtualMachine.java:309)
  li.cil.oc2.common.vm.AbstractVirtualMachine.tick(AbstractVirtualMachine.java:224)
  li.cil.oc2.common.tileentity.ComputerTileEntity$ComputerVirtualMachine.tick(ComputerTileEntity.java:416)
  li.cil.oc2.common.tileentity.ComputerTileEntity.func_73660_a(ComputerTileEntity.java:185)
  net.minecraft.world.World.func_217391_K(World.java:667)
  net.minecraft.world.server.ServerWorld.func_72835_b(ServerWorld.java:456)
  net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:1015)
  net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:333)
  net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:926)
  net.minecraft.server.MinecraftServer.func_240802_v_(MinecraftServer.java:759)
  net.minecraft.server.MinecraftServer.func_240783_a_(MinecraftServer.java:271)
  java.lang.Thread.run(Unknown Source)
[19:35:17][Server thread][ERROR]: Leaked memory allocation:
  li.cil.oc2.common.vm.context.managed.ManagedMemoryAllocator.claimMemory(ManagedMemoryAllocator.java:34)
  li.cil.oc2.common.bus.device.item.MemoryDevice.allocateDevice(MemoryDevice.java:121)
  li.cil.oc2.common.bus.device.item.MemoryDevice.mount(MemoryDevice.java:51)
  li.cil.oc2.common.vm.VMDeviceBusAdapter.mount(VMDeviceBusAdapter.java:46)
  li.cil.oc2.common.vm.AbstractVirtualMachine.load(AbstractVirtualMachine.java:309)
  li.cil.oc2.common.vm.AbstractVirtualMachine.tick(AbstractVirtualMachine.java:224)
  li.cil.oc2.common.tileentity.ComputerTileEntity$ComputerVirtualMachine.tick(ComputerTileEntity.java:416)
  li.cil.oc2.common.tileentity.ComputerTileEntity.func_73660_a(ComputerTileEntity.java:185)
  net.minecraft.world.World.func_217391_K(World.java:667)
  net.minecraft.world.server.ServerWorld.func_72835_b(ServerWorld.java:456)
  net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:1015)
  net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:333)
  net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:926)
  net.minecraft.server.MinecraftServer.func_240802_v_(MinecraftServer.java:759)
  net.minecraft.server.MinecraftServer.func_240783_a_(MinecraftServer.java:271)
  java.lang.Thread.run(Unknown Source)
[19:35:17][Server thread][ERROR]: Leaked memory allocation:
  li.cil.oc2.common.vm.context.managed.ManagedMemoryAllocator.claimMemory(ManagedMemoryAllocator.java:34)
  li.cil.oc2.common.bus.device.item.MemoryDevice.allocateDevice(MemoryDevice.java:121)
  li.cil.oc2.common.bus.device.item.MemoryDevice.mount(MemoryDevice.java:51)
  li.cil.oc2.common.vm.VMDeviceBusAdapter.mount(VMDeviceBusAdapter.java:46)
  li.cil.oc2.common.vm.AbstractVirtualMachine.load(AbstractVirtualMachine.java:309)
  li.cil.oc2.common.vm.AbstractVirtualMachine.tick(AbstractVirtualMachine.java:224)
  li.cil.oc2.common.tileentity.ComputerTileEntity$ComputerVirtualMachine.tick(ComputerTileEntity.java:416)
  li.cil.oc2.common.tileentity.ComputerTileEntity.func_73660_a(ComputerTileEntity.java:185)
  net.minecraft.world.World.func_217391_K(World.java:667)
  net.minecraft.world.server.ServerWorld.func_72835_b(ServerWorld.java:456)
  net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:1015)
  net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:333)
  net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:926)
  net.minecraft.server.MinecraftServer.func_240802_v_(MinecraftServer.java:759)
  net.minecraft.server.MinecraftServer.func_240783_a_(MinecraftServer.java:271)
  java.lang.Thread.run(Unknown Source)
[19:35:17][Server thread][ERROR]: Leaked memory allocation:
  li.cil.oc2.common.vm.context.managed.ManagedMemoryAllocator.claimMemory(ManagedMemoryAllocator.java:34)
  li.cil.oc2.common.bus.device.item.MemoryDevice.allocateDevice(MemoryDevice.java:121)
  li.cil.oc2.common.bus.device.item.MemoryDevice.mount(MemoryDevice.java:51)
  li.cil.oc2.common.vm.VMDeviceBusAdapter.mount(VMDeviceBusAdapter.java:46)
  li.cil.oc2.common.vm.AbstractVirtualMachine.load(AbstractVirtualMachine.java:309)
  li.cil.oc2.common.vm.AbstractVirtualMachine.tick(AbstractVirtualMachine.java:224)
  li.cil.oc2.common.tileentity.ComputerTileEntity$ComputerVirtualMachine.tick(ComputerTileEntity.java:416)
  li.cil.oc2.common.tileentity.ComputerTileEntity.func_73660_a(ComputerTileEntity.java:185)
  net.minecraft.world.World.func_217391_K(World.java:667)
  net.minecraft.world.server.ServerWorld.func_72835_b(ServerWorld.java:456)
  net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:1015)
  net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:333)
  net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:926)
  net.minecraft.server.MinecraftServer.func_240802_v_(MinecraftServer.java:759)
  net.minecraft.server.MinecraftServer.func_240783_a_(MinecraftServer.java:271)
  java.lang.Thread.run(Unknown Source)
[19:35:17][Server thread][ERROR]: Leaked memory allocation:
  li.cil.oc2.common.vm.context.managed.ManagedMemoryAllocator.claimMemory(ManagedMemoryAllocator.java:34)
  li.cil.oc2.common.bus.device.item.MemoryDevice.allocateDevice(MemoryDevice.java:121)
  li.cil.oc2.common.bus.device.item.MemoryDevice.mount(MemoryDevice.java:51)
  li.cil.oc2.common.vm.VMDeviceBusAdapter.mount(VMDeviceBusAdapter.java:46)
  li.cil.oc2.common.vm.AbstractVirtualMachine.load(AbstractVirtualMachine.java:309)
  li.cil.oc2.common.vm.AbstractVirtualMachine.tick(AbstractVirtualMachine.java:224)
  li.cil.oc2.common.tileentity.ComputerTileEntity$ComputerVirtualMachine.tick(ComputerTileEntity.java:416)
  li.cil.oc2.common.tileentity.ComputerTileEntity.func_73660_a(ComputerTileEntity.java:185)
  net.minecraft.world.World.func_217391_K(World.java:667)
  net.minecraft.world.server.ServerWorld.func_72835_b(ServerWorld.java:456)
  net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:1015)
  net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:333)
  net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:926)
  net.minecraft.server.MinecraftServer.func_240802_v_(MinecraftServer.java:759)
  net.minecraft.server.MinecraftServer.func_240783_a_(MinecraftServer.java:271)
  java.lang.Thread.run(Unknown Source)
[19:35:17][Server thread][ERROR]: Leaked memory allocation:
  li.cil.oc2.common.vm.context.managed.ManagedMemoryAllocator.claimMemory(ManagedMemoryAllocator.java:34)
  li.cil.oc2.common.bus.device.item.MemoryDevice.allocateDevice(MemoryDevice.java:121)
  li.cil.oc2.common.bus.device.item.MemoryDevice.mount(MemoryDevice.java:51)
  li.cil.oc2.common.vm.VMDeviceBusAdapter.mount(VMDeviceBusAdapter.java:46)
  li.cil.oc2.common.vm.AbstractVirtualMachine.load(AbstractVirtualMachine.java:309)
  li.cil.oc2.common.vm.AbstractVirtualMachine.tick(AbstractVirtualMachine.java:224)
  li.cil.oc2.common.tileentity.ComputerTileEntity$ComputerVirtualMachine.tick(ComputerTileEntity.java:416)
  li.cil.oc2.common.tileentity.ComputerTileEntity.func_73660_a(ComputerTileEntity.java:185)
  net.minecraft.world.World.func_217391_K(World.java:667)
  net.minecraft.world.server.ServerWorld.func_72835_b(ServerWorld.java:456)
  net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:1015)
  net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:333)
  net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:926)
  net.minecraft.server.MinecraftServer.func_240802_v_(MinecraftServer.java:759)
  net.minecraft.server.MinecraftServer.func_240783_a_(MinecraftServer.java:271)
  java.lang.Thread.run(Unknown Source)
[19:35:17][Server thread][ERROR]: Leaked memory allocation:
  li.cil.oc2.common.vm.context.managed.ManagedMemoryAllocator.claimMemory(ManagedMemoryAllocator.java:34)
  li.cil.oc2.common.bus.device.item.AbstractBlockDeviceVMDevice.allocateDevice(AbstractBlockDeviceVMDevice.java:172)
  li.cil.oc2.common.bus.device.item.AbstractBlockDeviceVMDevice.mount(AbstractBlockDeviceVMDevice.java:59)
  li.cil.oc2.common.vm.VMDeviceBusAdapter.mount(VMDeviceBusAdapter.java:46)
  li.cil.oc2.common.vm.AbstractVirtualMachine.load(AbstractVirtualMachine.java:309)
  li.cil.oc2.common.vm.AbstractVirtualMachine.tick(AbstractVirtualMachine.java:224)
  li.cil.oc2.common.tileentity.ComputerTileEntity$ComputerVirtualMachine.tick(ComputerTileEntity.java:416)
  li.cil.oc2.common.tileentity.ComputerTileEntity.func_73660_a(ComputerTileEntity.java:185)
  net.minecraft.world.World.func_217391_K(World.java:667)
  net.minecraft.world.server.ServerWorld.func_72835_b(ServerWorld.java:456)
  net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:1015)
  net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:333)
  net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:926)
  net.minecraft.server.MinecraftServer.func_240802_v_(MinecraftServer.java:759)
  net.minecraft.server.MinecraftServer.func_240783_a_(MinecraftServer.java:271)
  java.lang.Thread.run(Unknown Source)
[19:35:17][Server thread][ERROR]: Leaked memory allocation:
  li.cil.oc2.common.vm.context.managed.ManagedMemoryAllocator.claimMemory(ManagedMemoryAllocator.java:34)
  li.cil.oc2.common.bus.device.item.MemoryDevice.allocateDevice(MemoryDevice.java:121)
  li.cil.oc2.common.bus.device.item.MemoryDevice.mount(MemoryDevice.java:51)
  li.cil.oc2.common.vm.VMDeviceBusAdapter.mount(VMDeviceBusAdapter.java:46)
  li.cil.oc2.common.vm.AbstractVirtualMachine.load(AbstractVirtualMachine.java:309)
  li.cil.oc2.common.vm.AbstractVirtualMachine.tick(AbstractVirtualMachine.java:224)
  li.cil.oc2.common.tileentity.ComputerTileEntity$ComputerVirtualMachine.tick(ComputerTileEntity.java:416)
  li.cil.oc2.common.tileentity.ComputerTileEntity.func_73660_a(ComputerTileEntity.java:185)
  net.minecraft.world.World.func_217391_K(World.java:667)
  net.minecraft.world.server.ServerWorld.func_72835_b(ServerWorld.java:456)
  net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:1015)
  net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:333)
  net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:926)
  net.minecraft.server.MinecraftServer.func_240802_v_(MinecraftServer.java:759)
  net.minecraft.server.MinecraftServer.func_240783_a_(MinecraftServer.java:271)
  java.lang.Thread.run(Unknown Source)
[19:35:17][Server thread][ERROR]: Leaked memory allocation:
  li.cil.oc2.common.vm.context.managed.ManagedMemoryAllocator.claimMemory(ManagedMemoryAllocator.java:34)
  li.cil.oc2.common.bus.device.item.MemoryDevice.allocateDevice(MemoryDevice.java:121)
  li.cil.oc2.common.bus.device.item.MemoryDevice.mount(MemoryDevice.java:51)
  li.cil.oc2.common.vm.VMDeviceBusAdapter.mount(VMDeviceBusAdapter.java:46)
  li.cil.oc2.common.vm.AbstractVirtualMachine.load(AbstractVirtualMachine.java:309)
  li.cil.oc2.common.vm.AbstractVirtualMachine.tick(AbstractVirtualMachine.java:224)
  li.cil.oc2.common.tileentity.ComputerTileEntity$ComputerVirtualMachine.tick(ComputerTileEntity.java:416)
  li.cil.oc2.common.tileentity.ComputerTileEntity.func_73660_a(ComputerTileEntity.java:185)
  net.minecraft.world.World.func_217391_K(World.java:667)
  net.minecraft.world.server.ServerWorld.func_72835_b(ServerWorld.java:456)
  net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:1015)
  net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:333)
  net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:926)
  net.minecraft.server.MinecraftServer.func_240802_v_(MinecraftServer.java:759)
  net.minecraft.server.MinecraftServer.func_240783_a_(MinecraftServer.java:271)
  java.lang.Thread.run(Unknown Source)
[19:35:17][Server thread][ERROR]: Leaked memory allocation:
  li.cil.oc2.common.vm.context.managed.ManagedMemoryAllocator.claimMemory(ManagedMemoryAllocator.java:34)
  li.cil.oc2.common.bus.device.item.MemoryDevice.allocateDevice(MemoryDevice.java:121)
  li.cil.oc2.common.bus.device.item.MemoryDevice.mount(MemoryDevice.java:51)
  li.cil.oc2.common.vm.VMDeviceBusAdapter.mount(VMDeviceBusAdapter.java:46)
  li.cil.oc2.common.vm.AbstractVirtualMachine.load(AbstractVirtualMachine.java:309)
  li.cil.oc2.common.vm.AbstractVirtualMachine.tick(AbstractVirtualMachine.java:224)
  li.cil.oc2.common.tileentity.ComputerTileEntity$ComputerVirtualMachine.tick(ComputerTileEntity.java:416)
  li.cil.oc2.common.tileentity.ComputerTileEntity.func_73660_a(ComputerTileEntity.java:185)
  net.minecraft.world.World.func_217391_K(World.java:667)
  net.minecraft.world.server.ServerWorld.func_72835_b(ServerWorld.java:456)
  net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:1015)
  net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:333)
  net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:926)
  net.minecraft.server.MinecraftServer.func_240802_v_(MinecraftServer.java:759)
  net.minecraft.server.MinecraftServer.func_240783_a_(MinecraftServer.java:271)
  java.lang.Thread.run(Unknown Source)

Communicate which devices need a reboot

VM devices require a reboot for the computer to be able to see them (because the device tree needs to be updated).
RPC devices can be hot-swapped.

Adding a note to the item tooltip of VM devices should be a reasonable way of communicating which devices need a reboot and which ones don't. Possibly via a tag + tooltip event.

Packet routing should be possible

As soon as I found out that in this mod it is possible to build a TCP/IP network in the Minecraft world, I immediately wanted to do a simple routing of packets between two subnets. I tried to insert two network interface cards into a future router computer. Two network interfaces appeared in the computer, but unfortunately only one of them could communicate with the network connectors. After examining the mod's code, I found that there is no any way to make two network interface cards work together and use different connectors.

I am assuming there is no other reason that does not allow packet routing. For verification, I added the "oc2: real_network_interface_card" item to the mod, which allows you to connect to a real network via a TAP interface. I tried to route packets from the subnet in Minecraft to my real subnet. It worked. This raises the question: would there be any way to make two network cards work together? It looks like this should definitely be present in the mod.

Bus interfaces can be attached to the front faces of computers

Hey, thanks for your work on this amazing mod.

Just wanted to mention that unlike network connectors, it's possible to attach bus interfaces to the front faces of computers by shift-rightclicking.
I'm not sure whether this is the expected behavior or not:

abandoned?

has this been abandoned. would hope not, one of the best mods.

Screen doesn't reset on reboot

After a reboot the screen doesn't reset completly

this can be annoying when the background color wasn't reset correctly
image

steps to reproduce:

  • cat /bin/false
  • reboot the system

Bus Interface interaction

Is there any way already implemented? Can't see corresponding lua libraries in /usr, "component" for example.
I guess this will be reimplemented from scratch? Will it support older API used in mods and scripts or will we need to reimplement them?
Sorry for impatience. Your idea to implement RISC-V emulator is really cool!

Error messages for common boot problems

E.g. display specific error messages when:

  • no flash memory installed
  • flash memory knows certain requirements must be met but are not
    • e.g. make OpenSBI/Linux Flash Memory check if sufficient memory has been installed and if Linux rootfs disk is present. Well, any disk at all, since people might copy it to a common one.
  • ...?

Disk drives/removable media

Investigate if the VirtIO block device driver can handle dynamically changing device sizes.
If so this could serve as a backend for removable media.

If not, either someone will have to add an emulated floppy controller or something, or this probably won't be in the (core) mod.

Energy

Make computers use energy.

Give devices the ability to declare how much power they draw. Maybe do this in the provider, to make it clear this must be a constant value. VM then sums up the costs and consumes that per tick.

When energy runs out, VM will power off directly.

Datapack filesystems cannot contain capital letters

A Datapack containing a text file, in correct format, is not mounted with the rest of the datapack data

exerpt from log:

[15:04:38] [Worker-Main-23/INFO] [li.ci.oc.co.bu.de.da.FileSystems/]: Searching for datapack filesystems...
[15:04:38] [Worker-Main-23/INFO] [li.ci.oc.co.bu.de.da.FileSystems/]: Found [oc2:file_systems/scripts.fs.json]
[15:04:38] [Worker-Main-23/INFO] [li.ci.oc.co.bu.de.da.FileSystems/]:   Adding layer with [3] file(s).

Datapack structure:

โ””โ”€data โ””โ”€oc2 โ””โ”€file_systems โ””โ”€emmi โ””โ”€Scripts

NPE while connecting to Multiplayer Server

When trying to play with oc2 on a test server i got the following NPE:

[22:00:12] [Server thread/INFO] [minecraft/ServerPlayNetHandler]: gruetzkopf lost connection: Internal Exception: io.netty.handler.codec.EncoderException: java.lang.NullPointerException

This happens with both dedicated Server and LAN Game on Forge 36.1.0. The Error happens on the server, but no stack trace is printed. The Error does not happen when i remove the OpenComputers-II-*-Forge* file on both server and client (only removing it on the server leads to forge complaining about mod incompatibilities)

Bus Interface + Sneak + Click on some blocks = Crash

When I sneak with Bus Interface in hand and click to some blocks like the Door, Button, placed Bus Interface and etc. Minecraft is crashes with this stacktrace:

java.lang.NullPointerException: Unexpected error
	at li.cil.oc2.common.item.BusInterfaceItem.func_195945_b(BusInterfaceItem.java:90) ~[?:0.0.1] {re:classloading}
	at net.minecraft.item.BlockItem.func_195942_a(BlockItem.java:51) ~[?:?] {re:classloading}
	at li.cil.oc2.common.item.BusInterfaceItem.func_195942_a(BusInterfaceItem.java:58) ~[?:0.0.1] {re:classloading}
	at net.minecraft.item.BlockItem.func_195939_a(BlockItem.java:39) ~[?:?] {re:classloading}
	at li.cil.oc2.common.item.BusInterfaceItem.func_195939_a(BusInterfaceItem.java:52) ~[?:0.0.1] {re:classloading}
	at net.minecraft.item.ItemStack.lambda$useOn$5(ItemStack.java:188) ~[?:?] {re:classloading,xf:fml:forge:filled_map.4,xf:fml:forge:itemstack}
	at net.minecraft.item.ItemStack$$Lambda$6660/781975304.apply(Unknown Source) ~[?:?] {}
	at net.minecraft.item.ItemStack.onItemUse(ItemStack.java:203) ~[?:?] {re:classloading,xf:fml:forge:filled_map.4,xf:fml:forge:itemstack}
	at net.minecraft.item.ItemStack.func_196084_a(ItemStack.java:188) ~[?:?] {re:classloading,xf:fml:forge:filled_map.4,xf:fml:forge:itemstack}
	at net.minecraft.client.multiplayer.PlayerController.func_217292_a(PlayerController.java:301) ~[?:?] {re:classloading,pl:runtimedistcleaner:A}
	at net.optifine.override.PlayerControllerOF.func_217292_a(PlayerControllerOF.java:97) ~[?:?] {re:classloading}
	at net.minecraft.client.Minecraft.func_147121_ag(Minecraft.java:1366) ~[?:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
	at net.minecraft.client.Minecraft.func_184117_aA(Minecraft.java:1645) ~[?:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
	at net.minecraft.client.Minecraft.func_71407_l(Minecraft.java:1460) ~[?:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
	at net.minecraft.client.Minecraft.func_195542_b(Minecraft.java:953) [?:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
	at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:607) [?:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
	at net.minecraft.client.main.Main.main(Main.java:184) [?:?] {re:classloading,pl:runtimedistcleaner:A}
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_51] {}
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_51] {}
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_51] {}
	at java.lang.reflect.Method.invoke(Method.java:497) ~[?:1.8.0_51] {}
	at net.minecraftforge.fml.loading.FMLClientLaunchProvider.lambda$launchService$0(FMLClientLaunchProvider.java:51) [forge-1.16.5-36.2.2.jar:36.2] {}
	at net.minecraftforge.fml.loading.FMLClientLaunchProvider$$Lambda$446/698784309.call(Unknown Source) [forge-1.16.5-36.2.2.jar:36.2] {}
	at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:37) [modlauncher-8.0.9.jar:?] {}
	at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:54) [modlauncher-8.0.9.jar:?] {}
	at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:72) [modlauncher-8.0.9.jar:?] {}
	at cpw.mods.modlauncher.Launcher.run(Launcher.java:82) [modlauncher-8.0.9.jar:?] {}
	at cpw.mods.modlauncher.Launcher.main(Launcher.java:66) [modlauncher-8.0.9.jar:?] {}

As i think, Bus Interface fails placing on these blocks and throws an error.

[BUG] Sedna: Unable to add user to groups after creating user

Steps to replicate:
Log in as root
adduser testuser
adduser testuser -G wheel

Expected result: user is added to group wheel
Actual result: adduser: user 'testuser' is in use

Attempted fixes: kill any process owned by testuser; listing all running processes ps as root revealed none

Edit: further details that may/may not be relevant:

  • Build compiled on OpenJDK 8 on Arch Linux, 1.16.5 branch, latest commit as of typing this
  • Bug happened in survival; not tested in creative
  • Computer contained 4x8MB RAM, 1x8MB HDD with Linux, 1x4MB HDD mounted at /home, Linux flash mem, 1x Redstone card, 1 bus connected to a floppy reader with a disk inserted
  • Playing a modpack, Valhesia III with OpenComputers & Sedna .jars added to mods folder

Terminal troubles

I built several programs on C and ncurses and discovered a couple of unpleasant problems.

  1. Environment variable TERMINFO is empty.
    Missing terminfo
    For this reason, the program with ncurses cannot find a folder with terminfo files and gives an error.
    Terminfo error
    Although terminfo is present in the system in the folder /usr/share/terminfo.
    Therefore, I think you should configure the system to assign the path to the variable.

  2. Terminal type is incorrect.
    In the TERM environment variable, the VT100 terminal is set. This also causes problems for programs on ncurses.
    If you run the program, it will be B/W and the arrows buttons, Home, Insert and others will not work.
    vt100
    Alas, none of the terminal files in terminfo are fully compatible with the terminal in OC2. I did not work with terminfo before, but I tried to write a file for this terminal. I do not know that all attributes are correct, but I tested it with a pair of programs and games on ncurses and did not find problems with I/O.
    oc2-term
    I think the file should be included in the system and change the type of terminal in TERM.

  3. The terminal does not support the pseudographic, withdrawing the letter instead of special characters, which looks not very beautiful. At first I thought that the problem is in Sedna, but in the other terminals everything is displayed adequately.
    pseudographic

How to get size of the terminal?

There is no possible ways to get count of lines or columns in the terminal of the computer. tput doesn't work, stty size doesn't work, variables $LINES and $COLUMNS also doesn't work. I tried to get the size in c by using ioctl, but it returns zero. I Can't make any programs for this mod because terminal size is important information for me.

s1

s2

s3

Player can't connect to Server

li.cil.ceres.api.SerializationException: Failed generating serializer for type [class li.cil.oc2.common.vm.Terminal]
	at li.cil.ceres.internal.CompiledSerializer.generateSerializer(CompiledSerializer.java:127) ~[oc2-sedna:0.0.1]
	at li.cil.ceres.internal.SerializerFactory.generateSerializer(SerializerFactory.java:11) ~[oc2-sedna:0.0.1]
	at li.cil.ceres.Ceres.getSerializer(Ceres.java:111) ~[oc2-sedna:0.0.1]
	at li.cil.ceres.Ceres.getSerializer(Ceres.java:79) ~[oc2-sedna:0.0.1]
	at li.cil.oc2.common.serialization.NBTSerialization.serialize(NBTSerialization.java:20) ~[oc2:0.0.1]
	at li.cil.oc2.common.serialization.NBTSerialization.serialize(NBTSerialization.java:25) ~[oc2:0.0.1]
	at li.cil.oc2.common.serialization.NBTSerialization.serialize(NBTSerialization.java:36) ~[oc2:0.0.1]
	at li.cil.oc2.common.tileentity.ComputerTileEntity.func_189517_E_(ComputerTileEntity.java:402) ~[oc2:0.0.1]
	at net.minecraft.network.play.server.SChunkDataPacket.<init>(SourceFile:71) ~[?:?]
	at net.minecraft.world.server.ChunkManager.func_219180_a(ChunkManager.java:1037) ~[?:?]
	at net.minecraft.world.server.ChunkManager.func_219199_a(ChunkManager.java:746) ~[?:?]
	at net.minecraft.world.server.ChunkManager.func_219234_a(ChunkManager.java:845) ~[?:?]
	at net.minecraft.world.server.ChunkManager.func_219210_a(ChunkManager.java:961) ~[?:?]
	at net.minecraft.world.server.ServerChunkProvider.func_217230_c(ServerChunkProvider.java:445) ~[?:?]
	at net.minecraft.world.server.ServerWorld.func_217465_m(ServerWorld.java:933) ~[?:?]
	at net.minecraft.world.server.ServerWorld.func_217448_f(ServerWorld.java:803) ~[?:?]
	at net.minecraft.world.server.ServerWorld.func_217435_c(ServerWorld.java:780) ~[?:?]
	at net.minecraft.server.management.PlayerList.func_72355_a(PlayerList.java:184) ~[?:?]
	at net.minecraft.network.login.ServerLoginNetHandler.func_147326_c(ServerLoginNetHandler.java:118) ~[?:?]
	at net.minecraft.network.login.ServerLoginNetHandler.func_73660_a(ServerLoginNetHandler.java:65) ~[?:?]
	at net.minecraft.network.NetworkManager.func_74428_b(NetworkManager.java:222) ~[?:?]
	at net.minecraft.network.NetworkSystem.func_151269_c(NetworkSystem.java:134) ~[?:?]
	at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:864) ~[?:?]
	at net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:291) ~[?:?]
	at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:786) ~[?:?]
	at net.minecraft.server.MinecraftServer.func_240802_v_(MinecraftServer.java:641) ~[?:?]
	at net.minecraft.server.MinecraftServer.lambda$startServer$0(MinecraftServer.java:232) ~[?:?]
	at java.lang.Thread.run(Thread.java:832) [?:?]
Caused by: java.lang.IllegalArgumentException: Host class li/cil/oc2/common/vm/Terminal and anonymous class li/cil/oc2/common/vm/Terminal$li/cil/ceres/api/Serializer are in different packages
	at jdk.internal.misc.Unsafe.defineAnonymousClass0(Native Method) ~[?:?]
	at jdk.internal.misc.Unsafe.defineAnonymousClass(Unsafe.java:1341) ~[?:?]
	at sun.misc.Unsafe.defineAnonymousClass(Unsafe.java:829) ~[?:?]
	at li.cil.ceres.internal.CompiledSerializer.generateSerializer(CompiledSerializer.java:124) ~[oc2-sedna:0.0.1]
	... 27 more

Running OpenJDK 14
Build from b18510b

Nano does not work

Heyho!

It sounds kinda dumb but when I use nano it won't let me save my work. Inside the file writeout (^O) it won't let me hit enter to save. Do I overlook something here?

Thanks in advance for any help.

Bigger Memory Sticks / Bigger Flash

When Playing around with the Mod the maximum memory of 4x8MB gets filled quickly. How about adding a recipe which adds a way to increase the memory stick capacity until maxMemorySize gets hit.

I already played a bit with the Code tho I dont know how to add a Recipe that just edits the NBT Data. The memory or harddrive size would get doubled by this recipe:

            ShapedRecipeBuilder
                    .shaped(Items.MEMORY_SMALL.get(), 1)
                    .pattern(" T ")
                    .pattern("ISI")
                    .pattern(" B ")
                    .define('T', Items.TRANSISTOR.get())
                    .define('I', Items.MEMORY_SMALL.get())
                    .define('S', Tags.Items.SLIMEBALLS)
                    .define('B', Items.CIRCUIT_BOARD.get())
                    .unlockedBy("has_computer", inventoryChange(Items.COMPUTER.get()))
                    .unlockedBy("has_robot", inventoryChange(Items.ROBOT.get()))
                    .save(consumer);

What do you think about this?

Boot priority

Linux hard drive has very little space (about 100 kb), so I needed to attach an additional hard drive. But when I try to boot, I get Kernel panic because the system trying to boot from a non-system disk.
Kernel panic

Later, I somehow managed to boot from the main drive and format the second one. But on the next boot I was expecting Kernel panic again. The computer tries to boot from a non-system disk again, it manages to mount it, but since there are no Linux files there, an error occurs.
Kernel panic 2

It turns out that BIOS registers a non-system disk as vda, so it tries to boot Linux from it. I installed a smaller disk and as expected the system detects it as vda.
Wrong priority

Cannot search using less

Running less then attempting to search for text in the output using / does not work. The search term can be entered but the enter key doesn't work, meaning the input can never actually be searched. It also means that you cannot exit less without rebooting.

Bad 'tar' in busybox

I have a problem with 'tar' integrated in busybox. When i try to unpack tar.xx archive, tar returns tar: invalid tar magic.

Pic

I built tar from sources on gnu.org and its works correctly, so there is something wrong with the busybox version.

How to login to system?

Hi all, I can't get into the system. I'm being asked for a localhost login, but I don't know what it is. Please help me.

Wget command problem.

I will try download file from github with wget command:
wget [adress]
But it give me an error.
image
What can i use an alternative for this or how can i fix this?

ItemStack NBT tag filtering

ItemStack converter for RPC calls needs some filtering to avoid exposing tags that should be invisible to players.

Not sure which way to default.
Allow by default will be more convenient for most players.
Block by default will be playing it safe.

Also will need an API to allow adding entries to the allow/block lists.

Network Card 2 or "somewhat, but not really NAT"

TL;DR: I believe that in this mod there should be a extendable Internet card that implements a native network interface in a virtual machine and I can implement it, if possible.

Backstory

While playing with this mod, I quickly began to miss an access to the real Internet that OpenComputers had. I thought it should be possible to send an Ethernet frame to the real system via the TAP interface in order to gain access to the real Internet effortlessly. I did it and got what I wanted. Unfortunately, this is not the best solution for OC2. However, we can make an Internet card that implements "somewhat, but not really NAT".

What do I suggest?

I propose to create a Java interface for each layer of the TCP/IP stack, starting with the link local layer and ending with the transport layer: LinkLocalLayerInterface, NetworkLayerInterface and TransportLayerInterface. Each interface will have the default implementation: DefaultLinkLocalLayer, DefaultNetworkLayer and DefaultTransportLayer. Objects of the DefaultLinkLocalLayer and DefaultNetworkLayer classes will be a composition of the implementation objects of the upper layers (new DefaultLinkLocalLayer (new DefaultNetworkLayer (new DefaultTransportLayer ()))).

Each interface will unpack and pack each next layer of the TCP/IP stack. For example, the transport layer interface will work with TCP streams, UDP messages and some ICMP messages (Echo Request / Respond).

In addition to interfaces, there will be a BasicInternetCardItemDevice class similar to the NetworkInterfaceCardItemDevice class, which will use the implementation of the LinkLocalLayerInterface interface to operate.

The DefaultTransportLayer implementation of the TransportLayerInterface will use Java sockets, thereby implicitly performing NAT.

Why not an addon for OC2?

I think it makes sense to make this part of the main mod for a number of reasons.

  1. Interfaces LinkLocalLayerInterface, NetworkLayerInterface and TransportLayerInterface can be used to create their own Internet cards by authors of addons for OC2. LinkLocalLayerInterface can be used for TAP interfaces. NetworkLayerInterface is suitable for TUN interface. TransportLayerInterface can be used to connect to a SOCKS server in purpose to secure the internal network where Minecraft server is located.

  2. Access to the Internet can be very convenient for developing programs. For example, I have compiled an SFTP-Server for a virtual computer and now I can write Lua scripts from VSCode. It would be nice to have a similar set of tools so that it is not that difficult to play.

  3. Someday Alpine Linux will be ported to RISC-V. Alpine Linux uses the same programs as Buildroot, but it also comes with a handy apk package manager. This may become the standard way to install additional software in the future. The apk needs the Internet to work, of course.

What remains unclear?

Several questions require answers.

  1. I want to try to do this, but will you accept such contribution?

  2. If you accept it, is it worth changing something in the original idea?

  3. I think that among the items of the mod there will be "oc2:internet_card" using the default interfaces implementations. But won't this be a security hole in the game server? Most likely, there should be an option in the configuration, where "oc2: internet_card" will initially be disabled.

Make VFSes work in standalone

Extra virtual file systems defined in resources/data/oc2/file_systems currently don't work in standalone, i.e. when they're in a JAR.
Apparently enumerating resources is not possible in that case. Will need a different solution.

Recipes

Things need recipes. Wanna keep it simple, let's say max depth of 3. One or two intermediary crafting materials, and that only to avoid conflicts.

Add bigger hard drives

The existing 8MB hard drives don't provide enough space to build a development environment or to try to install another programming language like Python into the vm. it's thus quite difficult to take advantage of the fact that the computer is a full linux system.

Including utility scripts

It may be worth including a small multitude of lightweight utilities, akin to the ones seen in distros like DietPi. The Linux image in its current state is, while in flux, limited in usability. Writing in some scripts to make it easier for players to perform otherwise complex tasks would be a treat, as I don't think most players would be at all familiar with using a GNU/Linux system.

It may also be good to look into the possibility of end-users packaging up their own images for running on OC2's implementation of Sedna. (I know this is probably way out of the scope of this issue, but it'd solve the lack of any real usage at-present)

Robot crashing

I placed down a robot with 1xLinux hard disk + 3xhighest tier memory, then I powered the charger below via Integrated Tunnel. Then I boot the bot, and the game crashed.

The crash report is here. I can also upload the game save if you need.

A TileEntity type li.cil.oc2.common.tileentity.ComputerTileEntity has thrown an exception trying to write state. It will not persist, Report this to the mod author.

[17:33:45] [Server thread/ERROR] [net.minecraft.world.chunk.Chunk/]: A TileEntity type li.cil.oc2.common.tileentity.ComputerTileEntity has thrown an exception trying to write state. It will not persist, Report this to the mod author
li.cil.ceres.api.SerializationException: Failed generating serializer for type [class li.cil.oc2.common.vm.AbstractVirtualMachine$SerializedState]
	at li.cil.ceres.internal.CompiledSerializer.generateSerializer(CompiledSerializer.java:127) ~[oc2-sedna:0.0.1]
	at li.cil.ceres.internal.SerializerFactory.generateSerializer(SerializerFactory.java:11) ~[oc2-sedna:0.0.1]
	at li.cil.ceres.Ceres.getSerializer(Ceres.java:111) ~[oc2-sedna:0.0.1]
	at li.cil.ceres.Ceres.getSerializer(Ceres.java:79) ~[oc2-sedna:0.0.1]
	at li.cil.oc2.common.serialization.NBTSerialization.serialize(NBTSerialization.java:20) ~[oc2:0.0.1]
	at li.cil.oc2.common.serialization.NBTSerialization.serialize(NBTSerialization.java:25) ~[oc2:0.0.1]
	at li.cil.oc2.common.serialization.NBTSerialization.serialize(NBTSerialization.java:36) ~[oc2:0.0.1]
	at li.cil.oc2.common.vm.AbstractVirtualMachine.serialize(AbstractVirtualMachine.java:238) ~[oc2:0.0.1]
	at li.cil.oc2.common.tileentity.ComputerTileEntity.func_189515_b(ComputerTileEntity.java:263) ~[oc2:0.0.1]
	at net.minecraft.world.chunk.Chunk.func_223134_j(Chunk.java:461) ~[?:?]
	at net.minecraft.world.chunk.storage.ChunkSerializer.func_222645_a(ChunkSerializer.java:290) ~[?:?]
	at net.minecraft.world.server.ChunkManager.func_219229_a(ChunkManager.java:710) ~[?:?]
	at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:176) ~[?:?]
	at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:177) ~[?:?]
	at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195) ~[?:?]
	at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1655) ~[?:?]
	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484) ~[?:?]
	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474) ~[?:?]
	at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150) ~[?:?]
	at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173) ~[?:?]
	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:?]
	at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:497) ~[?:?]
	at net.minecraft.world.server.ChunkManager.func_219177_a(ChunkManager.java:363) ~[?:?]
	at net.minecraft.world.server.ServerChunkProvider.func_217210_a(ServerChunkProvider.java:335) ~[?:?]
	at net.minecraft.world.server.ServerWorld.func_217445_a(ServerWorld.java:814) ~[?:?]
	at net.minecraft.server.MinecraftServer.func_213211_a(MinecraftServer.java:594) ~[?:?]
	at net.minecraft.server.MinecraftServer.func_71260_j(MinecraftServer.java:651) ~[?:?]
	at net.minecraft.server.dedicated.DedicatedServer.func_71260_j(DedicatedServer.java:592) ~[?:?]
	at net.minecraft.server.MinecraftServer.func_240802_v_(MinecraftServer.java:802) ~[?:?]
	at net.minecraft.server.MinecraftServer.func_240783_a_(MinecraftServer.java:271) ~[?:?]
	at java.lang.Thread.run(Thread.java:829) [?:?]
Caused by: java.lang.IllegalArgumentException: Host class li/cil/oc2/common/vm/AbstractVirtualMachine$SerializedState and anonymous class li/cil/oc2/common/vm/AbstractVirtualMachine$SerializedState$li/cil/ceres/api/Serializer are in different packages
	at jdk.internal.misc.Unsafe.defineAnonymousClass0(Native Method) ~[?:?]
	at jdk.internal.misc.Unsafe.defineAnonymousClass(Unsafe.java:1223) ~[?:?]
	at sun.misc.Unsafe.defineAnonymousClass(Unsafe.java:830) ~[?:?]
	at li.cil.ceres.internal.CompiledSerializer.generateSerializer(CompiledSerializer.java:124) ~[oc2-sedna:0.0.1]
	... 30 more
[17:33:45] [Server thread/ERROR] [net.minecraft.world.chunk.Chunk/]: A TileEntity type li.cil.oc2.common.tileentity.ComputerTileEntity has thrown an exception trying to write state. It will not persist, Report this to the mod author
li.cil.ceres.api.SerializationException: Failed generating serializer for type [class li.cil.oc2.common.vm.AbstractVirtualMachine$SerializedState]
	at li.cil.ceres.internal.CompiledSerializer.generateSerializer(CompiledSerializer.java:127) ~[oc2-sedna:0.0.1]
	at li.cil.ceres.internal.SerializerFactory.generateSerializer(SerializerFactory.java:11) ~[oc2-sedna:0.0.1]
	at li.cil.ceres.Ceres.getSerializer(Ceres.java:111) ~[oc2-sedna:0.0.1]
	at li.cil.ceres.Ceres.getSerializer(Ceres.java:79) ~[oc2-sedna:0.0.1]
	at li.cil.oc2.common.serialization.NBTSerialization.serialize(NBTSerialization.java:20) ~[oc2:0.0.1]
	at li.cil.oc2.common.serialization.NBTSerialization.serialize(NBTSerialization.java:25) ~[oc2:0.0.1]
	at li.cil.oc2.common.serialization.NBTSerialization.serialize(NBTSerialization.java:36) ~[oc2:0.0.1]
	at li.cil.oc2.common.vm.AbstractVirtualMachine.serialize(AbstractVirtualMachine.java:238) ~[oc2:0.0.1]
	at li.cil.oc2.common.tileentity.ComputerTileEntity.func_189515_b(ComputerTileEntity.java:263) ~[oc2:0.0.1]
	at net.minecraft.world.chunk.Chunk.func_223134_j(Chunk.java:461) ~[?:?]
	at net.minecraft.world.chunk.storage.ChunkSerializer.func_222645_a(ChunkSerializer.java:290) ~[?:?]
	at net.minecraft.world.server.ChunkManager.func_219229_a(ChunkManager.java:710) ~[?:?]
	at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:176) ~[?:?]
	at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:177) ~[?:?]
	at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195) ~[?:?]
	at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1655) ~[?:?]
	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484) ~[?:?]
	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474) ~[?:?]
	at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150) ~[?:?]
	at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173) ~[?:?]
	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:?]
	at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:497) ~[?:?]
	at net.minecraft.world.server.ChunkManager.func_219177_a(ChunkManager.java:363) ~[?:?]
	at net.minecraft.world.server.ServerChunkProvider.func_217210_a(ServerChunkProvider.java:335) ~[?:?]
	at net.minecraft.world.server.ServerWorld.func_217445_a(ServerWorld.java:814) ~[?:?]
	at net.minecraft.server.MinecraftServer.func_213211_a(MinecraftServer.java:594) ~[?:?]
	at net.minecraft.server.MinecraftServer.func_71260_j(MinecraftServer.java:651) ~[?:?]
	at net.minecraft.server.dedicated.DedicatedServer.func_71260_j(DedicatedServer.java:592) ~[?:?]
	at net.minecraft.server.MinecraftServer.func_240802_v_(MinecraftServer.java:802) ~[?:?]
	at net.minecraft.server.MinecraftServer.func_240783_a_(MinecraftServer.java:271) ~[?:?]
	at java.lang.Thread.run(Thread.java:829) [?:?]
Caused by: java.lang.IllegalArgumentException: Host class li/cil/oc2/common/vm/AbstractVirtualMachine$SerializedState and anonymous class li/cil/oc2/common/vm/AbstractVirtualMachine$SerializedState$li/cil/ceres/api/Serializer are in different packages
	at jdk.internal.misc.Unsafe.defineAnonymousClass0(Native Method) ~[?:?]
	at jdk.internal.misc.Unsafe.defineAnonymousClass(Unsafe.java:1223) ~[?:?]
	at sun.misc.Unsafe.defineAnonymousClass(Unsafe.java:830) ~[?:?]
	at li.cil.ceres.internal.CompiledSerializer.generateSerializer(CompiledSerializer.java:124) ~[oc2-sedna:0.0.1]
	... 30 more
[17:33:45] [Server thread/ERROR] [net.minecraft.world.chunk.Chunk/]: A TileEntity type li.cil.oc2.common.tileentity.ComputerTileEntity has thrown an exception trying to write state. It will not persist, Report this to the mod author
li.cil.ceres.api.SerializationException: Failed generating serializer for type [class li.cil.oc2.common.vm.AbstractVirtualMachine$SerializedState]
	at li.cil.ceres.internal.CompiledSerializer.generateSerializer(CompiledSerializer.java:127) ~[oc2-sedna:0.0.1]
	at li.cil.ceres.internal.SerializerFactory.generateSerializer(SerializerFactory.java:11) ~[oc2-sedna:0.0.1]
	at li.cil.ceres.Ceres.getSerializer(Ceres.java:111) ~[oc2-sedna:0.0.1]
	at li.cil.ceres.Ceres.getSerializer(Ceres.java:79) ~[oc2-sedna:0.0.1]
	at li.cil.oc2.common.serialization.NBTSerialization.serialize(NBTSerialization.java:20) ~[oc2:0.0.1]
	at li.cil.oc2.common.serialization.NBTSerialization.serialize(NBTSerialization.java:25) ~[oc2:0.0.1]
	at li.cil.oc2.common.serialization.NBTSerialization.serialize(NBTSerialization.java:36) ~[oc2:0.0.1]
	at li.cil.oc2.common.vm.AbstractVirtualMachine.serialize(AbstractVirtualMachine.java:238) ~[oc2:0.0.1]
	at li.cil.oc2.common.tileentity.ComputerTileEntity.func_189515_b(ComputerTileEntity.java:263) ~[oc2:0.0.1]
	at net.minecraft.world.chunk.Chunk.func_223134_j(Chunk.java:461) ~[?:?]
	at net.minecraft.world.chunk.storage.ChunkSerializer.func_222645_a(ChunkSerializer.java:290) ~[?:?]
	at net.minecraft.world.server.ChunkManager.func_219229_a(ChunkManager.java:710) ~[?:?]
	at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:176) ~[?:?]
	at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:177) ~[?:?]
	at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195) ~[?:?]
	at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1655) ~[?:?]
	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484) ~[?:?]
	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474) ~[?:?]
	at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150) ~[?:?]
	at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173) ~[?:?]
	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:?]
	at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:497) ~[?:?]
	at net.minecraft.world.server.ChunkManager.func_219177_a(ChunkManager.java:363) ~[?:?]
	at net.minecraft.world.server.ServerChunkProvider.func_217210_a(ServerChunkProvider.java:335) ~[?:?]
	at net.minecraft.world.server.ServerWorld.func_217445_a(ServerWorld.java:814) ~[?:?]
	at net.minecraft.server.MinecraftServer.func_213211_a(MinecraftServer.java:594) ~[?:?]
	at net.minecraft.server.MinecraftServer.func_71260_j(MinecraftServer.java:651) ~[?:?]
	at net.minecraft.server.dedicated.DedicatedServer.func_71260_j(DedicatedServer.java:592) ~[?:?]
	at net.minecraft.server.MinecraftServer.func_240802_v_(MinecraftServer.java:802) ~[?:?]
	at net.minecraft.server.MinecraftServer.func_240783_a_(MinecraftServer.java:271) ~[?:?]
	at java.lang.Thread.run(Thread.java:829) [?:?]
Caused by: java.lang.IllegalArgumentException: Host class li/cil/oc2/common/vm/AbstractVirtualMachine$SerializedState and anonymous class li/cil/oc2/common/vm/AbstractVirtualMachine$SerializedState$li/cil/ceres/api/Serializer are in different packages
	at jdk.internal.misc.Unsafe.defineAnonymousClass0(Native Method) ~[?:?]
	at jdk.internal.misc.Unsafe.defineAnonymousClass(Unsafe.java:1223) ~[?:?]
	at sun.misc.Unsafe.defineAnonymousClass(Unsafe.java:830) ~[?:?]
	at li.cil.ceres.internal.CompiledSerializer.generateSerializer(CompiledSerializer.java:124) ~[oc2-sedna:0.0.1]
	... 30 more
[17:33:45] [Server thread/ERROR] [net.minecraft.world.chunk.Chunk/]: A TileEntity type li.cil.oc2.common.tileentity.ComputerTileEntity has thrown an exception trying to write state. It will not persist, Report this to the mod author
li.cil.ceres.api.SerializationException: Failed generating serializer for type [class li.cil.oc2.common.vm.AbstractVirtualMachine$SerializedState]
	at li.cil.ceres.internal.CompiledSerializer.generateSerializer(CompiledSerializer.java:127) ~[oc2-sedna:0.0.1]
	at li.cil.ceres.internal.SerializerFactory.generateSerializer(SerializerFactory.java:11) ~[oc2-sedna:0.0.1]
	at li.cil.ceres.Ceres.getSerializer(Ceres.java:111) ~[oc2-sedna:0.0.1]
	at li.cil.ceres.Ceres.getSerializer(Ceres.java:79) ~[oc2-sedna:0.0.1]
	at li.cil.oc2.common.serialization.NBTSerialization.serialize(NBTSerialization.java:20) ~[oc2:0.0.1]
	at li.cil.oc2.common.serialization.NBTSerialization.serialize(NBTSerialization.java:25) ~[oc2:0.0.1]
	at li.cil.oc2.common.serialization.NBTSerialization.serialize(NBTSerialization.java:36) ~[oc2:0.0.1]
	at li.cil.oc2.common.vm.AbstractVirtualMachine.serialize(AbstractVirtualMachine.java:238) ~[oc2:0.0.1]
	at li.cil.oc2.common.tileentity.ComputerTileEntity.func_189515_b(ComputerTileEntity.java:263) ~[oc2:0.0.1]
	at net.minecraft.world.chunk.Chunk.func_223134_j(Chunk.java:461) ~[?:?]
	at net.minecraft.world.chunk.storage.ChunkSerializer.func_222645_a(ChunkSerializer.java:290) ~[?:?]
	at net.minecraft.world.server.ChunkManager.func_219229_a(ChunkManager.java:710) ~[?:?]
	at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:176) ~[?:?]
	at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:177) ~[?:?]
	at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195) ~[?:?]
	at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1655) ~[?:?]
	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484) ~[?:?]
	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474) ~[?:?]
	at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150) ~[?:?]
	at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173) ~[?:?]
	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:?]
	at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:497) ~[?:?]
	at net.minecraft.world.server.ChunkManager.func_219177_a(ChunkManager.java:363) ~[?:?]
	at net.minecraft.world.server.ServerChunkProvider.func_217210_a(ServerChunkProvider.java:335) ~[?:?]
	at net.minecraft.world.server.ServerWorld.func_217445_a(ServerWorld.java:814) ~[?:?]
	at net.minecraft.server.MinecraftServer.func_213211_a(MinecraftServer.java:594) ~[?:?]
	at net.minecraft.server.MinecraftServer.func_71260_j(MinecraftServer.java:651) ~[?:?]
	at net.minecraft.server.dedicated.DedicatedServer.func_71260_j(DedicatedServer.java:592) ~[?:?]
	at net.minecraft.server.MinecraftServer.func_240802_v_(MinecraftServer.java:802) ~[?:?]
	at net.minecraft.server.MinecraftServer.func_240783_a_(MinecraftServer.java:271) ~[?:?]
	at java.lang.Thread.run(Thread.java:829) [?:?]
Caused by: java.lang.IllegalArgumentException: Host class li/cil/oc2/common/vm/AbstractVirtualMachine$SerializedState and anonymous class li/cil/oc2/common/vm/AbstractVirtualMachine$SerializedState$li/cil/ceres/api/Serializer are in different packages
	at jdk.internal.misc.Unsafe.defineAnonymousClass0(Native Method) ~[?:?]
	at jdk.internal.misc.Unsafe.defineAnonymousClass(Unsafe.java:1223) ~[?:?]
	at sun.misc.Unsafe.defineAnonymousClass(Unsafe.java:830) ~[?:?]
	at li.cil.ceres.internal.CompiledSerializer.generateSerializer(CompiledSerializer.java:124) ~[oc2-sedna:0.0.1]
	... 30 more

Command "reboot" does not function correctly

image

Reproduction Steps

  1. Create any computer of valid configuration, using the linux set of fw/hdd
  2. Load and log into the computer
  3. Run command reboot

Notes

Oddly enough, poweroff works as-intended. I've not tested this in Sedna by itself, so I'm unsure where the issue lies, sorry.

error importing compressed file from main filesystem (tar.gz)

Hello!
I was trying to import a file from my pc to the oc2 computer that was a zipped file (tar.gz) and at first it said the file was too large so I used 7zip to chop it up into sections to use it, but now I get this error
error
the file I'm trying to upload is :
3data.tar.gz
4data.tar.gz
1data.tar.gz
2data.tar.gz
(Ive renamed them from tar.gz.001 .002 .003 .004 to what they are now so github will accept them)
This is not malware, It is the dpkg linux package manager. I want to try to install it on oc2

Robotics

Add something like the OC1 robots to allow more flexible automation.

Not decided yet on whether they should each have their own VM or would be remote controlled by one.
Pro remote would be less system resource consumption.
Con remote is that it might be more annoying.

Probably built-in.

Converting ItemStacks to NBT then JSON causes some data loss in the case of some modded inventories.

StorageDrawers uses some sliglty-odd behaviour for the ItemStacks returned from it's inventory, namely, they may be larger than 64.

For instance, our storage drawers currently have 286 copper ingots, which SD is reporting back to OC2, then when OC2 turns that into NBT, it's getting wrapped around as a uint8 with a value of 30.

Another case is that we have 191 paper in another drawer, which OC2 is reporting as -65 which I suspect is the uint8 value of 191 being converted to a signed int8 in the NBT, but I'm not sure on the math of that.

One solution may be to manually change the Count field into a long which should work for everything. I believe that the ItemStack API doesn't return an byte for size, which may be the discrepency here?

java.lang.RuntimeException: Cannot find class net/minecraft/client/gui/AbstractGui

[11:10:14][Server thread][WARN]: java.lang.RuntimeException: Cannot find class net/minecraft/client/gui/AbstractGui
[11:10:14][Server thread][WARN]:        at cpw.mods.modlauncher.TransformerClassWriter.computeHierarchyFromFile(TransformerClassWriter.java:161)
[11:10:14][Server thread][WARN]:        at cpw.mods.modlauncher.TransformerClassWriter.computeHierarchy(TransformerClassWriter.java:112)
[11:10:14][Server thread][WARN]:        at cpw.mods.modlauncher.TransformerClassWriter.access$100(TransformerClassWriter.java:34)
[11:10:14][Server thread][WARN]:        at cpw.mods.modlauncher.TransformerClassWriter$SuperCollectingVisitor.visit(TransformerClassWriter.java:177)
[11:10:14][Server thread][WARN]:        at org.objectweb.asm.tree.ClassNode.accept(ClassNode.java:372)
[11:10:14][Server thread][WARN]:        at cpw.mods.modlauncher.TransformerClassWriter.computeHierarchy(TransformerClassWriter.java:99)
[11:10:14][Server thread][WARN]:        at cpw.mods.modlauncher.TransformerClassWriter.getCommonSuperClass(TransformerClassWriter.java:59)
[11:10:14][Server thread][WARN]:        at org.objectweb.asm.SymbolTable.addMergedType(SymbolTable.java:1202)
[11:10:14][Server thread][WARN]:        at org.objectweb.asm.Frame.merge(Frame.java:1299)
[11:10:14][Server thread][WARN]:        at org.objectweb.asm.Frame.merge(Frame.java:1197)
[11:10:14][Server thread][WARN]:        at org.objectweb.asm.MethodWriter.computeAllFrames(MethodWriter.java:1610)
[11:10:14][Server thread][WARN]:        at org.objectweb.asm.MethodWriter.visitMaxs(MethodWriter.java:1546)
[11:10:14][Server thread][WARN]:        at org.objectweb.asm.tree.MethodNode.accept(MethodNode.java:769)
[11:10:14][Server thread][WARN]:        at org.objectweb.asm.tree.MethodNode.accept(MethodNode.java:649)
[11:10:14][Server thread][WARN]:        at org.objectweb.asm.tree.ClassNode.accept(ClassNode.java:452)
[11:10:14][Server thread][WARN]:        at cpw.mods.modlauncher.ClassTransformer.transform(ClassTransformer.java:133)
[11:10:14][Server thread][WARN]:        at cpw.mods.modlauncher.TransformingClassLoader$DelegatedClassLoader.findClass(TransformingClassLoader.java:265)
[11:10:14][Server thread][WARN]:        at cpw.mods.modlauncher.TransformingClassLoader.loadClass(TransformingClassLoader.java:136)
[11:10:14][Server thread][WARN]:        at cpw.mods.modlauncher.TransformingClassLoader.loadClass(TransformingClassLoader.java:98)
[11:10:14][Server thread][WARN]:        at java.lang.ClassLoader.loadClass(Unknown Source)
[11:10:14][Server thread][WARN]:        at li.cil.oc2.common.container.RobotTerminalContainer.<init>(RobotTerminalContainer.java:51)
[11:10:14][Server thread][WARN]:        at li.cil.oc2.common.container.RobotTerminalContainer.<init>(RobotTerminalContainer.java:20)
[11:10:14][Server thread][WARN]:        at li.cil.oc2.common.container.RobotTerminalContainer$1.createMenu(RobotTerminalContainer.java:30)
[11:10:14][Server thread][WARN]:        at net.minecraftforge.fml.network.NetworkHooks.openGui(NetworkHooks.java:226)
[11:10:14][Server thread][WARN]:        at li.cil.oc2.common.container.RobotTerminalContainer.createServer(RobotTerminalContainer.java:22)
[11:10:14][Server thread][WARN]:        at li.cil.oc2.common.entity.RobotEntity.openTerminalScreen(RobotEntity.java:216)
[11:10:14][Server thread][WARN]:        at li.cil.oc2.common.entity.RobotEntity.func_184230_a(RobotEntity.java:309)
[11:10:14][Server thread][WARN]:        at net.minecraft.entity.player.PlayerEntity.func_190775_a(PlayerEntity.java:1029)
[11:10:14][Server thread][WARN]:        at net.minecraft.network.play.ServerPlayNetHandler.func_147340_a(ServerPlayNetHandler.java:1987)
[11:10:14][Server thread][WARN]:        at net.minecraft.network.play.client.CUseEntityPacket.func_148833_a(SourceFile:74)
[11:10:14][Server thread][WARN]:        at net.minecraft.network.play.client.CUseEntityPacket.func_148833_a(SourceFile:13)
[11:10:14][Server thread][WARN]:        at net.minecraft.network.PacketThreadUtil.func_225383_a(PacketThreadUtil.java:22)
[11:10:14][Server thread][WARN]:        at net.minecraft.util.concurrent.TickDelayedTask.run(SourceFile:18)
[11:10:14][Server thread][WARN]:        at net.minecraft.util.concurrent.ThreadTaskExecutor.func_213166_h(ThreadTaskExecutor.java:136)
[11:10:14][Server thread][WARN]:        at net.minecraft.util.concurrent.RecursiveEventLoop.func_213166_h(SourceFile:23)
[11:10:14][Server thread][WARN]:        at net.minecraft.server.MinecraftServer.func_213166_h(MinecraftServer.java:868)
[11:10:14][Server thread][WARN]:        at net.minecraft.server.MinecraftServer.func_213166_h(MinecraftServer.java:178)
[11:10:14][Server thread][WARN]:        at net.minecraft.util.concurrent.ThreadTaskExecutor.func_213168_p(ThreadTaskExecutor.java:109)
[11:10:14][Server thread][WARN]:        at net.minecraft.server.MinecraftServer.func_213205_aW(MinecraftServer.java:851)
[11:10:14][Server thread][WARN]:        at net.minecraft.server.MinecraftServer.func_213168_p(MinecraftServer.java:845)
[11:10:14][Server thread][WARN]:        at net.minecraft.util.concurrent.ThreadTaskExecutor.func_213161_c(ThreadTaskExecutor.java:119)
[11:10:14][Server thread][WARN]:        at net.minecraft.server.MinecraftServer.func_213202_o(MinecraftServer.java:831)
[11:10:14][Server thread][WARN]:        at net.minecraft.server.MinecraftServer.func_240802_v_(MinecraftServer.java:763)
[11:10:14][Server thread][WARN]:        at net.minecraft.server.MinecraftServer.func_240783_a_(MinecraftServer.java:271)
[11:10:14][Server thread][WARN]:        at java.lang.Thread.run(Unknown Source)
[11:10:14][Server thread][WARN]: Caused by: java.lang.ClassNotFoundException: net.minecraft.client.gui.AbstractGui
[11:10:14][Server thread][WARN]:        at java.lang.ClassLoader.findClass(Unknown Source)
[11:10:14][Server thread][WARN]:        at java.lang.ClassLoader.loadClass(Unknown Source)
[11:10:14][Server thread][WARN]:        at cpw.mods.modlauncher.TransformingClassLoader.loadClass(TransformingClassLoader.java:106)
[11:10:14][Server thread][WARN]:        at java.lang.ClassLoader.loadClass(Unknown Source)
[11:10:14][Server thread][WARN]:        at java.lang.Class.forName0(Native Method)
[11:10:14][Server thread][WARN]:        at java.lang.Class.forName(Unknown Source)
[11:10:14][Server thread][WARN]:        at cpw.mods.modlauncher.TransformerClassWriter.computeHierarchyFromFile(TransformerClassWriter.java:157)
[11:10:14][Server thread][WARN]:        ... 44 more
[11:10:14][Server thread][WARN]:        Suppressed: java.lang.ClassNotFoundException
[11:10:14][Server thread][WARN]:                at cpw.mods.modlauncher.TransformingClassLoader$DelegatedClassLoader.findClass(TransformingClassLoader.java:282)
[11:10:14][Server thread][WARN]:                at cpw.mods.modlauncher.TransformingClassLoader.loadClass(TransformingClassLoader.java:136)
[11:10:14][Server thread][WARN]:                at cpw.mods.modlauncher.TransformingClassLoader.loadClass(TransformingClassLoader.java:98)
[11:10:14][Server thread][WARN]:                ... 48 more
[11:10:14][Server thread][WARN]:        Suppressed: java.lang.ClassNotFoundException
[11:10:14][Server thread][WARN]:                at cpw.mods.modlauncher.TransformingClassLoader$DelegatedClassLoader.findClass(TransformingClassLoader.java:282)
[11:10:14][Server thread][WARN]:                at cpw.mods.modlauncher.TransformingClassLoader.buildTransformedClassNodeFor(TransformingClassLoader.java:142)
[11:10:14][Server thread][WARN]:                at cpw.mods.modlauncher.TransformerClassWriter.computeHierarchyFromFile(TransformerClassWriter.java:149)
[11:10:14][Server thread][WARN]:                ... 44 more

Crashes upon picking up and placing computer in survival mode

Hello!
I tried running OC2 and when I picked up a computer with 4 hard drives (1 with linux) and 4 max Memory modules, and placed it down the server crashed
the error log is as follows


Time: 1/30/21 1:00 PM
Description: Exception in server tick loop

java.lang.RuntimeException: Attempted to load class net/minecraft/client/particle/ParticleManager for invalid dist DEDICATED_SERVER
        at net.minecraftforge.fml.loading.RuntimeDistCleaner.processClassWithFlags(RuntimeDistCleaner.java:71) ~[forge.jar:35.1] {}
        at cpw.mods.modlauncher.LaunchPluginHandler.offerClassNodeToPlugins(LaunchPluginHandler.java:85) ~[modlauncher-8.0.9.jar:?] {}
        at cpw.mods.modlauncher.ClassTransformer.transform(ClassTransformer.java:120) ~[modlauncher-8.0.9.jar:?] {}
        at cpw.mods.modlauncher.TransformingClassLoader$DelegatedClassLoader.findClass(TransformingClassLoader.java:265) ~[modlauncher-8.0.9.jar:?] {}
        at cpw.mods.modlauncher.TransformingClassLoader.loadClass(TransformingClassLoader.java:136) ~[modlauncher-8.0.9.jar:?] {re:classloading}
        at cpw.mods.modlauncher.TransformingClassLoader.loadClass(TransformingClassLoader.java:98) ~[modlauncher-8.0.9.jar:?] {re:classloading}
        at java.lang.ClassLoader.loadClass(ClassLoader.java:351) ~[?:1.8.0_275] {}
        at java.lang.Class.getDeclaredMethods0(Native Method) ~[?:1.8.0_275] {}
        at java.lang.Class.privateGetDeclaredMethods(Class.java:2701) ~[?:1.8.0_275] {}
        at java.lang.Class.privateGetPublicMethods(Class.java:2902) ~[?:1.8.0_275] {}
        at java.lang.Class.getMethods(Class.java:1615) ~[?:1.8.0_275] {}
        at li.cil.oc2.api.bus.device.object.Callbacks.lambda$getMethods$1(Callbacks.java:93) ~[oc2:0.0.1] {re:classloading}
        at java.util.HashMap.computeIfAbsent(HashMap.java:1127) ~[?:1.8.0_275] {}
        at li.cil.oc2.api.bus.device.object.Callbacks.getMethods(Callbacks.java:93) ~[oc2:0.0.1] {re:classloading}
        at li.cil.oc2.api.bus.device.object.Callbacks.hasMethods(Callbacks.java:86) ~[oc2:0.0.1] {re:classloading}
        at li.cil.oc2.common.bus.device.provider.block.BlockStateDeviceProvider.getDevice(BlockStateDeviceProvider.java:27) ~[oc2:0.0.1] {re:classloading}
        at li.cil.oc2.common.bus.device.util.Devices.getDevices(Devices.java:59) ~[oc2:0.0.1] {re:classloading}
        at li.cil.oc2.common.bus.device.util.Devices.getDevices(Devices.java:34) ~[oc2:0.0.1] {re:classloading}
        at li.cil.oc2.common.bus.TileEntityDeviceBusElement.handleNeighborChanged(TileEntityDeviceBusElement.java:96) ~[oc2:0.0.1] {re:classloading}
        at li.cil.oc2.common.bus.TileEntityDeviceBusElement.scanNeighborsForDevices(TileEntityDeviceBusElement.java:133) ~[oc2:0.0.1] {re:classloading}
        at li.cil.oc2.common.bus.TileEntityDeviceBusElement.lambda$initialize$1(TileEntityDeviceBusElement.java:114) ~[oc2:0.0.1] {re:classloading}
        at li.cil.oc2.common.util.ServerScheduler$TickScheduler.processQueue(ServerScheduler.java:194) ~[oc2:0.0.1] {re:classloading}
        at li.cil.oc2.common.util.ServerScheduler$EventHandler.handleWorldTick(ServerScheduler.java:179) ~[oc2:0.0.1] {re:classloading,pl:eventbus:A}
        at net.minecraftforge.eventbus.ASMEventHandler_624_EventHandler_handleWorldTick_WorldTickEvent.invoke(.dynamic) ~[?:?] {}
        at net.minecraftforge.eventbus.ASMEventHandler.invoke(ASMEventHandler.java:85) ~[eventbus-4.0.0.jar:?] {}
        at net.minecraftforge.eventbus.EventBus.post(EventBus.java:302) ~[eventbus-4.0.0.jar:?] {}
        at net.minecraftforge.eventbus.EventBus.post(EventBus.java:283) ~[eventbus-4.0.0.jar:?] {}
        at net.minecraftforge.fml.hooks.BasicEventHooks.onPreWorldTick(BasicEventHooks.java:95) ~[forge:?] {re:classloading}
        at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:847) ~[?:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
        at net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:291) ~[?:?] {re:classloading,pl:accesstransformer:B}
        at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:786) ~[?:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
        at net.minecraft.server.MinecraftServer.func_240802_v_(MinecraftServer.java:641) ~[?:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
        at net.minecraft.server.MinecraftServer.lambda$startServer$0(MinecraftServer.java:232) ~[?:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
        at java.lang.Thread.run(Thread.java:748) [?:1.8.0_275] {}

any help would help :P
Side note: would it be possible for me to be a beta tester (to just find all the bugs) for oc2?
I already run a server (that i started 3 days ago) with oc2 on it and wanted to get people into it
although it would be helpful if you could put this on curseforge as my modpack with the mod has been under review for 3 days because (I'm guessing) oc2 is not on curseforge but not a "restricted" mod or similar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.