No X-Ray
No_Xray
Not Coming Back Yet
The author who said they were bringing back this plugin actually just stole Orebfuscator and re-published it. That is NOT going to happen under my watch.
NOTICE: I am officially deprecating this project (4/17/12)
What does this mean?
- I believe that this project is too inefficient, too insecure, and too difficult for me to fix to correct these issues.
Why are you doing this?
- I want to free my time for other projects. No need to be hung up here when better alternatives (for both you and me) are out there!
Where should I go now for anti x-ray?
- Use Orebfuscator. The plugin is far better http://dev.bukkit.org/server-mods/orebfuscator/
Is development over?
- Sort of. I won't be developing this plugin actively. I might come back to it later, either when I want to learn more about anti x-ray, although for a while, I will be spending my time elsewhere. I definitely won't be back till late June, due to exams and travel.
What needs to be done to fix the project?
- Vision needs serious debugging. Sometimes, the vision doesn't calculate right.
- Chunk sending needs to be overridden to hide all non-visible blocks on chunk load.
- The efficiency of the ray tracing and searching algorithms need improvement. Perhaps the search could spider out rather than simply iterating through a cuboid?
- Exposure hiding would be a big plus: hiding based on if a block is exposed to a transparent block.
- Auto-shutdown of plugin if the server is getting too laggy.
Can I take over this project?
- Be my guest! If you have submissions/fixes, please tell me. If you want full control of the development, I can give you/add you to the project.
Summary
No X-Ray by FalseVacuum is, as the name suggests, an anti-X-Ray hack plugin. No X-Ray is unlike some plugins in that it actually uses the line-of-sight of the player (sort of) to decide which blocks to hide. While many anti X-Ray plugins check if the given block is surrounded by opaque blocks, No X-Ray checks 8 different line-of-sight paths to the block. If all 8 paths are blocked at any point by an opaque block, the block's type is changed.
Configuration
There are 3 configuration nodes in config.yml:
- objects.transparent - a list of all transparent (see through, non-opaque) objects (defaults to too many objects to list
- objects.hidden - a list of all objects to hide (defaults to chest, diamond ore, moss stone, monster spawner)
- objects.isactuallyopaque - Is the transparent list actually an opaque list
- verbose - This is for debugging. Don't turn this on unless you're a developer
- search.x, y, z - The x, y, and z search distances. These default to 100 each (search.x, search.y, search.z).
- search.gothreadsafe - Choose to test out the experimental thread-safe method. This puts all changeBlockAt() calls in the main thread.
Commands
- /noxray reload - Reload the configuration of the plugin
- /noxray release - Release (disable) the plugin. This allows you to update the plugin without shutting down the server
Permissions
- vacuum.noxray - Gives access to all noxray commands.
- vacuum.noxray.hide - Give this permission to anyone from whom you want to hide things like chests, etc. This defaults to everyone but ops.
Known issues
No X-Ray occasionally will not determine if the desired block is visible or not. More often, it will decide a block is visible if it is not. This is often due to corners being transparent.
This application may or may not be thread-safe
I spoke with Lishid, author of Orebfuscator. He gave me some great tips, and I will do my best to get them into the next update. This will hopefully alleviate some of the issues with blocks appearing/disappearing when they shouldn't. He also spoke to me about some possible vulnerabilities. Implementing them will be a lot of work, but I will do my best to get this plugin up to speed with what it should be!
Performance
While it may seem appealing to make all diamond blocks (id = 56) hidden, remember that there are many, many diamonds. You might benefit from just searching for chests, monster spawners, and moss stone.
You can also try decreasing the search distances. You probably shouldn't go below 25 for any given direction (this gives a dimension of 50 for the cuboid because it is 25 forward, 25 backward)
Another thing you can try is reducing the number of people that have vacuum.noxray.hide. Set this permission to false on people you trust.
Source
Curious about how this plugin works? Ask in the comments below or dive into the source!
@ezbik
This is caused when you share a block that is being examined. I forget exactly what has to happen, but it shouldn't be a big deal, unless it happens often.
More or less, the client draws a bunch of lines. If one of the lines has the vector equation of xi + yj + zk + t(0i + 0j + 0k) where i, j, k are the direction vectors, x, y, z elements of Z, there is an exception. Always, the position vector plus the direction vector is the endpoint, so you're sitting on or near the block if you get that exception.
And unless VanishNoPacket allows no-clip, it shouldn't impact this plugin. Also, you should probably reload with /reload. I'm not sure if 1.0.0 caught exceptions in the thread, so it might have crashed the UpdateThread.
Also, since Bukkit is taking forever, here's a link to the GoogleCode downloads page for the project: http://code.google.com/p/vacuum-noxray/downloads/list
Just got this:
I also run Vanish NoPacket, would that be causing that?
For all those having performance issues:
@ezbik
Yeah, I can add that. I didn't think of doing permissions, but that would be an easy way to do it.
The new update, 1.2.4, which I just uploaded, will cover that. In addition, you'll get to change x, y, and z search distance from the config. On top of all that, there were some small internal tweaks to avoid doing as many calculations.
@falsevacuum
Cool, the radius option would be nifty, I also have a custom generated world, so I may have to play around with the block settings in the configuration :) . Could permissions be added to force use of this on a group? I noticed it only has the command perms for now.
@ezbik
Ok. I think I might have mixed up some stuff with the config and whatnot. I should have an update that's efficiency O(n^4log(n)^2) rather than O(n^6), which is what I have right now. Also, I want to allow you to change the search "radius" (actually cube dimensions)
@falsevacuum
I used the default configuration it generated, and when it didn't seem to block anything, turned on verbose, but didn't get any console messages. It was why I didn't have much to give in the way of server logs :(
@Sacredox
That sounds like what I was expecting.
@ezbik
Hmm... did you let it download the default config? Also, try putting verbose on. It will say what blocks it's hiding.
Also, the release disables the plugin, so /reload is required to reload the plugin.
Seemed to enable, but didn't hide anything. Seemed to load in the console fine, but could still see everything. Tried also putting the transparent blocks in the configuration as hidden, but that seemed to have no effect either. Had a few say there was lag, but only about 4 people on at the time, one of them testing to see if it worked or not. The console seemed to only spit back this when doing a /noxray reload
After releasing it, it would not reload either. :/
This plugin sounds awesome. I tested it with about 10 people online and unfortunately the CPU usage went through the roof and people started screaming lag. When I disabled it everything went back to normal.
I have no effect on my server
@imilkywayz
"line of sight" as I use it doesn't have to do with where you are facing but what you can see if you did a 360 degree turn from your position. If you can't see it, it's hidden.
Also, freecam would have no effect, as it is essentially x-ray. What you would see is an air pocket instead of the item. I would like to consider other options, such as each object having a dummy block it maps or, or mimicking the environment.
3rd person mode...? Does line of sight switch when you go into a 3rd person? What about free cam? Because the nodus client is increasingly popular
@ezbik
I await your feedback!
I may give this a shot tonight, will report back :)
@Pandamatak
Oh, yes it does :D
That's what I tested it on (then I got my brother to use his X-Ray mod on it).
X-Ray texture packs can see less than X-Ray mods.
@selfservice0
Please give me feedback. I'm worried about how this will handle in a high server-load.
Guessing this doesn't prevent X-Ray texture packs? (which I believe is possible)
If it does (somehow), please PM me!
Look forward to testing it out=P