It is a straight port of VoxelSniper version 5 to Sponge 1.10.2, All brushes are implemented with the exception of the stencil list brush.
Notable changes over the last version (Version 5.171.0)
Brush sizes are now floating point, this removes the need for any true circle arguments on brushes.
/v and /vr now take a block type or block state id not a number. This is for technical reasons but I will soon add an alias system so that you can alias names for the block types and I’ll add a config option for adding aliases for all the old numerical ids soon. The blocktype ids are just the block name, the blockstate ids are name[key=value] so for example stone[variant=granite]. You can of course still just type /v while looking at a block and it will set your material to that block.
The stencil brush now saves as schematics (currently in the sponge schematic format but I’ll add config for using legacy MCEdit schematics as well). If you have old stencils that you want to migrate place the stencils folder in /config/voxelsniper and it will be auto-migrated on server start.
/vi and /vir/ are currently unused as are the ink performers, however I have some ideas to try with placing/replacing by blockstate key which might be interesting.
Almost every brush was completely rewritten from scratch so there should be an across the board performance increase from better programming practices.
I could make a build targeting 1.8.9 if there is interest but it would be without certain features such as the stencil brush which relies on features added only to the 1.10.2 version of sponge.
I’ve backported a version to spongeapi 4.2.0-SNAPSHOT (the latest 1.8.9 builds), it can be found here: http://ci.voxelmodpack.com/job/VoxelSniper-1.8.9/ It includes all featues of the 1.10.2 build except the stencil brush.
I can’t use the errode options at Y11 or lower, functionality starts at Y12.
This error shows up in the console when I try;
[details=Summary]
09.09 17:08:25 [Multicraft] Skipped 36 lines due to rate limit (60/s)
09.09 17:08:25 [Server] Server thread/ERROR [voxelsniper]: Error performing brush Erode
09.09 17:08:25 [Server] Server thread/INFO [STDERR]: [com.thevoxelbox.voxelsniper.Sniper:snipe:251]: org.spongepowered.api.util.PositionOutOfBoundsException: Position is out of bounds: expected in range (-30000000, 0, -30000000) to (29999999, 255, 29999999) but got (-861, -9, -651)
09.09 17:08:25 [Server] Server thread/INFO [STDERR]: [com.thevoxelbox.voxelsniper.Sniper:snipe:251]: at net.minecraft.world.World.checkBlockBounds(World.java:694)
09.09 17:08:25 [Server] Server thread/INFO [STDERR]: [com.thevoxelbox.voxelsniper.Sniper:snipe:251]: at net.minecraft.world.World.getBlock(World.java:363)
09.09 17:08:25 [Server] Server thread/INFO [STDERR]: [com.thevoxelbox.voxelsniper.Sniper:snipe:251]: at com.thevoxelbox.voxelsniper.brush.terrain.ErodeBrush.erosion(ErodeBrush.java:78)
09.09 17:08:25 [Server] Server thread/INFO [STDERR]: [com.thevoxelbox.voxelsniper.Sniper:snipe:251]: at com.thevoxelbox.voxelsniper.brush.terrain.ErodeBrush.arrow(ErodeBrush.java:207)
09.09 17:08:25 [Server] Server thread/INFO [STDERR]: [com.thevoxelbox.voxelsniper.Sniper:snipe:251]: at com.thevoxelbox.voxelsniper.brush.Brush.perform(Brush.java:74)
09.09 17:08:25 [Server] Server thread/INFO [STDERR]: [com.thevoxelbox.voxelsniper.Sniper:snipe:251]: at com.thevoxelbox.voxelsniper.Sniper.snipe(Sniper.java:247)
09.09 17:08:25 [Server] Server thread/INFO [STDERR]: [com.thevoxelbox.voxelsniper.Sniper:snipe:251]: at com.thevoxelbox.voxelsniper.VoxelSniperListener.onPlayerInteract(VoxelSniperListener.java:51)
09.09 17:08:25 [Server] Server thread/INFO [STDERR]: [com.thevoxelbox.voxelsniper.Sniper:snipe:251]: at org.spongepowered.common.event.listener.SecondaryListener_VoxelSniperListener_onPlayerInteract63.handle(Unknown Source)
09.09 17:08:25 [Server] Server thread/INFO [STDERR]: [com.thevoxelbox.voxelsniper.Sniper:snipe:251]: at org.spongepowered.common.event.RegisteredListener.handle(RegisteredListener.java:95)
09.09 17:08:25 [Server] Server thread/INFO [STDERR]: [com.thevoxelbox.voxelsniper.Sniper:snipe:251]: at org.spongepowered.mod.event.SpongeModEventManager.post(SpongeModEventManager.java:201)
09.09 17:08:25 [Server] Server thread/INFO [STDERR]: [com.thevoxelbox.voxelsniper.Sniper:snipe:251]: at org.spongepowered.mod.event.SpongeModEventManager.post(SpongeModEventManager.java:184)
09.09 17:08:25 [Server] Server thread/INFO [STDERR]: [com.thevoxelbox.voxelsniper.Sniper:snipe:251]: at org.spongepowered.mod.event.SpongeModEventManager.post(SpongeModEventManager.java:229)
09.09 17:08:25 [Server] Server thread/INFO [STDERR]: [com.thevoxelbox.voxelsniper.Sniper:snipe:251]: at org.spongepowered.mod.event.SpongeModEventManager.post(SpongeModEventManager.java:214)
09.09 17:08:25 [Server] Server thread/INFO [STDERR]: [com.thevoxelbox.voxelsniper.Sniper:snipe:251]: at org.spongepowered.common.SpongeImpl.postEvent(SpongeImpl.java:129)
09.09 17:08:25 [Server] Server thread/INFO [STDERR]: [com.thevoxelbox.voxelsniper.Sniper:snipe:251]: at org.spongepowered.common.event.SpongeCommonEventFactory.callInteractBlockEventSecondary(SpongeCommonEventFactory.java:633)
09.09 17:08:25 [Server] Server thread/INFO [STDERR]: [com.thevoxelbox.voxelsniper.Sniper:snipe:251]: at org.spongepowered.common.event.SpongeCommonEventFactory.callInteractBlockEventSecondary(SpongeCommonEventFactory.java:628)
09.09 17:08:25 [Server] Server thread/INFO [STDERR]: [com.thevoxelbox.voxelsniper.Sniper:snipe:251]: at net.minecraft.network.NetHandlerPlayServer.func_147346_a(NetHandlerPlayServer.java:571)
09.09 17:08:25 [Server] Server thread/INFO [STDERR]: [com.thevoxelbox.voxelsniper.Sniper:snipe:251]: at net.minecraft.network.play.client.C08PacketPlayerBlockPlacement.func_148833_a(SourceFile:59)
09.09 17:08:25 [Server] Server thread/INFO [STDERR]: [com.thevoxelbox.voxelsniper.Sniper:snipe:251]: at net.minecraft.network.play.client.C08PacketPlayerBlockPlacement.func_148833_a(SourceFile:10)
09.09 17:08:25 [Server] Server thread/INFO [STDERR]: [com.thevoxelbox.voxelsniper.Sniper:snipe:251]: at org.spongepowered.common.network.PacketUtil.onProcessPacket(PacketUtil.java:121)
09.09 17:08:25 [Server] Server thread/INFO [STDERR]: [com.thevoxelbox.voxelsniper.Sniper:snipe:251]: at net.minecraft.network.PacketThreadUtil$1.redirect$onProcessPacket$0(SourceFile:39)
09.09 17:08:25 [Server] Server thread/INFO [STDERR]: [com.thevoxelbox.voxelsniper.Sniper:snipe:251]: at net.minecraft.network.PacketThreadUtil$1.run(SourceFile:13)
09.09 17:08:25 [Server] Server thread/INFO [STDERR]: [com.thevoxelbox.voxelsniper.Sniper:snipe:251]: at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
09.09 17:08:25 [Server] Server thread/INFO [STDERR]: [com.thevoxelbox.voxelsniper.Sniper:snipe:251]: at java.util.concurrent.FutureTask.run(FutureTask.java:266)
09.09 17:08:25 [Server] Server thread/INFO [STDERR]: [com.thevoxelbox.voxelsniper.Sniper:snipe:251]: at net.minecraft.util.Util.func_181617_a(SourceFile:44)
09.09 17:08:25 [Server] Server thread/INFO [STDERR]: [com.thevoxelbox.voxelsniper.Sniper:snipe:251]: at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:660)
09.09 17:08:25 [Server] Server thread/INFO [STDERR]: [com.thevoxelbox.voxelsniper.Sniper:snipe:251]: at net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:344)
09.09 17:08:25 [Server] Server thread/INFO [STDERR]: [com.thevoxelbox.voxelsniper.Sniper:snipe:251]: at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:605)
09.09 17:08:25 [Server] Server thread/INFO [STDERR]: [com.thevoxelbox.voxelsniper.Sniper:snipe:251]: at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:481)
09.09 17:08:25 [Server] Server thread/INFO [STDERR]: [com.thevoxelbox.voxelsniper.Sniper:snipe:251]: at java.lang.Thread.run(Thread.java:745)[/details]
Also whenever I try to do item ID’s (/v 2 for example) it says material not found. I can look at the material and do /v , or type the item name though. Same with /vr.
Oh, also the /b over d(number) is a bit odd now, because it also paints over water, and leaves, was wondering if that was on purpose or if there’s a way around it?
First issue: looks like some bounds checks that I forgot.
Second issue: is because sponge doesn’t have numerical ids (since minecraft doesn’t either post 1.7) you have to type in the id of the block or state. Although an aliasing feature is planned sometime in the future.
[01:03:07] [Server thread/ERROR] [Sponge]: Could not pass InteractBlockEvent$Secondary$MainHand$Impl to Plugin{id=voxelsniper, name=VoxelSniper, version=8.0.0, source=/minecraft/mods/VoxelSniper-8.0.0-SNAPSHOT.jar}
java.lang.NoClassDefFoundError: org/spongepowered/api/world/schematic/BlockPaletteTypes
at com.thevoxelbox.voxelsniper.util.BlockBuffer.<init>(BlockBuffer.java:36) ~[BlockBuffer.class:?]
at com.thevoxelbox.voxelsniper.brush.terrain.ErodeBrush.erosion(ErodeBrush.java:67) ~[ErodeBrush.class:?]
at com.thevoxelbox.voxelsniper.brush.terrain.ErodeBrush.powder(ErodeBrush.java:214) ~[ErodeBrush.class:?]
at com.thevoxelbox.voxelsniper.brush.Brush.perform(Brush.java:78) ~[Brush.class:?]
at com.thevoxelbox.voxelsniper.Sniper.snipe(Sniper.java:249) ~[Sniper.class:?]
at com.thevoxelbox.voxelsniper.VoxelSniperListener.onPlayerInteract(VoxelSniperListener.java:52) ~[VoxelSniperListener.class:?]
at org.spongepowered.common.event.listener.MainHandListener_VoxelSniperListener_onPlayerInteract41.handle(Unknown Source) ~[?:?]
at org.spongepowered.common.event.RegisteredListener.handle(RegisteredListener.java:95) ~[RegisteredListener.class:1.10.2-2052-5.0.0-BETA-1680]
at org.spongepowered.mod.event.SpongeModEventManager.post(SpongeModEventManager.java:349) [SpongeModEventManager.class:1.10.2-2052-5.0.0-BETA-1680]
at org.spongepowered.mod.event.SpongeModEventManager.post(SpongeModEventManager.java:332) [SpongeModEventManager.class:1.10.2-2052-5.0.0-BETA-1680]
at org.spongepowered.mod.event.SpongeModEventManager.post(SpongeModEventManager.java:377) [SpongeModEventManager.class:1.10.2-2052-5.0.0-BETA-1680]
at org.spongepowered.mod.event.SpongeModEventManager.post(SpongeModEventManager.java:362) [SpongeModEventManager.class:1.10.2-2052-5.0.0-BETA-1680]
at org.spongepowered.common.SpongeImpl.postEvent(SpongeImpl.java:138) [SpongeImpl.class:1.10.2-2052-5.0.0-BETA-1680]
at org.spongepowered.common.event.SpongeCommonEventFactory.callInteractBlockEventSecondary(SpongeCommonEventFactory.java:272) [SpongeCommonEventFactory.class:1.10.2-2052-5.0.0-BETA-1680]
at org.spongepowered.common.event.SpongeCommonEventFactory.callInteractBlockEventSecondary(SpongeCommonEventFactory.java:262) [SpongeCommonEventFactory.class:1.10.2-2052-5.0.0-BETA-1680]
at net.minecraft.server.management.PlayerInteractionManager.handler$onProcessRightClick$0(PlayerInteractionManager.java:92) [lv.class:?]
at net.minecraft.server.management.PlayerInteractionManager.func_187250_a(PlayerInteractionManager.java) [lv.class:?]
at net.minecraft.network.NetHandlerPlayServer.func_147346_a(NetHandlerPlayServer.java:710) [me.class:?]
at net.minecraft.network.play.client.CPacketPlayerTryUseItem.func_148833_a(SourceFile:32) [jk.class:?]
at net.minecraft.network.play.client.CPacketPlayerTryUseItem.func_148833_a(SourceFile:9) [jk.class:?]
at org.spongepowered.common.network.PacketUtil.onProcessPacket(PacketUtil.java:118) [PacketUtil.class:1.10.2-2052-5.0.0-BETA-1680]
at net.minecraft.network.PacketThreadUtil$1.redirect$onProcessPacket$0(SourceFile:39) [fl$1.class:?]
at net.minecraft.network.PacketThreadUtil$1.run(SourceFile:13) [fl$1.class:?]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_92-internal]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_92-internal]
at net.minecraft.util.Util.func_181617_a(SourceFile:45) [h.class:?]
at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:668) [MinecraftServer.class:?]
at net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:387) [ld.class:?]
at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:613) [MinecraftServer.class:?]
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:471) [MinecraftServer.class:?]
at java.lang.Thread.run(Thread.java:745) [?:1.8.0_92-internal]
I’ve been experiencing some problems with VoxelSniper with recent API 5.X builds. Specifically, all brushes seem to work only within actual touching range - if I aim for anything farther away, I just get console errors. (It’s on the SCS, I’ll track down an error log if you need).
Do we know a previously working version? Looking over the builds, 1686 is still API 5.X - Is it API 5.X that is causing the issue, or just a change in recent versions?
Hi deamon excuse me replying to an old comment kinda set a account up so i can fix this as i do not understand it at all.
when i do /v 2 (it doesn’t work)
but when i do /v brush 2 its keeps asking for /v [sniper] [material]
see here i want to do the command /v overlay (/v over) but it doesn’t exist)
also what does sniper mean in the above error command?
ah ok that makes more sense but is their a command to do the overlay feature or are you working on implementing that into voxelsniper. It would be cool to add as it essential to have if making awesome terrain