OpenBlocks

OpenBlocks

56M Downloads

Enhanced Building Guide Cannot Build

tprussak opened this issue ยท 33 comments

commented

Despite what the guide says, clicking on the enhanced building guide with blocks will not build them in the shape the guide is set to.

commented

Well, this was recorded in current version: https://www.youtube.com/watch?v=zUf_p8zvovM

Things to check:

  • you have permission to place blocks in that chunk
  • there are no weird plugins that block placing blocks more than few blocks from you
  • your shape isn't to small - blocks adjacent to guide are not filled
commented

im also getting the same issue with my mod pack but only seems to be on servers. But im not sure if its plugins stopping it or only on my server and i havent tested in other servers yet, but it does work in single player . here is the issue thing for it https://github.com/MJRLegends/Space-Astronomy-Feedback-/issues/250.

Im going to do more testing to see if its a plugin stopping it working

commented

Well, there is no errors/logs of when exactly it happens. Seems that it doesn't work due to the way that Bukkit prevents against cheatings. Why does fake players are risky? Just check if who is clicking has the permission, if it has, the fake player do its work :|

commented

@boq yeah there is no error in logs, switching to a fake player would be the only option...

commented

Minecraft has block placement range and IIRC (it's been 4 months already, can't find the link now) Bukkit just enforces it.

commented

Fake players are... well, fake. So they are missing some stuff (network handler, client presence), which may lead to invalid behaviour with some of the more advanced/magic blocks. But that probably applies only to few percent of blocks.

Anyway, if I switch to fake player, all blocks would be placed by fake player (one of 10 in openmods pool, depends on config). I'm not sure what the usual config is, but I can imagine that leaving block placing permissions on fake players would be gift for griefers (What if I use one to fill whole protected area with obsidian? Checking "click" permission on guide itself does not prevent this, since placer on the outside of protection area could sill place block on the inside).

Now, what if I check permissions using actual player, then place block with fake one? Pointless, since block will be still placed with potentially blocked fake player.

Also, what if "far click" protection, that currently blocks guide placing, is implemented via permission that can be checked from Forge API? Then no matter what I will check, it will always be blocked.

RE: MC built-in protection - couldn't find it in vanilla Forge, it's either bugged in vanilla or disabled by Forge patches.

commented

@boq Honestly the griefing issue is down to the server owner as its only a non forge issue so they would be using a plugin like https://github.com/KaiKikuchi/GriefPreventionPlus , a suggestion might be to make a config option to make it a fake player and make it false by default or make some kinda of detecting system to if bukkit/spigot are running....

commented

