Jump to content

[1.7.10][1.8] Builders Helper mod: copy/paste/save structures in-game v2.7


sshipway

Recommended Posts

Cheshire Cat Builder's Helper Mod :  v2.7

 

Project moved to CurseForge http://minecraft.curseforge.com/projects/builders-helper

See this link for all future updates.

 

Download v2.7 from: http://www.steveshipway.org/mc/builders-helper-2.7.zip ( 1.7.10, 1.8 ) (includes src)

 

Download v2.5 from: http://www.steveshipway.org/mc/builders-helper-2.5.zip ( 1.7.10, 1.8 ) (includes src)

Download v2.4from: http://www.steveshipway.org/mc/builders-helper-2.4.zip ( 1.7.10, 1.8 ) (includes src)

Download v2.3.2 from: http://www.steveshipway.org/mc/builders-helper-2.3.2.zip ( 1.7.10, 1.8 ) (includes src)

Download v2.3.1 from: http://www.steveshipway.org/mc/builders-helper-2.3.1.zip ( 1.7.10, 1.8 ) (includes src)

Download v2.2 from: http://www.steveshipway.org/mc/builders-helper-2.2.zip ( 1.7.10, 1.8 ) (includes src)

Download v1.0 from: http://www.steveshipway.org/mc/builders-helper-1.0.zip ( 1.7.10, 1.8 ) (includes src)

Download v2.1-beta1 from: http://www.steveshipway.org/mc/builders-helper-2.1-beta1.zip ( 1.7.10, 1.8 ) (includes src)

Download v2.0-beta1 from: http://www.steveshipway.org/mc/builders-helper-2.0-beta1.zip ( 1.8 ) (includes src)

Download v0.3 from: http://www.steveshipway.org/mc/builders-helper-0.3.zip ( 1.7.10, 1.8 ) (includes src)

Download v0.2 from: http://www.steveshipway.org/mc/builders-helper-0.2.zip ( 1.7.10 only )

 

Screenshots:

 

width=800 height=449http://www.steveshipway.org/mc/2015-01-06_21.40.15.png[/img]

Some of the example structures created with the supplied blueprints.

width=800 height=449http://www.steveshipway.org/mc/2015-01-06_21.41.33.png[/img]

The same plan can be built multiple times, at different locations and rotations, with a click of the mouse.

width=800 height=449http://www.steveshipway.org/mc/2015-01-06_21.42.06.png[/img]

The random tower has varying height, room contents, balconies, windowboxes...

 

 

 

This is a mod aimed at:

  • People who spend all their time in Creative mode
  • People who like the copy/paste features in external editors, but want to create in-game
  • People who don't want to spend another ten minutes creating yet another generic house as they build their city
  • People who want to share their structure with others without having to save and load an entire world
  • People who want an easy way to add auto-spawning structures in-game

The mod adds a new item -- a Wand -- and a few commands ( /wand, /blueprint ).  It allows the person holding the wand to create any of a number of predefined  structures (plans) at the click of a right-button; it also allows them to save an existing structure as a file (blueprint) that can be loaded back in as a plan and used again multiple times.  The resulting map does not need the mod to be loaded for it to work.

 

Plans may use 'soft' blocks, which only place in air or water, and can also include reference to other place, at translation or rotation.  There is also the option to use an element of randomness, so that it can generate varying structures from the same blueprint.  It also preserves Block Entity data and can handle blocks added by other mods.

 

Plans can specify Chests and Spawners using special random syntax, to include randomised loot and spawn potentials.  This may be configured using in-line NBT, external NBT files, or symbolically in the code.  You can also specify mobile entities, such as carts, armour stands, and mobs.

 

There are also 'Metablock' symbols, such as 'OLD_STONE' which will resolve to a different block based on current biome and/or random states.  So, a cottage will generate using different stone and wood if built in a desert as opposed to being built on a plain.

 

Blueprints can also copy and paste mobile entities, such as minecrafts, mobs, and armour stands.

 

Blueprints can contain IFBLOCK and IFBIOME tests to branch on various conditions.

 

Blueprints can use MOB to create entities, and you can copy entities.

 

The PICTURE directive can be used to create a custom map in a frame displaying the contents of an external image file.

 

Plans may be flagged as 'autogenerate' with a probability and a list of biomes, and they will be auto-generated as new chunks are generated.

 

There is support for MCEdit Schematics, and Ruins Templates.

 

Example blueprint:

