Class ComputerCraftAPI
Members in this class must be called after ComputerCraft has been initialised, but may be called before it is fully loaded.
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic @Nullable Mount
createResourceMount
(net.minecraft.server.MinecraftServer server, String domain, String subPath) Creates a file system mount to a resource folder, and returns it.static WritableMount
createSaveDirMount
(net.minecraft.server.MinecraftServer server, String subPath, long capacity) Creates a file system mount that maps to a subfolder of the save directory for a given world, and returns it.static int
createUniqueNumberedSaveDir
(net.minecraft.server.MinecraftServer server, String parentSubPath) Creates a numbered directory in a subfolder of the save directory for a given world, and returns that number.static WiredNode
createWiredNodeForElement
(WiredElement element) Construct a new wired node for a given wired element.static int
getBundledRedstoneOutput
(net.minecraft.world.level.Level world, net.minecraft.core.BlockPos pos, net.minecraft.core.Direction side) If there is a Computer or Turtle at a certain position in the world, get it's bundled redstone output.static String
static PacketNetwork
getWirelessNetwork
(net.minecraft.server.MinecraftServer server) Attempt to get the game-wide wireless network.static void
registerAPIFactory
(ILuaAPIFactory factory) Register a customILuaAPI
, which may be added onto all computers without requiring a peripheral.static void
Registers a bundled redstone provider to provide bundled redstone output for blocks.static void
registerGenericSource
(GenericSource source) Registers a method source for generic peripherals.static void
registerMediaProvider
(MediaProvider provider) Registers a media provider to provideIMedia
implementations for Items.static void
registerRefuelHandler
(TurtleRefuelHandler handler) Register a refuel handler for turtles.
-
Field Details
-
MOD_ID
- See Also:
-
-
Constructor Details
-
ComputerCraftAPI
public ComputerCraftAPI()
-
-
Method Details
-
getInstalledVersion
-
createUniqueNumberedSaveDir
public static int createUniqueNumberedSaveDir(net.minecraft.server.MinecraftServer server, String parentSubPath) Creates a numbered directory in a subfolder of the save directory for a given world, and returns that number.Use in conjunction with createSaveDirMount() to create a unique place for your peripherals or media items to store files.
- Parameters:
server
- The server for which the save dir should be created.parentSubPath
- The folder path within the save directory where the new directory should be created. eg: "computercraft/disk"- Returns:
- The numerical value of the name of the new folder, or -1 if the folder could not be created for some reason.
eg: if createUniqueNumberedSaveDir( world, "computer/disk" ) was called returns 42, then "computer/disk/42" is now available for writing.
- See Also:
-
createSaveDirMount
public static WritableMount createSaveDirMount(net.minecraft.server.MinecraftServer server, String subPath, long capacity) Creates a file system mount that maps to a subfolder of the save directory for a given world, and returns it.Use in conjunction with Use
IComputerAccess.mount(String, Mount)
orIComputerAccess.mountWritable(String, WritableMount)
to mount this on a computer's file system.If the same folder may be mounted on multiple computers at once (for instance, if you provide a network file share), the same mount instance should be used for all computers. You should NOT have multiple mount instances for the same folder.
- Parameters:
server
- The server which the save dir can be found.subPath
- The folder path within the save directory that the mount should map to. eg: "disk/42". UsecreateUniqueNumberedSaveDir(MinecraftServer, String)
to create a new numbered folder to use.capacity
- The amount of data that can be stored in the directory before it fills up, in bytes.- Returns:
- The newly created mount.
- See Also:
-
createResourceMount
public static @Nullable Mount createResourceMount(net.minecraft.server.MinecraftServer server, String domain, String subPath) Creates a file system mount to a resource folder, and returns it.Use in conjunction with
IComputerAccess.mount(java.lang.String, dan200.computercraft.api.filesystem.Mount)
orIComputerAccess.mountWritable(java.lang.String, dan200.computercraft.api.filesystem.WritableMount)
to mount a resource folder onto a computer's file system.The files in this mount will be a combination of files in all mod jar, and data packs that contain resources with the same domain and path. For instance, ComputerCraft's resources are stored in "/data/computercraft/lua/rom". We construct a mount for that with
createResourceMount("computercraft", "lua/rom")
.- Parameters:
server
- The current Minecraft server, from which to read resources from.domain
- The domain under which to look for resources. eg: "mymod".subPath
- The subPath under which to look for resources. eg: "lua/myfiles".- Returns:
- The mount, or
null
if it could be created for some reason. - See Also:
-
registerGenericSource
Registers a method source for generic peripherals.- Parameters:
source
- The method source to register.- See Also:
-
registerBundledRedstoneProvider
Registers a bundled redstone provider to provide bundled redstone output for blocks.- Parameters:
provider
- The bundled redstone provider to register.- See Also:
-
getBundledRedstoneOutput
public static int getBundledRedstoneOutput(net.minecraft.world.level.Level world, net.minecraft.core.BlockPos pos, net.minecraft.core.Direction side) If there is a Computer or Turtle at a certain position in the world, get it's bundled redstone output.- Parameters:
world
- The world this block is in.pos
- The position this block is at.side
- The side to extract the bundled redstone output from.- Returns:
- If there is a block capable of emitting bundled redstone at the location, it's signal (0-65535) will be returned. If there is no block capable of emitting bundled redstone at the location, -1 will be returned.
- See Also:
-
registerMediaProvider
Registers a media provider to provideIMedia
implementations for Items.- Parameters:
provider
- The media provider to register.- See Also:
-
getWirelessNetwork
Attempt to get the game-wide wireless network.- Parameters:
server
- The current Minecraft server.- Returns:
- The global wireless network, or
null
if it could not be fetched.
-
registerAPIFactory
Register a customILuaAPI
, which may be added onto all computers without requiring a peripheral.Before implementing this interface, consider alternative methods of providing methods. It is generally preferred to use peripherals to provide functionality to users. If an API is required, you may want to consider using
ILuaAPI.getModuleName()
to expose this library as a module instead of as a global.This may be used with
IComputerSystem.getComponent(ComputerComponent)
to only attach APIs to specific computers. For example, one can add a new API just to turtles with the following code:ComputerCraftAPI.registerAPIFactory(computer -> { // Read the turtle component. var turtle = computer.getComponent(ComputerComponents.TURTLE); // If present then add our API. return turtle == null ? null : new ExampleAPI(turtle); });
- Parameters:
factory
- The factory for your API subclass.- See Also:
-
createWiredNodeForElement
Construct a new wired node for a given wired element.- Parameters:
element
- The element to construct it for- Returns:
- The element's node
- See Also:
-
registerRefuelHandler
Register a refuel handler for turtles. This may be used to provide alternative fuel sources, such as consuming RF batteries.- Parameters:
handler
- The turtle refuel handler.- See Also:
-