Forge specifically added events for item use and block checking so I guess there are pure-Forge area protection mods (or even vanilla mechanics - see spawn protection and remember that fake players can't be opped).

Anyway, IIRC permission was my initial argumentation, and I never expected this kind of protection - which IMO is way to restrictive: yes, user input should be validated, but why block action that originates from server?

I guess I can make option for fake players, but, well, who reads configs?

commented

I have the same issue. Why not implement the fake player?

commented

First of all, it's better to use actual player - fake players are always risky.

Secondary issue is that this problem manifests only on non-Forge servers. We don't usually support that (expect for crash prevention), since it's hard to test in all configurations.

Also, this is all just a hypothesis - I haven't confirmed, what actually happens.

commented

Well, this block became useless in non-forge servers, I thought you were developing a fix or so, but ok, thanks by your nice work anyway.

commented

I don't have fix, since I don't exactly know what's wrong - would be nice to have some kind of log.

commented

@boq i read them haha

commented

A server owner (the block doesn't work only in forge-based servers) should always read the configs... And cancel placing tile entities, allowing the building guides place only blocks? Wouldn't cause problems, since it won't store player data...

commented

Then, the fake player would only put the block if the PLAYER has permission to build there, right?

commented

@boq only way to tell is test it because idk haha

commented

What about force placing the block, like AE2 formation/anihillation planes does? Then, OpenBlocks could check if the player has permission to place the block, if so, force placing the block?

commented

@Eufranio As I tried to explain, it's impossible to place block with fake player by using actual player permissions. So either I do everything as actual player or as fake. Also, blocking TEs does not help - see my obsidian(or harder stuff) example.

@ALL: Since I don't know what configuration causes this behaviour, I'm not even sure switching to fake player will help. What if this code also does line-of-sight test? And what's the safe distance? Is rapidly moving fake player also suspicious action?

commented

@MJRLegends As I said, I can't test because I don't know which of the multiple server solution should I use. Generally that's the reason for not supporting bukkit-style servers - way to much solutions.

commented

Thermos is the most used/stable/supported one

commented

@boq and @Eufranio yeah you can find the downloads here for the server thermos jar https://github.com/CyberdyneCC/Thermos/releases

commented

@boq I know your probably busy but have you had time to look at the issue?

commented

I am having this issue as well after just finding out about this awesome mod.

Using OpenBlocks-1.7.10-1.6 on my custom 1.7.10 tekkit legends server, custom as I added a few extra mods like enderio, tehcguns, etc. I can get it to show ghost blocks, but can't get it to place block using the enhanced guide. I do use a claim type plugin for my thermos setup but ive tested inside and out of the claim. Players can build anywhere in the world without ever using claims so I know it's not an issue there. What can I do? Here is a full list of plugins and mods being used. All are the very most recent versions so nothing is out of date.

Here is list again as pastebin remove my old one https://hastebin.com/iqunuseduc.py

commented

Singpleplayer works when you are in creative with or without obsidian. Multiplayer only work with obsidian and creative mode. I have removed all plugins so I can at least rule that out. No errors or mod conflicts.

commented

As stated above, it's an issue with forge-based servers with the Bukkit API (aka Thermos). I still agree with implementing a fake player ๐Ÿ˜„

commented

Ah, I guess I overlooked that comment, my apologies. Is there a known reason for conflict? I mean it does work when you switch to creative while on the survival server. That being said, I also think a fake player option would be a good solution as many other very popular mods run very well using them. Even having it off by default but allowing it to be enabled. Hope this happens but for now I will try and use it like it was originally and not with building support. Great mod either way.

commented

Yes, currently OpenBlocks uses the explicit player to "place" the blocks, and bukkit doesn't allow the player to place blocks far from its location, so the place is cancelled every time OpenBlocks tries to place a block. When you're in creative mode, it doesn't uses the player to place the block, it simply sets like when you use the /setblock command.

commented

I have no luck in reproducing it, so I guess it's time for "stupid" questions:

  • maybe it's just basic building guide (one without spinning particles inside)? (just basic sanity check)
  • what's the shape and dimensions?
  • does it work outside spawn server spawn area?
commented
Software Version
Thermos 1.7.10-1614.57
FTB Infnity Evolved 2.5.0
OpenBlocks 1.5.1
FTBUtilities 1.7.10-1.0.17.6

WorldGuard is installed, but claims are configured via FTBUtilities.
Server console output empty. Client console output empty. It just does not put blocks. Even in singleplayer without any Bukkit/Spigot/Thermos shenanigans.
It works in creative tho.

commented
  • It's not. Sanity still in place.
  • Tested sphere 12^3 and dome 16^3 and sphere 48^3.
  • It does not (on bukkit/spigot/etc.).

Tho I just re-tested that in single player and it did work for sure. Updated previous comment.
Tested in pure Forge server environment. It works.

So culprit here is somewhere in Bukkit/Spigot/Thermos code. I guess, there would be no support for this cause?

commented

Well, I suspected some kind of grief protection that prevents player from placing block more than X blocks away from current position (I'm using actual player to place blocks, in hope that it will generate less glitches).

I guess I could add option to use fake player instead, but I'm not sure what problems it may generate.

commented

Any reports from 1.10/1.11?

commented

Yes happen in 1.12.2