maruohon / tweakeroo

A client-side Minecraft mod that adds various "tweaks" (= usually small-ish individual features)
GNU Lesser General Public License v3.0
475 stars 130 forks source link

Flexible Block Placement doesn't work on server #3

Open flier268 opened 5 years ago

flier268 commented 5 years ago

tweakeroo-rift-1.13.2-0.9.2.jar server:mcfallout.net minecraft version:1.13.2 rift:1.0.4-77

can work on single player,but server

maruohon commented 5 years ago

The offset mode of the Flexible Block Placement, as well as the Fast Block Placement tweak work by clicking on air blocks. Some servers, at least Spigot/Paper simply don't allow this, as it's part of their cheat prevention. So for the offset placement there is nothing I can do in the mod to fix that, I'm pretty sure.

But for the Fast Placement tweak there is a new option planned to just click on the targeted block instead of offsetting the click position to the air block, but I don't know when I'll have the time to work on that, as the placement code is rather complex and needs to be rewritten completely to properly support this change.

flier268 commented 5 years ago

Yes,it is Spigot server. I am so sad about this problem.

By the way, I heard that minecraft's server doesn't care about the direction the player is facing when placing the box, as long as it is around the player. example:https://github.com/RecursiveG/AutoHarvestMod

maruohon commented 5 years ago

Well that mod is a different case as the player rotation makes no difference, it's just the position the player clicks on. But are you sure even that works on Spigot?

In MC 1.12 and lower the placement orientation of certain blocks could be controlled by faking the player's rotation, but the code for that changed a bit in 1.13 and that no longer works. That's why the flexible placement orientation won't work anymore either in 1.13+ for certain blocks, such as pistons even between horizontal rotations, like it still did in 1.12.x :/

flier268 commented 5 years ago

https://github.com/TsukiPoi/AutoHarvestMod-Rift I have already test it,1.13.2 is work on Spigot server!

maruohon commented 5 years ago

But the difference is that that mod would be clicking on the farmland and not air blocks. Tweakeroo's Flexible and Fast Block Placement tweaks currently fake right clicking on the actual target position's air block. And Spigot doesn't allow that.

flier268 commented 5 years ago

It's a pity

flier268 commented 5 years ago

I got a solution, for example: modify player.yaw=180 to the facing north in first tick, then,place block in next tick

I had test it on spigot

spacewulf commented 4 years ago

So does that fix it in all scenarios?

maruohon commented 4 years ago

Posibly yes, but it also means that the player will be facing in a different direction on the server for a few ticks. And due to network delays or server lag the mod might need to delay the block placement packet by several more ticks after sending the rotation packet, which would make the block placement on the server happen with a rather significant delay as well, in addition to the player rotation weirdness that will be noticeable by other players at least. And if Spigot does a ray trace from the player to the target position, then this wouldn't work anyway if you just flip the rotation to the required rotation for the block orientation, as then the player might be looking in the opposite direction from the target position...

LUKDUCK commented 3 years ago

Hey, I used to be on a spigot server but changed it to Vanilla. THe problem is the flexible block placement still is not working. Do you know why or a way around. If you could please respond that would be awesome .

maruohon commented 3 years ago

@LUKDUCK The rotation features (in most cases) currently would need a specific mod on the server to handle the rotation request. As of right now there are two mods that can handle that: QuickCarpet, or the CarpetExtra extension to FabricCarpet. However this support is also going to be added to my Servux mod at some point in the soon-ish future, as that mod is supposed to handle all the server-side support for my client mods in one mod.

There are a small number of blocks that can also be rotated with the rotation mode of the Flexible Block Placement feature even on vanilla servers - those are blocks that only care about the block side that you click on, and not the player facing. Examples are the Hopper, any wood logs, quartz pillars etc.

I will also try to add fallback support for spoofing the player facing to future versions of Tweakeroo (after I rewrite all the placement related code), which should allow the rotations to work on any servers, at least to some extent/for some blocks. But full/proper rotation support will always require one of the above mentioned server-side mods (preferably Servux, once it actually gets support for this).

LUKDUCK commented 3 years ago

Ok, so if I want to change the direction a piston is facing I would have to get on of those two mods. I was testing the the flexible block placement with a piston. Thank you very much.

maruohon commented 3 years ago

Yes. If you don't have any preference of your own, I would suggest QuickCarpet, as I believe the accurate block placement protocol support in it is better than in CarpetExtra. In either case you will need to enable that support in Carpet by running the command /carpet setDefault accurateBlockPlacement true.

LUKDUCK commented 3 years ago

Thank you SOOOOOOOOO much.

LUKDUCK commented 3 years ago

Sorry to bother you again, but i'm downloading quick carpet and on this page https://github.com/DeadlyMC/QuickCarpet114. It says to to click on the quick carpet jar which i cant find.

maruohon commented 3 years ago

Do you mean the bit about getting snapshots from the GitHub Actions? Ignore that, unless you want to specifically use the latest builds instead of the latest release. Just get the latest version from Releases, currently this: https://github.com/DeadlyMC/QuickCarpet114/releases/download/v3.0.0-dev-1.16/quickcarpet-3.0.0-dev+b927d4c.jar

LUKDUCK commented 3 years ago

Perfect, Thank you again

LUKDUCK commented 3 years ago

i have it in my mods folder but the command says it is unknown. Does it use fabric because I use Fabric

when trying to open the jar file it says "Check Console For Possible Errors

LUKDUCK commented 3 years ago

Sorry to bother you so much but I am pretty lost. Do I need to download capet and then the quick carpet. Do I have to make my server a Carpet server. What do i need to do to be able to change the direction of a piston or observer. I don't really know a ton about this stuff. Sorry.

maruohon commented 3 years ago

QuickCarpet is a Fabric mod, yes. So if your server runs Fabric, then you just put the QuickCarpet jar file in the mods/ folder, and after that the command should exist. QuickCarpet is a separate version of a "Carpet mod" from FabricCarpet, and both of them can not be used at the same time, as they do lots of the same things.

Do you have other mods currently that are working? You are starting the server via the fabric launcher jar that the installer creates, and not directly via the vanilla jar?

LUKDUCK commented 3 years ago

I have tweakeroo, litamica, and fabric otifine. I do not know what my server is starting up with. It is a shockbyte server. I run my minecraft with fabric. I have my server type to vanilla so my guess is it runs the default vanilla. I have my server connected to fileZila. Where could I find what jar my server is starting up. If I have to change the whole server to fabric, and if that would mess up other things. It is ok, and I might just use it how I have It. Thanks for the help.

maruohon commented 3 years ago

@LUKDUCK You might want to join the SciCraft Discord server (https://discord.gg/scicraft) for extra help with those things, as each message here also sends an email notification to the other participants by default, and that stuff is not directly related to this issue anymore.