# Blueprint for small cottage
private  PLAN _cottage
  AREA minecraft:air 0,1,0 7,5,4
  AREA minecraft:cobblestone 0,0,0 0,2,4
  BLOCK minecraft:spruce_stairs(2) 0,3,0
  BLOCK minecraft:cobblestone 0,3,1
  BLOCK minecraft:cobblestone 0,3,2
  BLOCK minecraft:cobblestone 0,3,3
  BLOCK minecraft:spruce_stairs(3) 0,3,4
  BLOCK minecraft:spruce_stairs(2) 0,4,1
  BLOCK minecraft:cobblestone 0,4,2
  BLOCK minecraft:spruce_stairs(3) 0,4,3
  BLOCK minecraft:wooden_slab(1) 0,5,2
  AREA minecraft:cobblestone 1,0,0 1,0,4
  BLOCK minecraft:cobblestone 1,1,0
  BLOCK minecraft:crafting_table 1,1,1
  BLOCK minecraft:bed(9) 1,1,3
  BLOCK minecraft:cobblestone 1,1,4
  BLOCK minecraft:cobblestone 1,2,0
  BLOCK minecraft:cobblestone 1,2,4
  BLOCK minecraft:spruce_stairs(2) 1,3,0
  BLOCK minecraft:torch(1) 1,3,2
  BLOCK minecraft:spruce_stairs(3) 1,3,4
  BLOCK minecraft:spruce_stairs(2) 1,4,1
  BLOCK minecraft:spruce_stairs(3) 1,4,3
  BLOCK minecraft:wooden_slab(1) 1,5,2
  AREA minecraft:cobblestone 2,0,0 2,0,4
  BLOCK minecraft:wooden_door(5) 2,1,0
  BLOCK minecraft:bed(1) 2,1,3
  BLOCK minecraft:cobblestone 2,1,4
  BLOCK minecraft:wooden_door( 2,2,0
  BLOCK minecraft:cobblestone 2,2,4
  BLOCK minecraft:spruce_stairs(2) 2,3,0
  BLOCK minecraft:spruce_stairs(3) 2,3,4
  BLOCK minecraft:spruce_stairs(2) 2,4,1
  BLOCK minecraft:spruce_stairs(3) 2,4,3
  BLOCK minecraft:wooden_slab(1) 2,5,2
  BLOCK minecraft:cobblestone 3,0,0
  BLOCK minecraft:cobblestone 3,0,1
  BLOCK minecraft:cobblestone 3,0,2
  BLOCK minecraft:cobblestone 3,0,3
  BLOCK minecraft:cobblestone 3,0,4
  BLOCK minecraft:cobblestone 3,1,0
  BLOCK minecraft:cobblestone 3,1,4
  BLOCK minecraft:cobblestone 3,2,0
  BLOCK minecraft:glass_pane 3,2,4
  BLOCK minecraft:spruce_stairs(2) 3,3,0
  BLOCK minecraft:spruce_stairs(3) 3,3,4
  BLOCK minecraft:spruce_stairs(2) 3,4,1
  BLOCK minecraft:spruce_stairs(3) 3,4,3
  BLOCK minecraft:wooden_slab(1) 3,5,2
  BLOCK minecraft:cobblestone 4,0,0
  BLOCK minecraft:cobblestone 4,0,1
  BLOCK minecraft:cobblestone 4,0,2
  BLOCK minecraft:cobblestone 4,0,3
  BLOCK minecraft:cobblestone 4,0,4
  BLOCK minecraft:cobblestone 4,1,0
  BLOCK minecraft:fence 4,1,2
  BLOCK minecraft:cobblestone 4,1,4
  BLOCK minecraft:glass_pane 4,2,0
  BLOCK minecraft:wooden_pressure_plate 4,2,2
  BLOCK minecraft:cobblestone 4,2,4
  BLOCK minecraft:spruce_stairs(2) 4,3,0
  BLOCK minecraft:spruce_stairs(3) 4,3,4
  BLOCK minecraft:spruce_stairs(2) 4,4,1
  BLOCK minecraft:spruce_stairs(3) 4,4,3
  BLOCK minecraft:wooden_slab(1) 4,5,2
  AREA minecraft:cobblestone 5,0,0 5,0,4
  BLOCK minecraft:cobblestone 5,1,0
  BLOCK minecraft:cobblestone 5,1,4
  BLOCK minecraft:cobblestone 5,2,0
  BLOCK minecraft:cobblestone 5,2,4
  BLOCK minecraft:spruce_stairs(2) 5,3,0
  BLOCK minecraft:torch(2) 5,3,2
  BLOCK minecraft:spruce_stairs(3) 5,3,4
  BLOCK minecraft:spruce_stairs(2) 5,4,1
  BLOCK minecraft:spruce_stairs(3) 5,4,3
  BLOCK minecraft:wooden_slab(1) 5,5,2
  AREA minecraft:cobblestone 6,0,0 6,2,4
  BLOCK minecraft:air 6,1,2
  BLOCK minecraft:spruce_stairs(2) 6,3,0
  BLOCK minecraft:cobblestone 6,3,1
  BLOCK minecraft:cobblestone 6,3,2
  BLOCK minecraft:cobblestone 6,3,3
  BLOCK minecraft:spruce_stairs(3) 6,3,4
  BLOCK minecraft:spruce_stairs(2) 6,4,1
  BLOCK minecraft:cobblestone 6,4,2
  BLOCK minecraft:spruce_stairs(3) 6,4,3
  BLOCK minecraft:cobblestone 6,5,2
  BLOCK minecraft:cobblestone 6,6,2
  BLOCK minecraft:cobblestone 7,0,2
  BLOCK minecraft:cobblestone 7,1,2
  BLOCK minecraft:stone_stairs(1) 7,2,2
END

PUBLIC PLAN cottage A simple small one room cottage
  # shift to make the door in front of us when created
  CALL _cottage -2 -1 1 0
END

 

Another example:

PUBLIC PLAN flower A tulip in a flowerpot
  BLOCK minecraft:flower_pot(4) 0,0,0 {Item:38,Data:4,id:"FlowerPot"}
END

 

 

The main thing to note is that, once the structures have been built, the mod is not required for the world to work (provided you have removed the Wand from the player inventory of course).

 

The mod comes with a number of example blueprints, demonstrating the various capabilities.  For example:

  • Glass dome -- works on land or underwater
  • Random tower -- random room contents and height
  • Cottage -- simple cottage
  • Well -- example of underground structure
  • Water -- uses 'soft' blocks to fill holes with water without affecting other blocks
  • Jeb Door -- standard Jeb door, with redstone etc
  • Lava trap -- example of trapped chest with opening floor
  • Bridge -- a simple 4-block wide bridge with a 30-block span
  • Tree -- a simple Oak tree
  • Water and Dry -- fill a hole with water, or dry up existing water
  • Topsoil -- add a layer of dirt and grass to any exposed rock
  • Tunnel -- drill a tunnell, with a rail track and torches, until the far side of the hill
  • Dungeon -- generate a random dungeon, with random rooms, monsters and treasure

More details and documentation are included with the mod in the download file.

 

Suggested uses:

  • Removing repetitive duplication work when building cities, forests and so on
  • Tutorials (eg, redstone) can provide a blueprint containing the example structures
  • Builders can share their work as individual re-useable structures
  • Use of random features giving small variations in a plan, to make more realistic worlds
  • Procedurally generate simple towers and castles

Note:

This is my first Minecraft Forge mod, and is being released to solicit feedback.  There are a number of rough edges and a couple of small bugs still to be addressed.  All constructive criticism and suggestions welcomed.

 

Link to comment
Share on other sites

Here's the blueprint code for the random tower.  This is a good example of a recursive plan, with random elements.

 

I'm working on compiling a version of this mod to work with Minecraft 1.8 and the current Forge beta.

 

 

#
# Build a castle (actually, a tower)
# This has a standard base, then random rooms for a random height,
# then a standard roof.
#

private plan _tower_floor
    AREA minecraft:stone_slab(11)   2 -1 1  6 -1 6
    BLOCK minecraft:stone_slab(11)  1 -1 1
    BLOCK minecraft:stone_slab(11)  1 -1 2
    BLOCK minecraft:stone_slab(3)   1 -1 6
    BLOCK minecraft:stone_stairs(2) 1 -2 5
    BLOCK minecraft:stone_stairs(2) 1 -3 4
    BLOCK minecraft:stone_stairs(2) 1 -4 3
END

private plan _tower_walls
    AREA minecraft:cobblestone 0 -1 0   7 2 0
    AREA minecraft:cobblestone 0 -1 7   7 2 7
    AREA minecraft:cobblestone 0 -1 1   0 2 6
    AREA minecraft:cobblestone 7 -1 1   7 2 6
END

# Ground floor of the tower
private plan _tower_ground
    AREA minecraft:cobblestone 1 -1 1  6 -1 6
    CALL _tower_walls 0 0 0 0
    AREA minecraft:air 1 0 1  6 2 6
    BLOCK minecraft:wooden_door(3) 3 0 0
    BLOCK minecraft:wooden_door( 3 1 0
    BLOCK minecraft:wooden_door(3) 4 0 0
    BLOCK minecraft:wooden_door(9) 4 1 0
  BLOCK minecraft:torch(3) 4,2,1
  BLOCK minecraft:torch(4) 4,2,6
  BLOCK minecraft:torch(2) 6,2,4
  # torches over door
  BLOCK minecraft:torch(4) 3,2,-1
  BLOCK minecraft:torch(4) 4,2,-1
END

private plan _tower_roof
    # CALL _tower_floor 0 0 0 0
    AREA minecraft:stone_slab(11)   1 -1 1  6 -1 6
    BLOCK minecraft:trapdoor(     1 -1 2
    BLOCK minecraft:ladder(5)       1 -2 2
    BLOCK minecraft:cobblestone     0 -3 2
    BLOCK minecraft:ladder(5)       1 -3 2
    BLOCK minecraft:ladder(5)       1 -4 2
    BLOCK minecraft:stone_slab(3)   1 -4 3

    # Low walls and crenelations
    AREA minecraft:cobblestone 0 -1 0   7 1 0
    AREA minecraft:cobblestone 0 -1 7   7 1 7
    AREA minecraft:cobblestone 0 -1 1   0 1 6
    AREA minecraft:cobblestone 7 -1 1   7 1 6
    BLOCK minecraft:air        0  1 1
    BLOCK minecraft:air        0  1 3
    BLOCK minecraft:air        0  1 5
    BLOCK minecraft:air        7  1 2
    BLOCK minecraft:air        7  1 4
    BLOCK minecraft:air        7  1 6
    BLOCK minecraft:air        2  1 0
    BLOCK minecraft:air        4  1 0
    BLOCK minecraft:air        6  1 0
    BLOCK minecraft:air        1  1 7
    BLOCK minecraft:air        3  1 7
    BLOCK minecraft:air        5  1 7
    # Flagpole
    BLOCK minecraft:fence      5  0 5
    BLOCK minecraft:fence      5  1 5
    BLOCK minecraft:fence      5  2 5
    BLOCK minecraft:fence      5  3 5
# torches
    BLOCK minecraft:torch(0)   0  2 0
    BLOCK minecraft:torch(0)   0  2 7
    BLOCK minecraft:torch(0)   7  2 0
    BLOCK minecraft:torch(0)   7  2 7
END

private plan _tower_balcony
  # Balcony for window
  BLOCK minecraft:air 1 0 0
  BLOCK minecraft:air 1 1 0
  AREA  minecraft:stone_slab(11)   0 -1 2  2 -1 2
  AREA  minecraft:stone_stairs(7)  0 -1 1  2 -1 1
  AREA  minecraft:fence            0  0 2  2  0 2
  BLOCK minecraft:fence            0  0 1
  BLOCK minecraft:fence            2  0 1
  BLOCK minecraft:torch(3)         1  2 1
END
private plan _tower_windowledge
  BLOCK minecraft:stone_stairs(7) 1 0 1
  BLOCK minecraft:flower_pot(4)   1 1 1 {Item:38,Data:4,id:"FlowerPot"}
END
private plan _tower_window
  RANDOM 3
     CALL _tower_balcony     0 0 0  0
     CALL _tower_windowledge 0 0 0  0
     CALL _tower_windowledge 0 0 0  0
END
private plan _tower_half
  AREA minecraft:air       4 -1 1  6 -1 6
  AREA minecraft:fence     3  0 1  3  0 6
  BLOCK minecraft:torch(3) 3, 2,1
  BLOCK minecraft:torch(4) 3, 2,6
  CHANCE 20
     CALL _tower_window       1 0 7  0
  CHANCE 20
     CALL _tower_window       3 0 0  2
  CHANCE 10
     CALL _tower_windowledge  4 0 7  0
  CHANCE 10
     CALL _tower_windowledge  6 0 0  2
END
private plan _tower_library
  AREA minecraft:bookshelf  6 0 1  6 0 6
  AREA minecraft:bookshelf  6 2 1  6 2 6
  BLOCK minecraft:bookshelf 6 1 1
  BLOCK minecraft:bookshelf 6 1 3
  BLOCK minecraft:bookshelf 6 1 4
  BLOCK minecraft:bookshelf 6 1 6
  BLOCK minecraft:torch(3)  4,2,1
  BLOCK minecraft:torch(4)  4,2,6
  CHANCE 20
     CALL _tower_window  1 0 7  0
  CHANCE 20
     CALL _tower_window  4 0 7  0
  CHANCE 20
     CALL _tower_window  6 0 0  2
  CHANCE 20
     CALL _tower_window  3 0 0  2
END
private plan _tower_jail
# windows
    BLOCK minecraft:iron_bars 5 1 7
    BLOCK minecraft:iron_bars  5 1 0
    BLOCK minecraft:iron_bars  7 1 2
    BLOCK minecraft:iron_bars  7 1 5
# jail
    AREA minecraft:iron_bars        4 0 6    4 2 4 
    AREA minecraft:cobblestone      4 0 3   4 2 1
    BLOCK minecraft:stone_button(2) 3 1 3
    BLOCK minecraft:iron_door(0)    4 0 2
    BLOCK minecraft:iron_door(    4 1 2
  BLOCK minecraft:bed( 6,0,6
  BLOCK minecraft:bed(0) 6,0,5
  BLOCK minecraft:torch(3) 3,2,1
  BLOCK minecraft:torch(4) 3,2,6
END
private plan _tower_bedroom
  BLOCK minecraft:bed(11) 6,0,6
  BLOCK minecraft:bed(3) 5,0,6
  BLOCK minecraft:bookshelf 6 0 5
  BLOCK minecraft:torch(2) 6,2,4
  CHANCE 20
     CALL _tower_window  1 0 7  0
  CHANCE 20
     CALL _tower_window  4 0 7  0
  CHANCE 20
     CALL _tower_window  7 0 6  3
  CHANCE 20
     CALL _tower_window  7 0 3  3
  CHANCE 20
     CALL _tower_window  3 0 0  2
  CHANCE 10
     CALL _tower_windowledge  6 0 0  2
END
private plan _tower_diningrm
  BLOCK minecraft:fence 4,0,4
  BLOCK minecraft:wooden_pressure_plate 4,1,4
  BLOCK minecraft:fence 4,0,3
  BLOCK minecraft:wooden_pressure_plate 4,1,3
  BLOCK minecraft:torch(3) 4,2,1
  BLOCK minecraft:torch(4) 4,2,6
  BLOCK minecraft:torch(2) 6,2,4
  CHANCE 20
     CALL _tower_window  1 0 7  0
  CHANCE 20
     CALL _tower_window  4 0 7  0
  CHANCE 20
     CALL _tower_window  7 0 6  3
  CHANCE 20
     CALL _tower_window  7 0 3  3
  CHANCE 20
     CALL _tower_window  6 0 0  2
  CHANCE 20
     CALL _tower_window  3 0 0  2
END
private plan _tower_empty
  CHANCE 75
BLOCK minecraft:web     1 2 6
  CHANCE 75
BLOCK minecraft:web     6 2 6
  CHANCE 75
BLOCK minecraft:web     6 2 1
  CHANCE 15
     CALL _tower_balcony  1 0 7  0
  CHANCE 15
     CALL _tower_balcony  4 0 7  0
  CHANCE 15
     CALL _tower_balcony  7 0 6  3
  CHANCE 15
     CALL _tower_balcony  7 0 3  3
  CHANCE 15
     CALL _tower_balcony  6 0 0  2
  CHANCE 15
     CALL _tower_balcony  3 0 0  2
END
private plan _tower_open
  AREA minecraft:air 3 -1 3    4 -1 4
  AREA minecraft:fence 2 0 2  5 0 2
  AREA minecraft:fence 2 0 5  5 0 5
  AREA minecraft:fence 2 0 3  2 0 4
  AREA minecraft:fence 5 0 3  5 0 4
  BLOCK minecraft:torch(3) 4,2,1
  BLOCK minecraft:torch(4) 4,2,6
  BLOCK minecraft:torch(2) 6,2,4
  CHANCE 20
     CALL _tower_window  1 0 7  0
  CHANCE 20
     CALL _tower_window  4 0 7  0
  CHANCE 20
     CALL _tower_window  7 0 6  3
  CHANCE 20
     CALL _tower_window  7 0 3  3
  CHANCE 20
     CALL _tower_window  6 0 0  2
  CHANCE 20
     CALL _tower_window  3 0 0  2
END

# randomly select some contents for the room
private plan _tower_room_contents

    RANDOM 8
CALL _tower_diningrm 0 0 0  0
CALL _tower_library  0 0 0  0
CALL _tower_bedroom  0 0 0  0
CALL _tower_diningrm 0 0 0  0
CALL _tower_jail     0 0 0  0
CALL _tower_open     0 0 0  0
CALL _tower_empty    0 0 0  0
CALL _tower_half     0 0 0  0

END

private plan _tower_room
    CALL _tower_floor 0 0 0  0
    CALL _tower_walls 0 0 0  0

    BLOCK minecraft:glass_pane 2 1 7
    BLOCK minecraft:glass_pane 5 1 7
    BLOCK minecraft:glass_pane 2 1 0
    BLOCK minecraft:glass_pane 5 1 0
    BLOCK minecraft:glass_pane 7 1 2
    BLOCK minecraft:glass_pane 7 1 5
    BLOCK minecraft:glass_pane 0 1 2
    BLOCK minecraft:glass_pane 0 1 5

# pick a random contents for this room
    CALL _tower_room_contents 0 0 0  0

# above it can be either another room, or the roof
    RANDOM 3
        CALL _tower_room 0 4 0  0
        CALL _tower_room 0 4 0  0
        CALL _tower_roof 0 4 0  0

END

# Build the tower.  Start with the ground floor, 
# then build a room above and recurse.
# This may take several seconds to complete.
public plan tower  A randomly high tower
   CALL _tower_ground -4 0 1  0
   CALL _tower_room   -4 4 1  0
END

 

Link to comment
Share on other sites

Finally managed to get it to compile, and work, under Minecraft 1.8.  Not as easy as I'd hoped by any means...  the new BlockState way of handling things is awkward, to say the least, not to mention the problematic way of specifying textures.

 

Anyway, will shortly post mod v0.3 with support for both Minecraft 1.7.10 and 1.8.0

 

Have also fixed the problem with torches/trapdoors/signs occasionally falling off the walls.

Link to comment
Share on other sites

It might be possible to hook this into the world generation hooks, so that specified plans are randomly generated during world generation.  A plan could be enabled for autogeneration using an Option flag, with a probability and valid biomes in which it may appear; then, you'd be able to customise the autogenerated structures easily.  I'm not sure how simple this would be to do; it also changes the focus of the mod from being one used by a builder and then removed before playing, to being one intended to be permanently loaded.

 

It would also be necessary to have a module cfg file (separate from the blueprint files) to enable or disable such things are the wand crafting recipie, autogeneration, and so on.

Link to comment
Share on other sites

  • 2 weeks later...
  • 3 weeks later...

Version 2.0 is now in beta, for Minecraft 1.8 only

 

This includes new directives to allow placing of Chests with randomised contents and Spawners with randomised and customised mobs; you can also specify metadata, chests, items, spawners and mob using NBT files instead of JSON.

 

There are a few more provided blueprints, as well.

 

The Blueprint Java package is now properly packaged up in a separate heirachy from the module so that it is portable and reuseable by other modules.  A number of instances of bad coding have been rewritten, and the module used BlockPos and NBTTagCompound objects internally.

Link to comment
Share on other sites

I did not take that approach, I took cues from part of the world edit logic as recommended by grey ghost. https://github.com/sk89q/WorldEdit/blob/master/worldedit-core/src/main/java/com/sk89q/worldedit/blocks/BlockData.java

 

My problem is that forge blocks aren't in the current set of rotations.

 

I plan to parse block names and allow the user to create new rotations in a config file.

 

very nice.

Link to comment
Share on other sites

In Minecraft 1.8, things are a lot easier because you can use the generic blockstate to give you an Enum for direction, which can be used to rotate.  As long as orientable userdefined blocks use the standard EnumDirection or EnumOrientation (which is highly likely) then it is possible to make a generic rotation function... of course, there will always be a few exceptions, which end up not rotating.

 

For 1.7, I handled rotation in the same way as the code example you linked to -- with a special rotate function that takes the DV and returns a rotated on for the specified block type, using many If statements.  Highly non-ideal, but all you can do, I think.  I wish that Mojang has standardised on a sngle way to specify orientation back at the beginning :(

 

Having an option in the module cfg file to customise <blockname>=<bitmask>,<dv>,<dv>,<dv>,<dv> or <blockname>=<statename>,<valuelist> to specify the n/s/e/w DV values might be the way to go for custom blocks with orientation.

Link to comment
Share on other sites

Version 2.1 (beta1) is now available. 

 

This allows chests to be defined using this sort of syntax:

 

  CHEST 1 2 3  2  stick,0,5;50 minecraft:silk,6;90

 

This gives you a 50% chance of 0-5 sticks, and a 90% chance of 6 pieces of string.  You can also use NBT either inline or in external files to specifiy either an item or the entire chest.

 

Similarly, you can define spawners to have multiple weights and source by name or from external files:

 

  SPAWNER 1 2 3  Skeleton;10 Zombie;10 externalfile.nbt;20

 

Some examples are shipped with the module.

Link to comment
Share on other sites

Version 2.2 is now released, with source for both 1.7.10 and 1.8

 

This adds the MOB directive, allowing blueprints to include minecarts, armour stands, zombies and so on; the /bp copy command will copy mobs in the region as well.

 

You can also specify blocks as MetaBlocks, such as OLD_STONE.  This will resolve to a different block depending on biome and randomness to give a more realistic look (thanks to the coders of mcDungeon for this idea!)

 

Pick up from http://www.steveshipway.org/mc/builders-helper-2.2.zip

Link to comment
Share on other sites

Next enhancements --

 

1. an IFBIOME directive, to branch on certain biome matches (so you can have dcompletely different structures in different biomes form the same blueprint)

2. an IFBLOCK <x><y><z> <id> directive, to branch if the block at a certain relative position matches (so you can have a structure that continues until a condition is met, such as a tunnel ending on the other side of a hill, or a bridge pier ending at ground level.

 

eg.

 

PUBLIC PLAN village
CALL meta_cottage 0 0 0 0
IFBIOME Desert
  CALL 10 0 10 0 desert_well
  CALL 10 0 10 0 other_well
END

PUBLIC PLAN tunnel_section
IFBLOCK 10 0 0 minecraft:air
  NOOP
  CALL tunnel_section 10 0 0 0
CALL build_section 0 0 0 0
END

Link to comment
Share on other sites

  • 2 weeks later...

To copy a structure in-game:

  1. [*]Hold the Wand, or be in Creative mode

[*]Use the command:

/bp copy myname x1 y1 z1 x2 y2 z2

Replace myname with the name you want to store the new blueprint under. The coordinates are for opposite corners of the box to copy; so "1 2 3 4 5 6" will copy from block 1,2,3 to block 4,5,6 (a 3x3x3 cube). It will not copy Air blocks.

[*]You can now use

 /wand set myname 

to make the wand produce your newly copied blocks when you right-click at a location.

[*]Use

 /bp savemyname

to save your new blueprint to disk as

confg/bp/myname.cfg

. This will make it persist after game restarts.

[*]Note that the 'origin' as defined by a

 /bp copy 

may not be precisely where you want it to be. In this case, you can edit the new blueprint file to wrap the new plan in another plan that simply does an offset and/or rotation. See the cottage.cfg example blueprint for a demonstration of this.

To use the wand:

  1. [*]The wand is initially not set to do anything. You need to "enchant" it (I.E., associate it with an existing Blueprint).

[*]Use

/bp list 

to list the Public blueprints.

[*]Use

/wand set name

to set the wand to produce a specific blueprint. This works with public or private blueprints.

[*]Right-click (use) the wand on a block. You must be targetting a block; just clicking in the air does nothing. This will create the specified structure at this point.

[*]You may need to wait a few seconds for the structure to appear, depending on the complexity of the structure, or the speed of your server. A chat message will tell you when the build is completed (or if it failed for any reason).

Using Blueprints

  1. [*]A
blueprint is a file containing one or more plans, which contain sequences of instructions to create a structure. The directory of blueprints is called the portfolio.

  [*]A particular plan may call one or more other plans multiple times; in fact, this is a recommended way to define structures. The sub-plans can be marked 'private', which means their names do not normally display when listing plans.

[*]A plan may be marked as 'autocreate' with a probability and biome list. This is used by the autogenerator to randomly create this structure in the world as new chunks are defined.

[*]Blueprints can be created by the

/bp save

command, usually after running

/bp copy

to copy something in-world. However, it is usually more efficient to write or edit them by hand.

[*]The Blueprint language is structured similarly to the language Logo. It has basic testing and branching, and can use 'soft' blocks (which only place in Air) or 'meta' blocks (which have an element of randomness or dependence on biome). The language is detailed in the readme.cfg sample blueprint; there are also many other example blueprints provided to help you.

[*]Plans in one blueprint may call plans from another; however this is not generally recommended as you cannot be certain which order they will be evaluated in. It is best to keep all related plans in a single blueprint file. Also, it is Best Practice (though not required) to prefix private plans with an underscore, and have all plans in a blueprint with a common prefix -- for example, "hut", "_hut_roof", "_hut_window".

[*]Be careful with recursion. An infinitely-recurring plan will hang the server thread (this will be hopefully prevented in a future release)

 

I hope this helps! Documentation is slowly being written. I'm hoping that other module writers may pick up on the blueprint language as being a convenient way to define structures, and it could become a common language for exchanging structural definitions.

 

Link to comment
Share on other sites

  • 2 weeks later...
  • 4 weeks later...

Version 2.4 is available from http://www.steveshipway.org/mc/builders-helper-2.4.zip

 

Changes:

 

    You can select the area to copy using right-click on the wand, rather than having to type in the coordinates.

    It also adds support for Ruins Templates (from the Ruins mod); these are automatically converted to Blueprint format and made available.

    Additional blueprints added

    Corrections to Float and Soft code

    Support for ChestGenHooks

 

Link to comment
Share on other sites

  • 3 weeks later...

Version 2.5 is available from http://www.steveshipway.org/mc/builders-helper-2.5.zip

 

This supports Ruins Templates and MCEdit Schematics, and can convert them to Blueprint format.

 

There is also an 'undo' command to back out your changes, and you can select a structure by clicking on the corners of the base.  It also supports a 'flatten' command to smooth out the land below a structure to avoid overhangs.

 

Link to comment
Share on other sites

  • 1 month later...

When you use /wand copy, instead of /bp copy, you click on the lower corners of the volume to be copied, and the height is automatically worked out by coming down until it hits a hard block.  The lower Y coordinate is the minimum of the two clicked corners.

 

So, if you click on [10,60,0] and [15,65,5]  then the volume copied will be [10-15,60-H,0-5] where H is the highest block in the [10-15,0-5] column - which may well be 100 if there is something up that high.  It works this way because you cannot click on an air block, and usually the top of your structure volume will have air in the corners.

 

If you want to copy a specific volume, you can use /bp copy to specify the exact corners.  The /wand copy command is intended to make things easier when copying an outside structure with nothing else above it.

 

The problem might occur if you have an overhanging cliff, or a tree, or something floating in the air 69 blocks above you.  Then you'll end up copying higher than you intended - though you could save with /bp save and subsequently edit the saved .bp file in a text editor and remove the offending block(s), before doing a /bp load to reload the blueprints.

 

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • Hello, I'm trying to modify the effects of native enchantments for bows and arrows in Minecraft. After using a decompilation tool, I found that the specific implementations of native bow and arrow enchantments (including `ArrowDamageEnchantment`, `ArrowKnockbackEnchantment`, `ArrowFireEnchantment`, `ArrowInfiniteEnchantment`, `ArrowPiercingEnchantment`) do not contain any information about the enchantment effects (such as the `getDamageProtection` function for `ProtectionEnchantment`, `getDamageBonus` function for `DamageEnchantment`, etc.). Upon searching for the base class of arrows, `AbstractArrow`, I found a function named setEnchantmentEffectsFromEntity`, which seems to be used to retrieve the enchantment levels of the tool held by a `LivingEntity` and calculate the specific values of the enchantment effects. However, after testing with the following code, I found that this function is not being called:   @Mixin(AbstractArrow.class) public class ModifyArrowEnchantmentEffects {     private static final Logger LOGGER = LogUtils.getLogger();     @Inject(         method = "setEnchantmentEffectsFromEntity",         at = @At("HEAD")     )     private void logArrowEnchantmentEffectsFromEntity(CallbackInfo ci) {         LOGGER.info("Arrow enchantment effects from entity");     } }   Upon further investigation, I found that within the onHitEntity method, there are several lines of code:               if (!this.level().isClientSide &amp;&amp; entity1 instanceof LivingEntity) {                EnchantmentHelper.doPostHurtEffects(livingentity, entity1);                EnchantmentHelper.doPostDamageEffects((LivingEntity)entity1, livingentity);             }   These lines of code actually call the doPostHurt and doPostAttack methods of each enchantment in the enchantment list. However, this leads back to the issue because native bow and arrow enchantments do not implement these functions. Although their base class defines the functions, they are empty. At this point, I'm completely stumped and seeking assistance. Thank you.
    • I have been trying to make a server with forge but I keep running into an issue. I have jdk 22 installed as well as Java 8. here is the debug file  
    • it crashed again     What the console says : [00:02:03] [Server thread/INFO] [Easy NPC/]: [EntityManager] Server started! [00:02:03] [Server thread/INFO] [co.gi.al.ic.IceAndFire/]: {iceandfire:fire_dragon_roost=true, iceandfire:fire_lily=true, iceandfire:spawn_dragon_skeleton_fire=true, iceandfire:lightning_dragon_roost=true, iceandfire:spawn_dragon_skeleton_lightning=true, iceandfire:ice_dragon_roost=true, iceandfire:ice_dragon_cave=true, iceandfire:lightning_dragon_cave=true, iceandfire:cyclops_cave=true, iceandfire:spawn_wandering_cyclops=true, iceandfire:spawn_sea_serpent=true, iceandfire:frost_lily=true, iceandfire:hydra_cave=true, iceandfire:lightning_lily=true, iceandfireixie_village=true, iceandfire:myrmex_hive_jungle=true, iceandfire:myrmex_hive_desert=true, iceandfire:silver_ore=true, iceandfire:siren_island=true, iceandfire:spawn_dragon_skeleton_ice=true, iceandfire:spawn_stymphalian_bird=true, iceandfire:fire_dragon_cave=true, iceandfire:sapphire_ore=true, iceandfire:spawn_hippocampus=true, iceandfire:spawn_death_worm=true} [00:02:03] [Server thread/INFO] [co.gi.al.ic.IceAndFire/]: {TROLL_S=true, HIPPOGRYPH=true, AMPHITHERE=true, COCKATRICE=true, TROLL_M=true, DREAD_LICH=true, TROLL_F=true} [00:02:03] [Server thread/INFO] [ne.be.lo.WeaponRegistry/]: Encoded Weapon Attribute registry size (with package overhead): 41976 bytes (in 5 string chunks with the size of 10000) [00:02:03] [Server thread/INFO] [patchouli/]: Sending reload packet to clients [00:02:03] [Server thread/WARN] [voicechat/]: [voicechat] Running in offline mode - Voice chat encryption is not secure! [00:02:03] [VoiceChatServerThread/INFO] [voicechat/]: [voicechat] Using server-ip as bind address: 0.0.0.0 [00:02:03] [Server thread/WARN] [ModernFix/]: Dedicated server took 22.521 seconds to load [00:02:03] [VoiceChatServerThread/INFO] [voicechat/]: [voicechat] Voice chat server started at 0.0.0.0:25565 [00:02:03] [Server thread/WARN] [minecraft/SynchedEntityData]: defineId called for: class net.minecraft.world.entity.player.Player from class tschipp.carryon.common.carry.CarryOnDataManager [00:02:03] [Server thread/INFO] [ne.mi.co.AdvancementLoadFix/]: Using new advancement loading for net.minecraft.server.PlayerAdvancements@2941ffd5 [00:02:10] [Netty Epoll Server IO #2/INFO] [Calio/]: Received acknowledgment for login packet with id 0 [00:02:10] [Netty Epoll Server IO #2/INFO] [Calio/]: Received acknowledgment for login packet with id 1 [00:02:10] [Netty Epoll Server IO #2/INFO] [Calio/]: Received acknowledgment for login packet with id 2 [00:02:10] [Netty Epoll Server IO #2/INFO] [Calio/]: Received acknowledgment for login packet with id 3 [00:02:10] [Netty Epoll Server IO #2/INFO] [Calio/]: Received acknowledgment for login packet with id 4 [00:02:10] [Netty Epoll Server IO #2/INFO] [Calio/]: Received acknowledgment for login packet with id 5 [00:02:10] [Netty Epoll Server IO #2/INFO] [Calio/]: Received acknowledgment for login packet with id 6 [00:02:10] [Netty Epoll Server IO #2/INFO] [Calio/]: Received acknowledgment for login packet with id 7 [00:02:10] [Netty Epoll Server IO #2/INFO] [Calio/]: Received acknowledgment for login packet with id 8 [00:02:10] [Netty Epoll Server IO #2/INFO] [Calio/]: Received acknowledgment for login packet with id 9 [00:02:10] [Netty Epoll Server IO #2/INFO] [Calio/]: Received acknowledgment for login packet with id 10 [00:02:10] [Netty Epoll Server IO #2/INFO] [Calio/]: Received acknowledgment for login packet with id 11 [00:02:10] [Netty Epoll Server IO #2/INFO] [Calio/]: Received acknowledgment for login packet with id 12 [00:02:10] [Netty Epoll Server IO #2/INFO] [Calio/]: Received acknowledgment for login packet with id 13 [00:02:10] [Netty Epoll Server IO #2/INFO] [Calio/]: Received acknowledgment for login packet with id 14 [00:02:19] [Server thread/INFO] [ne.mi.co.AdvancementLoadFix/]: Using new advancement loading for net.minecraft.server.PlayerAdvancements@ebc7ef2 [00:02:19] [Server thread/INFO] [minecraft/PlayerList]: ZacAdos[/90.2.17.162:49242] logged in with entity id 1062 at (-1848.6727005281205, 221.0, -3054.2468255848935) [00:02:19] [Server thread/ERROR] [ModernFix/]: Skipping entity ID sync for com.talhanation.smallships.world.entity.ship.Ship: java.lang.NoClassDefFoundError: net/minecraft/client/CameraType [00:02:19] [Server thread/INFO] [minecraft/MinecraftServer]: - Gloop - ZacAdos joined the game [00:02:19] [Server thread/INFO] [xa.pa.OpenPartiesAndClaims/]: Updating all forceload tickets for cc56befd-d376-3526-a760-340713c478bd [00:02:19] [Server thread/INFO] [se.mi.te.da.DataManager/]: Sending data to client: ZacAdos [00:02:19] [Server thread/INFO] [voicechat/]: [voicechat] Received secret request of - Gloop - ZacAdos (17) [00:02:19] [Server thread/INFO] [voicechat/]: [voicechat] Sent secret to - Gloop - ZacAdos [00:02:21] [VoiceChatPacketProcessingThread/INFO] [voicechat/]: [voicechat] Successfully authenticated player cc56befd-d376-3526-a760-340713c478bd [00:02:22] [VoiceChatPacketProcessingThread/INFO] [voicechat/]: [voicechat] Successfully validated connection of player cc56befd-d376-3526-a760-340713c478bd [00:02:22] [VoiceChatPacketProcessingThread/INFO] [voicechat/]: [voicechat] Player - Gloop - ZacAdos (cc56befd-d376-3526-a760-340713c478bd) successfully connected to voice chat stop [00:02:34] [Server thread/INFO] [minecraft/MinecraftServer]: Stopping the server [00:02:34] [Server thread/INFO] [mo.pl.ar.ArmourersWorkshop/]: stop local service [00:02:34] [Server thread/INFO] [minecraft/MinecraftServer]: Stopping server [00:02:34] [Server thread/INFO] [minecraft/MinecraftServer]: Saving players [00:02:34] [Server thread/INFO] [minecraft/ServerGamePacketListenerImpl]: ZacAdos lost connection: Server closed [00:02:34] [Server thread/INFO] [minecraft/MinecraftServer]: - Gloop - ZacAdos left the game [00:02:34] [Server thread/INFO] [xa.pa.OpenPartiesAndClaims/]: Updating all forceload tickets for cc56befd-d376-3526-a760-340713c478bd [00:02:34] [Server thread/INFO] [minecraft/MinecraftServer]: Saving worlds [00:02:34] [Server thread/INFO] [minecraft/MinecraftServer]: Saving chunks for level 'ServerLevel[world]'/minecraft:overworld [00:02:34] [Server thread/INFO] [minecraft/MinecraftServer]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_end [00:02:34] [Server thread/INFO] [minecraft/MinecraftServer]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_nether [00:02:34] [Server thread/INFO] [minecraft/MinecraftServer]: ThreadedAnvilChunkStorage (world): All chunks are saved [00:02:34] [Server thread/INFO] [minecraft/MinecraftServer]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved [00:02:34] [Server thread/INFO] [minecraft/MinecraftServer]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved [00:02:34] [Server thread/INFO] [minecraft/MinecraftServer]: ThreadedAnvilChunkStorage: All dimensions are saved [00:02:34] [Server thread/INFO] [xa.pa.OpenPartiesAndClaims/]: Stopping IO worker... [00:02:34] [Server thread/INFO] [xa.pa.OpenPartiesAndClaims/]: Stopped IO worker! [00:02:34] [Server thread/INFO] [Calio/]: Removing Dynamic Registries for: net.minecraft.server.dedicated.DedicatedServer@7dc879e1 [MineStrator Daemon]: Checking server disk space usage, this could take a few seconds... [MineStrator Daemon]: Updating process configuration files... [MineStrator Daemon]: Ensuring file permissions are set correctly, this could take a few seconds... [MineStrator Daemon]: Pulling Docker container image, this could take a few minutes to complete... [MineStrator Daemon]: Finished pulling Docker container image container@pterodactyl~ java -version openjdk version "17.0.10" 2024-01-16 OpenJDK Runtime Environment Temurin-17.0.10+7 (build 17.0.10+7) OpenJDK 64-Bit Server VM Temurin-17.0.10+7 (build 17.0.10+7, mixed mode, sharing) container@pterodactyl~ java -Xms128M -Xmx6302M -Dterminal.jline=false -Dterminal.ansi=true -Djline.terminal=jline.UnsupportedTerminal -p libraries/cpw/mods/bootstraplauncher/1.1.2/bootstraplauncher-1.1.2.jar:libraries/cpw/mods/securejarhandler/2.1.4/securejarhandler-2.1.4.jar:libraries/org/ow2/asm/asm-commons/9.5/asm-commons-9.5.jar:libraries/org/ow2/asm/asm-util/9.5/asm-util-9.5.jar:libraries/org/ow2/asm/asm-analysis/9.5/asm-analysis-9.5.jar:libraries/org/ow2/asm/asm-tree/9.5/asm-tree-9.5.jar:libraries/org/ow2/asm/asm/9.5/asm-9.5.jar:libraries/net/minecraftforge/JarJarFileSystems/0.3.16/JarJarFileSystems-0.3.16.jar --add-modules ALL-MODULE-PATH --add-opens java.base/java.util.jar=cpw.mods.securejarhandler --add-opens java.base/java.lang.invoke=cpw.mods.securejarhandler --add-exports java.base/sun.security.util=cpw.mods.securejarhandler --add-exports jdk.naming.dns/com.sun.jndi.dns=java.naming -Djava.net.preferIPv6Addresses=system -DignoreList=bootstraplauncher-1.1.2.jar,securejarhandler-2.1.4.jar,asm-commons-9.5.jar,asm-util-9.5.jar,asm-analysis-9.5.jar,asm-tree-9.5.jar,asm-9.5.jar,JarJarFileSystems-0.3.16.jar -DlibraryDirectory=libraries -DlegacyClassPath=libraries/cpw/mods/securejarhandler/2.1.4/securejarhandler-2.1.4.jar:libraries/org/ow2/asm/asm/9.5/asm-9.5.jar:libraries/org/ow2/asm/asm-commons/9.5/asm-commons-9.5.jar:libraries/org/ow2/asm/asm-tree/9.5/asm-tree-9.5.jar:libraries/org/ow2/asm/asm-util/9.5/asm-util-9.5.jar:libraries/org/ow2/asm/asm-analysis/9.5/asm-analysis-9.5.jar:libraries/net/minecraftforge/accesstransformers/8.0.4/accesstransformers-8.0.4.jar:libraries/org/antlr/antlr4-runtime/4.9.1/antlr4-runtime-4.9.1.jar:libraries/net/minecraftforge/eventbus/6.0.3/eventbus-6.0.3.jar:libraries/net/minecraftforge/forgespi/6.0.0/forgespi-6.0.0.jar:libraries/net/minecraftforge/coremods/5.0.1/coremods-5.0.1.jar:libraries/cpw/mods/modlauncher/10.0.8/modlauncher-10.0.8.jar:libraries/net/minecraftforge/unsafe/0.2.0/unsafe-0.2.0.jar:libraries/com/electronwill/night-config/core/3.6.4/core-3.6.4.jar:libraries/com/electronwill/night-config/toml/3.6.4/toml-3.6.4.jar:libraries/org/apache/maven/maven-artifact/3.8.5/maven-artifact-3.8.5.jar:libraries/net/jodah/typetools/0.8.3/typetools-0.8.3.jar:libraries/net/minecrell/terminalconsoleappender/1.2.0/terminalconsoleappender-1.2.0.jar:libraries/org/jline/jline-reader/3.12.1/jline-reader-3.12.1.jar:libraries/org/jline/jline-terminal/3.12.1/jline-terminal-3.12.1.jar:libraries/org/spongepowered/mixin/0.8.5/mixin-0.8.5.jar:libraries/org/openjdk/nashorn/nashorn-core/15.3/nashorn-core-15.3.jar:libraries/net/minecraftforge/JarJarSelector/0.3.16/JarJarSelector-0.3.16.jar:libraries/net/minecraftforge/JarJarMetadata/0.3.16/JarJarMetadata-0.3.16.jar:libraries/net/minecraftforge/fmlloader/1.19.2-43.3.0/fmlloader-1.19.2-43.3.0.jar:libraries/net/minecraft/server/1.19.2-20220805.130853/server-1.19.2-20220805.130853-extra.jar:libraries/com/github/oshi/oshi-core/5.8.5/oshi-core-5.8.5.jar:libraries/com/google/code/gson/gson/2.8.9/gson-2.8.9.jar:libraries/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar:libraries/com/google/guava/guava/31.0.1-jre/guava-31.0.1-jre.jar:libraries/com/mojang/authlib/3.11.49/authlib-3.11.49.jar:libraries/com/mojang/brigadier/1.0.18/brigadier-1.0.18.jar:libraries/com/mojang/datafixerupper/5.0.28/datafixerupper-5.0.28.jar:libraries/com/mojang/javabridge/1.2.24/javabridge-1.2.24.jar:libraries/com/mojang/logging/1.0.0/logging-1.0.0.jar:libraries/commons-io/commons-io/2.11.0/commons-io-2.11.0.jar:libraries/io/netty/netty-buffer/4.1.77.Final/netty-buffer-4.1.77.Final.jar:libraries/io/netty/netty-codec/4.1.77.Final/netty-codec-4.1.77.Final.jar:libraries/io/netty/netty-common/4.1.77.Final/netty-common-4.1.77.Final.jar:libraries/io/netty/netty-handler/4.1.77.Final/netty-handler-4.1.77.Final.jar:libraries/io/netty/netty-resolver/4.1.77.Final/netty-resolver-4.1.77.Final.jar:libraries/io/netty/netty-transport/4.1.77.Final/netty-transport-4.1.77.Final.jar:libraries/io/netty/netty-transport-classes-epoll/4.1.77.Final/netty-transport-classes-epoll-4.1.77.Final.jar:libraries/io/netty/netty-transport-native-epoll/4.1.77.Final/netty-transport-native-epoll-4.1.77.Final-linux-x86_64.jar:libraries/io/netty/netty-transport-native-epoll/4.1.77.Final/netty-transport-native-epoll-4.1.77.Final-linux-aarch_64.jar:libraries/io/netty/netty-transport-native-unix-common/4.1.77.Final/netty-transport-native-unix-common-4.1.77.Final.jar:libraries/it/unimi/dsi/fastutil/8.5.6/fastutil-8.5.6.jar:libraries/net/java/dev/jna/jna/5.10.0/jna-5.10.0.jar:libraries/net/java/dev/jna/jna-platform/5.10.0/jna-platform-5.10.0.jar:libraries/net/sf/jopt-simple/jopt-simple/5.0.4/jopt-simple-5.0.4.jar:libraries/org/apache/commons/commons-lang3/3.12.0/commons-lang3-3.12.0.jar:libraries/org/apache/logging/log4j/log4j-api/2.17.0/log4j-api-2.17.0.jar:libraries/org/apache/logging/log4j/log4j-core/2.17.0/log4j-core-2.17.0.jar:libraries/org/apache/logging/log4j/log4j-slf4j18-impl/2.17.0/log4j-slf4j18-impl-2.17.0.jar:libraries/org/slf4j/slf4j-api/1.8.0-beta4/slf4j-api-1.8.0-beta4.jar cpw.mods.bootstraplauncher.BootstrapLauncher --launchTarget forgeserver --fml.forgeVersion 43.3.0 --fml.mcVersion 1.19.2 --fml.forgeGroup net.minecraftforge --fml.mcpVersion 20220805.130853 [00:02:42] [main/INFO] [cp.mo.mo.Launcher/MODLAUNCHER]: ModLauncher running: args [--launchTarget, forgeserver, --fml.forgeVersion, 43.3.0, --fml.mcVersion, 1.19.2, --fml.forgeGroup, net.minecraftforge, --fml.mcpVersion, 20220805.130853] [00:02:42] [main/INFO] [cp.mo.mo.Launcher/MODLAUNCHER]: ModLauncher 10.0.8+10.0.8+main.0ef7e830 starting: java version 17.0.10 by Eclipse Adoptium; OS Linux arch amd64 version 6.1.0-12-amd64 [00:02:43] [main/INFO] [mixin/]: SpongePowered MIXIN Subsystem Version=0.8.5 Source=union:/home/container/libraries/org/spongepowered/mixin/0.8.5/mixin-0.8.5.jar%2363!/ Service=ModLauncher Env=SERVER [00:02:43] [main/WARN] [ne.mi.fm.lo.mo.ModFileParser/LOADING]: Mod file /home/container/libraries/net/minecraftforge/fmlcore/1.19.2-43.3.0/fmlcore-1.19.2-43.3.0.jar is missing mods.toml file [00:02:43] [main/WARN] [ne.mi.fm.lo.mo.ModFileParser/LOADING]: Mod file /home/container/libraries/net/minecraftforge/javafmllanguage/1.19.2-43.3.0/javafmllanguage-1.19.2-43.3.0.jar is missing mods.toml file [00:02:43] [main/WARN] [ne.mi.fm.lo.mo.ModFileParser/LOADING]: Mod file /home/container/libraries/net/minecraftforge/lowcodelanguage/1.19.2-43.3.0/lowcodelanguage-1.19.2-43.3.0.jar is missing mods.toml file [00:02:43] [main/WARN] [ne.mi.fm.lo.mo.ModFileParser/LOADING]: Mod file /home/container/libraries/net/minecraftforge/mclanguage/1.19.2-43.3.0/mclanguage-1.19.2-43.3.0.jar is missing mods.toml file [00:02:44] [main/WARN] [ne.mi.ja.se.JarSelector/]: Attempted to select two dependency jars from JarJar which have the same identification: Mod File: and Mod File: . Using Mod File: [00:02:44] [main/WARN] [ne.mi.ja.se.JarSelector/]: Attempted to select a dependency jar for JarJar which was passed in as source: resourcefullib. Using Mod File: /home/container/mods/resourcefullib-forge-1.19.2-1.1.24.jar [00:02:44] [main/INFO] [ne.mi.fm.lo.mo.JarInJarDependencyLocator/]: Found 13 dependencies adding them to mods collection Latest log [29Mar2024 00:02:42.803] [main/INFO] [cpw.mods.modlauncher.Launcher/MODLAUNCHER]: ModLauncher running: args [--launchTarget, forgeserver, --fml.forgeVersion, 43.3.0, --fml.mcVersion, 1.19.2, --fml.forgeGroup, net.minecraftforge, --fml.mcpVersion, 20220805.130853] [29Mar2024 00:02:42.805] [main/INFO] [cpw.mods.modlauncher.Launcher/MODLAUNCHER]: ModLauncher 10.0.8+10.0.8+main.0ef7e830 starting: java version 17.0.10 by Eclipse Adoptium; OS Linux arch amd64 version 6.1.0-12-amd64 [29Mar2024 00:02:43.548] [main/INFO] [mixin/]: SpongePowered MIXIN Subsystem Version=0.8.5 Source=union:/home/container/libraries/org/spongepowered/mixin/0.8.5/mixin-0.8.5.jar%2363!/ Service=ModLauncher Env=SERVER [29Mar2024 00:02:43.876] [main/WARN] [net.minecraftforge.fml.loading.moddiscovery.ModFileParser/LOADING]: Mod file /home/container/libraries/net/minecraftforge/fmlcore/1.19.2-43.3.0/fmlcore-1.19.2-43.3.0.jar is missing mods.toml file [29Mar2024 00:02:43.877] [main/WARN] [net.minecraftforge.fml.loading.moddiscovery.ModFileParser/LOADING]: Mod file /home/container/libraries/net/minecraftforge/javafmllanguage/1.19.2-43.3.0/javafmllanguage-1.19.2-43.3.0.jar is missing mods.toml file [29Mar2024 00:02:43.877] [main/WARN] [net.minecraftforge.fml.loading.moddiscovery.ModFileParser/LOADING]: Mod file /home/container/libraries/net/minecraftforge/lowcodelanguage/1.19.2-43.3.0/lowcodelanguage-1.19.2-43.3.0.jar is missing mods.toml file [29Mar2024 00:02:43.878] [main/WARN] [net.minecraftforge.fml.loading.moddiscovery.ModFileParser/LOADING]: Mod file /home/container/libraries/net/minecraftforge/mclanguage/1.19.2-43.3.0/mclanguage-1.19.2-43.3.0.jar is missing mods.toml file [29Mar2024 00:02:44.033] [main/WARN] [net.minecraftforge.jarjar.selection.JarSelector/]: Attempted to select two dependency jars from JarJar which have the same identification: Mod File: and Mod File: . Using Mod File: [29Mar2024 00:02:44.034] [main/WARN] [net.minecraftforge.jarjar.selection.JarSelector/]: Attempted to select a dependency jar for JarJar which was passed in as source: resourcefullib. Using Mod File: /home/container/mods/resourcefullib-forge-1.19.2-1.1.24.jar [29Mar2024 00:02:44.034] [main/INFO] [net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator/]: Found 13 dependencies adding them to mods collection
    • I am unable to do that. Brigadier is a mojang library that parses commands.
  • Topics

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.