Transport-Pipes 4.3.1

This plugin adds Transport-Pipes to Minecraft

  1. RoboTricker
    Tested Minecraft Versions:
    • 1.9
    • 1.10
    • 1.11
    • 1.12
    Source Code:
    https://github.com/RoboTricker/Transport-Pipes
    [​IMG]

    Support Discord Server:
    [​IMG]
    Development Builds:
    [​IMG]

    [​IMG]

    The Transport-Pipes plugin adds several different pipes into Minecraft. At the moment there are colored pipes, golden pipes, iron pipes, extraction pipes, void pipes, ice pipes and crafting pipes. Similar to the BuildCraft mod, these pipes can transport any kind of item. In the following wiki you will learn how to craft and use this pipes and what the difference between those pipe types is. Also some basic information about the plugin's commands and config is described.

    [​IMG]

    TransportPipes depends only on ProtocolLib. In order for this plugin to work, make sure a recent version of ProtocolLib is installed on your server. You can download ProtocolLib here:
    https://www.spigotmc.org/resources/protocollib.1997/

    [​IMG]

    As explained above, you have to use different pipe types in different situations. Every pipe type and their purpose is listed below:
    • Extraction Pipe: This pipe is the only one which can extract items from container blocks. Container blocks are blocks which hold inventories: Chests, furnaces, hoppers, shulker boxes and much more. Extraction pipe don't connect to each other but they do connect with every other pipe and with container blocks of course. One extraction pipe only has one extract direction from where it extracts items. This direction is displayed by a different connection texture. You can change the extract direction as well as the extract condition by right-clicking the pipe with a wrench and choosing the desired option. The extract amount option gives you the opportunity to extract multiple items at once. You can filter which items get extracted by using the filter interface (explained at the Golden Pipe). Last but not least, the extract condition determines when to extract items. There are three extract conditions:
      • needs redstone: the pipe only extracts items if it's powered with a redstone signal.
      • always extract: the pipe always extracts items regardless of whether it's powered with redstone or not.
      • never extract: the pipe never extracts items.
    • Colored Pipe: This is the simplest pipe. Its only purpose is to transport items. Nevertheless you can dye this kind of pipe. Different colored pipes behave the same but don't connect to each other. Therefore you can create complex pipe system without issues of wrong connected pipes.
    • Ice Pipe: The Ice Pipe transports items as well as any other pipe. The only difference is the transport speed. Ice Pipes transport items four times faster than other pipes.
    • Iron Pipe: Iron Pipes can also be called "One-Way-Pipe". It's feature is that regardless of the direction an item comes from, it will always move into the desired output direction. You can change this output direction by right-clicking the pipe with a wrench.
    • Void Pipe: Void Pipes simply destroy all items which are moving inside them.
    • Crafting Pipe: The Crafting Pipe gives you the possibility to automate crafting processes. After specifying a crafting recipe, all items going into this Pipe will be cached and the result item is going to be crafted as soon as enough ingredients are cached. By right-clicking this Pipe with a wrench, first you can define the output direction in which the crafted items will go and second you can see the cached items, used to craft the result item. By shift-right-clicking this Pipe with a wrench, you can define the crafting recipe. Just place the ingredients in the given workbench matrix and save it by closing the inventory.
    • Golden Pipe: A Golden Pipe can sort items. Every output direction on the Golden Pipe has a specific color. By right-clicking this pipe with a wrench, a sorting inventory opens. You can put items in there to determine which items should go where. Every row in this inventory is referring to an output direction of the Golden Pipe. The color indicates which row refers to which output direction. By clicking on a color indicator inside this inventory, you can change the filtering mode for this output direction row. The filtering mode determines which values to compare when calculating the desired output direction for an incoming item. In this context, type stands for the material of the item (e.g. the material of any colored wool is still wool). Damage stands for the durability of a tool item and in correlation to "non-tool" items, they determine the "damage" value (e.g. the damage value of wool is the color of the wool and the damage value of wood is the type of wood). Block all mode doesn't check any values, it blocks the hole direction. Therefore items can only move into the Golden Pipe through a blocked direction but never out this direction. The following filtering modes exist:
      • filter by type, damage, itemmeta
      • filter by type, damage
      • filter by type, itemmeta
      • filter by type
      • block all
    In general, all pipes can put items into container blocks if they are connected to such but only extraction pipes can extract items from container blocks. Also as mentioned many times above, for some pipes you need a wrench. The crafting recipe for the wrench is given below. The wrench can be used simply by right-clicking the desired pipe.

    [​IMG]

    All crafting recipes can be changed in the config but the default ones are as follows:

    Colored Pipe:
    [​IMG] [​IMG]

    Golden Pipe:
    [​IMG]

    Iron Pipe:
    [​IMG]

    Extraction Pipe:
    [​IMG]

    Ice Pipe:
    [​IMG]

    Void Pipe:
    [​IMG]

    Crafting Pipe:
    [​IMG]

    Wrench:
    [​IMG]


    [​IMG]

    • /tpipes tps - Shows some performance stats, e.g. the ticks per second of the TransportPipes thread or the amount of pipes and items currently ticking.
    • /tpipes settings - Opens the player specific settings interface. Here you can change the render distance of the pipes and you can switch between Vanilla and Modelled Render System. Vanilla Render System uses Vanilla Minecraft textures and the Modelled Render System uses a custom resourcepack.
    • /tpipes reload <config | pipes> - Reloads either the config files or destroys and recreates all pipes in all worlds.
    • /tpipes delete <radius> - Destroys all pipes around you in the desired radius.
    • /tpipes save - Saves all pipes in all worlds. Actually on every world save, the pipes get saved automatically but with this command you can save them manually.
    • /tpipes creative - Opens an inventory where you get access to every pipe without crafting them manually. This only works in creative mode.
    • /tpipes update - Updates the plugin to a more recent version automatically (if possible). The updated version will be available after the next restart.

    [​IMG]

    There are three config files managed by the plugin. You can find them here: TransportPipes/config.yml, TransportPipes/localization.yml and TransportPipes/recipes.yml. Inside the localization.yml file you can change every text displayed to your desired language. The config.yml file has several different options:
    • max_items_per_pipe - If the amount of items in one pipe exceeds this value, the pipe explodes in order to prevent lag issues.
    • crafting_enabled - Disable this option to disable all pipe crafting recipes.
    • check_updates - Enable to allow for automatic update check.
    • destroy_pipe_on_explosion - Whether to destroy pipes if a natural (TNT, Creeper) explosion occurs nearby.
    • anticheat_plugins - List all AntiCheat plugins running on your server here. If not listed here, some players may not be able to place or break pipes due to AntiCheat prevention.
    • default_rendersystemId - Specify which RenderSystem (Vanilla = 0, Modelled = 1) to use as default for new players.
    • default_renderdistance - Specify the default render distance of pipes. (Can be changed individually by each player).
    • default_showitems - Specify the default value for the player-specific option "show items". This option allows you to visually hide all items flowing through the pipes.
    • force_default_rendersystem - By enabling this option you can force all players to use the render system given at default_renderdistance.
    • resourcepack - This option can be one of four values: "default", "server", "none" or a custom URL. The option "default" automatically loads the default resourcepack for TransportPipes. "server" assumes that the resourcepack is handled by the server completely ("server-resourcepack" option in the server.properties). "none" means the resourcepack is disabled and therefore only the vanilla rendersystem can be used. Last but not least, by providing a custom (direct) URL to a resourcepack, you can replace the default one with your own resourcepack. You can download the TransportPipes resourcepack here.
    • disabled_worlds - For every world contained in this list, the pipe system will be disabled.
    By adjusting the recipes.yml, you can change the crafting recipes for all pipes and the wrench item. A recipe is specified by the following keys:
    • type - The recipe type: Either shaped or shapeless.
    • amount - The amount of the crafted result item.
    • shape - Only if type is shaped. Every entry in this list describes a row in the crafting table. Every char describes an item.
    • ingredients - if type is shaped: For every char you have to specify the item to use. (<itemID>:<itemDamage>) if type is shapeless: Just list all items (<itemID>:<itemDamage>) that are needed to craft the desired item. Just write "pipe" instead of <itemID>:<itemDamage> to use a pipe item. If you just write <itemID> (without the damage value) this refers to all items with this ID, regardless of their damage value (e.g. just write 5 to refer to wood and ignore the type of wood).

    [​IMG]

    If you're a developer and you want to create your custom pipe system from another plugin, you can use the following PipeAPI:
    Code (Java):

    //Builds a pipe at the given location. Additionally you can determine which type and which color the pipe should have.
    //The PipeColor is ignored if PipeType is not COLORED.
    PipeAPI.buildPipe(Location blockLoc, PipeType pipeType, PipeColor pipeColor);

    //Detroys the pipe at the given location.
    PipeAPI.destroyDuct(Location blockLoc);

    //Returns the current ticks per second of the TransportPipes thread.
    PipeAPI.getTPS();

    //Returns the max tps of the TransportPipes thread.
    //If this value is reached with the real tps, the thread is running fine.
    PipeAPI.getMaxTPS();

    //Returns the amount of pipes in all worlds.
    PipeAPI.getDuctCount();

    //Returns the amount of pipes in the given world.
    PipeAPI.getDuctCount(World world);

    //Checks whether at the given location is a pipe (just set ductType to DuctType.PIPE).
    PipeAPI.isDuct(Location blockLoc, DuctType ductType);

    //Returns the pipe object at the given location or null if there is no pipe.
    PipeAPI.getPipeAtLocation(Location blockLoc);

    //Destroys all pipes in this world.
    PipeAPI.destroyDucts(World world);

    //Puts "item" into the given pipe with a moving direction of "itemDirection".
    PipeAPI.putItemInPipe(Pipe pipe, ItemStack item, WrappedDirection itemDirection);

    //Registers a custom container block at the given location. Every pipe around this block will try to extract/insert items from/into this container.
    //Create your own implementation of the TransportPipesContainer interface in order to specify which items to extract and where inserted items should go.
    PipeAPI.registerTransportPipesContainer(Location blockLoc, TransportPipesContainer container);

    //Unregisters a custom container block. See PipeAPI.registerTransportPipesContainer(Location blockLoc, TransportPipesContainer container).
    PipeAPI.unregisterTransportPipesContainer(Location blockLoc);
     
    In addition to this methods, there are several events you can use to get notified about important things:
    • PlayerPlaceDuctEvent - when a player places a duct (you have to check for DuctType.PIPE).
    • PlayerDestroyDuctEvent - when a player destroys a duct (you have to check for DuctType.PIPE).
    • DuctConnectionsChangeEvent - gets called when a duct changes its connections amount. For example when a container block or another duct is placed next to it (you have to check for DuctType.PIPE).
    • DuctRegistrationEvent - abstract level of PlayerPlaceDuctEvent. This event also gets called when another plugin registers a duct or a duct gets loaded from the save file.
    • DuctUnregistrationEvent - abstract level of PlayerDestroyDuctEvent. This event also gets called when another plugin unregisters a duct.
    A donation would help me a lot working on this plugin and keeping it up to date :D

    [​IMG]

    Construction graphic by madebyoliver from Flaticon is licensed under CC BY 3.0. Logo and banners created with LogoMaker.com

Recent Reviews

  1. deantonious
    deantonious
    5/5,
    Version: 4.3.1
    Love this plugin! I'll be coding some cool machines to use with your API! This really feels like playing with mods :D
  2. Meteor_Strike
    Meteor_Strike
    5/5,
    Version: 4.3.1
    Great plugin! I don't suppose you could add something like Thermal Expansion's tesseract though? An expensive pipe that warps items to another pipe with a matching signature?
    1. RoboTricker
      Author's Response
      That would make the hole pipe system useless ^^ but yeah I will keep it in mind :)
  3. PanGeo_
    PanGeo_
    4/5,
    Version: 4.3.1
    Hello This is a realy nice plugin but i cant seem to find the permissions for The plugin. or is this just me being blind?
    1. RoboTricker
  4. Buddelbubi
    Buddelbubi
    2/5,
    Version: 4.3.1
    pls add 1.8 support.
    -------------------------------------------------------------------
  5. CoutoNinjaLps
    CoutoNinjaLps
    5/5,
    Version: 4.3.1
    Nice Plugin! But. The pipes blinking. Is that bug plugin on my game settings? :/ :)
    1. RoboTricker
      Author's Response
      Thats because I had to remove the hitbox of the pipes in order to have a working click detection system. Without these hitboxes the vanilla Minecraft client sometimes despawns the pipes although they should still be visible. I'm sorry but this is a vanilla Minecraft issue.
  6. Jokerz
    Jokerz
    5/5,
    Version: 4.3.1
    amazing plugin omg !!!

    can you add a perm system for giving a perm only for spe rank ?
    1. RoboTricker
      Author's Response
      there are already perms for crafting recipes, just use a permissions plugin of your choice to manage theses perms :)
  7. _Complexity_
    _Complexity_
    5/5,
    Version: 4.3.1
    Incredible plugin, really sets a server apart from standard vanilla MC. If you're looking for your server to seem different, amazing plugin
  8. gugod
    gugod
    5/5,
    Version: 4.3.1
    very good job but I can not run the Crafting Pipe even with the wiki.when I right click on it I can not move my inventory and I do not find the workbench matrix. thank you
    1. RoboTricker
      Author's Response
      You have to sneak while right-clicking the crafting pipe. This will open the crafting matrix.
  9. HeavenCrafter
    HeavenCrafter
    5/5,
    Version: 4.3.0
    Its a REALLY smooth plugin, but do you think you can bring this plugin, one version lower? to 1.8?
    1. RoboTricker
      Author's Response
      I'm sorry but this is not possible. MC 1.8 is missing a feature, which is necessary.
  10. ScuroK
    ScuroK
    5/5,
    Version: 4.3.0
    Thanks alot for another update of this MIND BLOWING plugin! I suggest everybody to make a small donation to the developer! <3