Orebfuscator
Orebfuscator - Anti X-RAY:
For all releases of 1.9/1.9.1/1.9.2/1.9.4/1.10/1.11/1.12.x/1.13.x: Version 4.4.3
Now with support for CraftBukkit 1.9/1.9.1/1.9.2/1.9.4/1.10/1.11/1.12.x/1.13.x!
This plugin is used to counter X-RAY Client mods.
It modifies data that are sent to clients to hide blocks of your choice, such as Ore, chests, dungeons, etc.
It does not manipulate blocks in the world file, thus is safe to use.
ProximityHider is a feature that hides chests that are far from players.
As of 4.3.3, Proximity Hider has been enhanced to use line-of-sight checks, not just proximity! Upgrade today.
Configuration Guide
https://github.com/lishid/Orebfuscator/wiki/How-to-properly-configure-Orebfuscator
https://github.com/lishid/Orebfuscator/wiki/Configuration-File
FAQ
https://github.com/lishid/Orebfuscator/wiki/FAQ
DOWNLOAD
Please read compatibility information before downloading as not all releases work with all versions of CraftBukkit.
Latest version should be on BukkitDev, or as a release on the Github page: https://github.com/lishid/Orebfuscator/releases
Please also download ProtocolLib and install it in the plugins folder.
- Is compatible only with version 4.0.0 or newer.
- For 1.9.4 support, you must use build 277 or newer of Protocollib 4.0
- For 1.10 support, you must use build 293 or newer of Protocollib 4.0
- For 1.11 support, please use latest stable builds of ProtocolLib for 1.11.
- For 1.12 support, please use ProtocolLib 4.3.0 or newer.
- For 1.13 support, please use ProtocolLib 4.4.0 or newer.
- Download link: https://www.spigotmc.org/resources/protocollib.1997/
- Legacy Link: http://dev.bukkit.org/server-mods/protocollib/
Features
- Advanced algorithm that hides ore, chest and and anything you specify in the configuration
- Spout compatible, but optional
- No modifications to CraftBukkit.jar is needed
- Customize the blocks you want to hide
- HIDES DUNGEONS and other blocks that are in the dark
- Different hiding mode, or scrambling.
- Extensive configuration. Change updating methods depending on your bandwidth and processing speed.
- Hide hidden chests and furnaces until a player is close to it.
- Hide hidden chests and furnaces until a player can see it.
Usage
Install:
- Copy "orebfuscator-4.4.3.jar" to your plugins folder
- If you're upgrading from Orebfuscator.jar, move the contents of the "Orebfuscator3" folder to the "Orebfuscator4" folder
- Restart your server.
Configuration
See this: https://github.com/lishid/Orebfuscator/wiki
Commands
See this: https://github.com/lishid/Orebfuscator/wiki
Permissions
See this: https://github.com/lishid/Orebfuscator/wiki
Source Code
Here you go! (Hosted on Github) - please post issues and requests for help there
Metrics
- This plugin utilizes Hidendra's plugin metrics system, which means that anonymous information of your OS and setup will be collected and sent to mcstats.org
- Opting out of this service can be done by editing plugins/Plugin Metrics/config.yml and changing opt-out to true.
Thanks!
- Aleksey_Terzi, single-handedly updating to CraftBukkit 1.9, 1.11, and 1.12!
- DevotedMC for taking over management of the project
- AFFORESS, major help on code optimization and spout support!
- Lishid, for years(!) of maintaining this plugin, and MarioG1 for recent patch support
- raphfrk, helped with packet processing
- Many donators!
Bugs
- See the issues page for any outstanding problems.
TODO
- A command that generates the world cache for the existing chunks.
Changelog
Version 4.4.3
- Support for Minecraft 1.13.2 latest builds (CraftBukkit/Spigot/etc)
Version 4.4.2
- Fixes for reported issues during use -- please update
Version 4.4.1
- Support for Minecraft 1.13 and 1.13x (CraftBukkit/Spigot/etc)
- Some enhancements under the covers, including better support for tile entity hiding and state management
Version 4.3.3
- Includes fixes for portions of #164
- NEW FEATURE: Gaze based proximity hiding. If you can't see it due to blocks in the way, it stays proximity hid, regardless of your physical closeness! For full details, read here: PR#16
- New example configs! Find them here: https://github.com/lishid/Orebfuscator/tree/master/Plugin/src/main/resources/resources
Version 4.3.0
- Support for Minecraft 1.12 (CraftBukkit/Spigot/etc)
Version 4.2.1
- #135 : Resolved issue that plugin doesn't work unless you delete the config and force reload and clear cache after startup
Version 4.2.0
- Support for Minecraft 1.11 (CraftBukkit/Spigot/etc)
- Remove ChunkReloader due to performance issues at scale.
- Addressed #66. Limit Cache retention configuration options added.
- Proximity Hider blocks are by default orebfuscated, if both are active.
- Implemented #62. Per World Configuration -- have unique configurations per world.
- Addressed DevotedMC#8. Allow for unique proximity Y height per material hidden.
- Fixed #113. Item frames sometime disappeared.
- Fixed #124. Glitches when used FastAsyncWorldEdit.
- Fixed #125. Prevent obfuscation for NPC, for ex. NPC from plugin Citizens.
- Fixed #128. EntityChangeBlockEvent was not causing block updates.
Version 4.1.4
- Fixing ChunkLoader error: https://github.com/lishid/Orebfuscator/issues/110
- Improving performance of ChunkReloader
Version 4.1.2
- It is now possible to use Worlds list either as blacklist (i.e. all worlds are subject for obfuscation excluding listed) or as whitelist (i.e. only listed worlds are subject for obfuscation)
- Fixed bug with using ProximityHider and Signs. It is now possible to add WALL_SIGN and SIGN_POST to ProximityHider obfuscation.
- Updated wiki so commands and configuration pages are matching to the current Orebfuscator.
Version 4.1.1
- Various Small fixes
- Fix which might resolves problem described in https://github.com/lishid/Orebfuscator/issues/100
- Config file now supports block names additionally to IDs
Version 4.1.0
- Support for CB 1.10 - thanks Asgarioth!
Version 4.0.14
- Single jar supports all releases of 1.9.x now!
- Some chunk reload issues are corrected (on teleport, etc.)
Version 4.0.12.1
- Add support for 1.9.4 - this release does not support prior versions.
Version 4.0.12
- Fixed entity list reload issue
Version 4.0.11
- Fixed failure to deobfuscate along chunk boundaries under specific conditions.
Version 4.0.10
- Fixed crash for PaperSpigot servers
Version 4.0.9
- Fixed crash when chunk section (16 x 16 x 16) has more than 127 different block types
- Implemented different "transparent block" lists for Engine Mode 1 and Engine Mode 2. For now only difference is with lava block, for mode 1 it is non-transparent, for mode 2 it is transparent.
- Implemented possibility to specify which blocks are transparent and not in the config file, sections: TransparentBlocks and NonTransparentBlocks.
- Fix which may have solved java.util.ConcurrentModificationException
- Fix for phantom blocks (visible after chunk reloaded) when player is digging straight line on the chunk border.
Version 4.0.7-beta
- Corrected transparent block list. For example, lava blocks marked as transparent and therefore adjacent blocks are not obfuscating anymore
- Improved performance of ProximityHider function
Version 4.0.5-alpha
- Fixes teleport / join in the End causing client-side crashes.
- Fixes failure to deobfuscate immediately on join.
Version 4.0.3-alpha
- Updated to MC1.9.
Full release notes: In Github Release
Version 3.0.5
- Updated to MC1.8.3.
Full history: https:github.com/lishd/Orebfuscator/wiki/Version-History
A quick donation is always appreciated :D
Devoted Patreon or General Inquiry
-
View User Profile
-
Send Message
Posted Apr 14, 2012@lishid
If you don't mind updating the configuration wiki page.
Thanks, :)
-
View User Profile
-
Send Message
Posted Apr 14, 2012@villain22
It might be something within CraftBukkit R1.2
I'm looking into it.
EDIT: Looks like the chunk has been unloaded and deleted before Orebfuscator started processing on it. I'll add some checks to prevent that from happening.
-
View User Profile
-
Send Message
Posted Apr 14, 2012The first failure of a very long time, usually does not have any problems 75online server run 10h and Crash ;( Six core 16GB Ram java 7u3 debian6
2012-04-14 16:00:44 [INFO] This server is running CraftBukkit version git-Bukkit-1.2.5-R1.0-2-ga7fcd2a-b2151jnks (MC: 1.2.5) (Implementing API version 1.2.5-R1.2-SNAPSHOT)
2012-04-14 16:00:45 [INFO] [Orebfuscator] Enabling Orebfuscator v1.4.3 2012-04-14 16:00:45 [INFO] [OFC] Spout not found, using non-Spout mode. 2012-04-14 16:00:45 [INFO] [OFC] Statistics features enabling... 2012-04-14 16:00:45 [INFO] [OFC] Version 1.4.3 enabled!
2012-04-14 15:54:51 [INFO] [AuthMe] Kaleson333 logged in! 2012-04-14 15:54:51 [SEVERE] [OFC] null 2012-04-14 15:54:51 [SEVERE] [OFC] null 2012-04-14 15:54:51 [SEVERE] java.lang.NullPointerException 2012-04-14 15:54:51 [SEVERE] at net.minecraft.server.GenLayerMushroomShore.a(SourceFile:50) 2012-04-14 15:54:51 [SEVERE] at net.minecraft.server.GenLayerSwampRivers.a(SourceFile:12) 2012-04-14 15:54:51 [SEVERE] at net.minecraft.server.GenLayerZoom.a(SourceFile:14) 2012-04-14 15:54:51 [SEVERE] at net.minecraft.server.GenLayerZoom.a(SourceFile:14) 2012-04-14 15:54:51 [SEVERE] at net.minecraft.server.GenLayerSmooth.a(SourceFile:14) 2012-04-14 15:54:51 [SEVERE] at net.minecraft.server.GenLayerRiverMix.a(SourceFile:26) 2012-04-14 15:54:51 [SEVERE] at net.minecraft.server.GenLayerZoomVoronoi.a(SourceFile:18) 2012-04-14 15:54:51 [SEVERE] at net.minecraft.server.WorldChunkManager.a(SourceFile:160) 2012-04-14 15:54:51 [SEVERE] at net.minecraft.server.BiomeCacheBlock.<init>(SourceFile:30) 2012-04-14 15:54:51 [SEVERE] at net.minecraft.server.BiomeCache.a(SourceFile:59) 2012-04-14 15:54:51 [SEVERE] at net.minecraft.server.BiomeCache.c(SourceFile:99) 2012-04-14 15:54:51 [SEVERE] at net.minecraft.server.WorldChunkManager.a(SourceFile:155) 2012-04-14 15:54:51 [SEVERE] at net.minecraft.server.WorldChunkManager.getBiomeBlock(SourceFile:145) 2012-04-14 15:54:51 [SEVERE] at net.minecraft.server.ChunkProviderGenerate.getOrCreateChunk(SourceFile:219) 2012-04-14 15:54:51 [SEVERE] at org.bukkit.craftbukkit.generator.NormalChunkGenerator.getOrCreateChunk(NormalChunkGenerator.java:41) 2012-04-14 15:54:51 [SEVERE] at net.minecraft.server.ChunkProviderServer.getChunkAt(ChunkProviderServer.java:83) 2012-04-14 15:54:51 [SEVERE] at org.bukkit.craftbukkit.CraftWorld.getChunkAt(CraftWorld.java:115) 2012-04-14 15:54:51 [SEVERE] at org.bukkit.craftbukkit.CraftWorld.getBlockAt(CraftWorld.java:79) 2012-04-14 15:54:51 [SEVERE] at lishid.orebfuscator.obfuscation.Calculations.Obfuscate(Calculations.java:398) 2012-04-14 15:54:51 [SEVERE] at lishid.orebfuscator.obfuscation.Calculations.Obfuscate(Calculations.java:189) 2012-04-14 15:54:51 [SEVERE] at lishid.orebfuscator.threading.OrebfuscatorThreadCalculation.run(OrebfuscatorThreadCalculation.java:110)
-
View User Profile
-
Send Message
Posted Apr 13, 2012i running in a 1,5GB with 1 Core Xeon E5350 for 40 people and has no problem either xD
i forgot what it was going to ask D:
-
View User Profile
-
Send Message
Posted Apr 13, 2012@SeeD419
It's just insulting seeing as thousands of servers use this plugin every day and someone come alone and 'urge' everyone else to not use it simply because they had a bad experience personally. (Sorry if this sounded a little offensive, please bear in mind that I'm not addressing you personally. I'm simply a little mad at some other guy who wrote something similar in a more vulgar language a while ago despite having problems with his own server's configuration and capacity)
I'm personally running Orebfuscator on a server with very similar setup (4G ram, 3G for java, core 2 duo 2.0Ghz CPU, 5M network) for 20 people, and it has no problem whatsoever. Note that this is definitely not a good setup for more players than that. It already is capping on CPU usage on rush hours and my network is constantly being filled :P
Did you change anything to the configuration? (one wrong value could hit performance hard) I've seen servers with hundreds of players without problem. Make sure you read the FAQ (link in the OP) and the configuration guide here: https://github.com/lishd/Orebfuscator/wiki/How-to-properly-configure-Orebfuscator
For a simple diagnostic, check how much RAM you're allocating to java (-xmX switch), check how much RAM is being used (use a tool like NoLagg or LagMeter), check how much CPU is being used with people login (task manager?), and check how much network bandwidth is used. You can use tools, depending on your platform, to measure these things easily and find the cause of the problem.
To sum up, if you can provide a plugin list and the configuration file for Orebfuscator, I might be able to help you further.
-
View User Profile
-
Send Message
Posted Apr 13, 2012I've had Orebfuscator 1.4.3 installed for all of about 10 minutes and it's just been a complete catastrophe. I can't see my own chests, furnaces, or workbenches in my own house! They're invisible every time I go home, and I have to hit every one of them to make them visible. Tried disabling the cache and turning proximity hider on, reloading, tried removing blocks from obfuscation, reloading... - neither seems to fix it. Other players are having the same issues - floating items, invisible blocks, etc.
The server was lagging heavily since I installed this, and then eventually locked up. I had to kill -9 craftbukkit in order to free the server from the lockup. I restarted and now users are making claims that they're seeing imaginary ores. Diamond ore and gold ore that appears and then vanishes.
What a nightmare. It actually does prevent x-ray users, but to ruin the gameplay for everyone that doesn't x-ray is too much for me! My server runs out of 4G of memory, on a Core2Duo cpu, with 10mb upload. I would urge anyone else with similar server hardware or below to steer clear of Orebfuscator.
-
View User Profile
-
Send Message
Posted Apr 13, 2012@lishid
Sure thank you I would be pleased to try it ;)
-
View User Profile
-
Send Message
Posted Apr 13, 2012@UnitedFactions
Actually, would you mind trying this again? I have a feeling it might fix it this time... http://dl.dropbox.com/u/18947504/Orebfuscator.jar
-
View User Profile
-
Send Message
Posted Apr 13, 2012@slade87
You don't understand how synchronized code works... the other part also has to synchronize over the same object to achieve a lock. using a synchronized method only locks the class name whereas minecraft does not lock on your class. This means that nothing will be solved. Consider looking into threading issues and also how synchronized code actually works.
@UnitedFactions
Ok, then the problem is still a mystery :(
-
View User Profile
-
Send Message
Posted Apr 13, 2012@slade87
Internal exception: java.io.IOException: Recieved string longer than maximum allowed (18 > 16)
I get this since 2 hours i updated it :o
Mate ;) That was gone after a reboot fine.
However the error is back :o :( http://pastebin.com/b71tHL7r
-
View User Profile
-
Send Message
Posted Apr 13, 2012@lishid
considering your concurrent modifcation issue. the use of public synchronized void .... should be able to reduce/completely get rid of this issue in your function.
-
View User Profile
-
Send Message
Posted Apr 13, 2012@UnitedFactions
Still worth a try. There is no other place where it might access the entity list and CraftBukkit might be trying to load the chunk as well...
Maybe CB + + is more prone to actually load the chunk?
-
View User Profile
-
Send Message
Posted Apr 13, 2012@lishid
Oh just to say so, I am not using Craftbukkit I use Craftbukkit ;) So thats not it I think
-
View User Profile
-
Send Message
Posted Apr 12, 2012@UnitedFactions
All right, try this one.
http://dl.dropbox.com/u/18947504/Orebfuscator.jar
EDIT: Here's my theory of what happened.
My plugin needs chunks next to the current chunk being processed -> Requests a block ID from minecraft's world ->
CraftBukkit: nothing specially happens.
CraftBukkit + + : load the chunk if it is not loaded.
(Remember that we're in my Orebfuscator's Calculation thread)
Loading the chunk cause entities to be added to the entity list, causing the concurrent modification exception.
-
View User Profile
-
Send Message
Posted Apr 12, 2012@UnitedFactions
I think I've found it....
Updating my code now, there's a slight chance that it's wrong though. I'll let you test it afterwards.
-
View User Profile
-
Send Message
Posted Apr 12, 2012@UnitedFactions
I'm looking into it, and I've noticed that the same code is on CB and CB + +
(https://github.com/Afforess/CraftBukkitPlusPlus/blob/master/src/main/java/net/minecraft/server/World.java#L1170 https://github.com/Bukkit/CraftBukkit/blob/master/src/main/java/net/minecraft/server/World.java#L1120)
However, my plugin does not crash in CraftBukkit servers, but only CraftBukkit + +. So it is logical to conclude that Orebfuscator and CraftBukkit + + has problems with each other.
The other thing I find interesting is that there is no access to that specific entityList object in CraftBukkit that I reference in my plugin, which means that my plugin does not access the field directly. This in turn cause trouble for me to determine which part of my code is 'Concurrently' modifying the list so I can either synchronize with CraftBukkit + + or modify my code.
I do suspect, however, that there is some modifications in CraftBukkit + + that replaces functions I call from my plugin to CraftBukkit, and that modification contains code that is made to check the integrity of the entityList or something similar, but is done in a non thread-safe way.
So I'll have to go through the code of CB + + in depth...
-
View User Profile
-
Send Message
Posted Apr 12, 2012Hi lishid, how are you?
Do you remember that bug i reported around 3 weeks ago? I've been active testing all my plugins in combination with Orebfuscator, and I was unable to fix the issue because I could not remove orebfuscator. So here is what I did, I tested near every plugin by now and the only things I have left in were orebfuscator, worldguard, and worldedit and factions.
Then I had to remove orebfuscator and see if it could cause this. I've now run my server +24H without a single crash, I added spout for protection and now I let that drive away and I am running my server again with every plugin I used to run it except orebfuscator. Can you please look into the bug I reported to you 3 weeks ago, another thing is that more and more people are reporting the exact same bug in combination with orebfuscator. Here by I am about 99% sure it is orebfuscator causing this issue. Can you please try to fix it for me? I will certainly donate again to you if you can do so since I am in need of your plugin and I understand the meaning of it to my server economy and everything. SO please help me out and look once more at the errors of me and other users of orebfuscator.
http://pastebin.com/hSK7CMrM
The other people that reported this are here: http://forums.spout.org/threads/craftbukkit.938/page-54
http://forums.spout.org/threads/craftbukkit.938/page-55
-
View User Profile
-
Send Message
Posted Apr 12, 2012-
View User Profile
-
Send Message
Posted Apr 12, 2012@darkcloud784
Exactly! I'm also looking forward to the Spout server.
@noxturno
If you can, throw up a test server that would have the exact same configuration as your production server and remove plugins on that one by one to see which ones might cause problems.
-
View User Profile
-
Send Message
Posted Apr 11, 2012@mrcheesete0
Read the changelogs, I have no problems with that. Plus they added in version detection.
I think I understand what lishid was saying. I dont think he was saying its buggy as in bad. I think what he means is that without proper care of the plugin you can cause bugs due to too many plugins modifying the same areas. It has no issue by itself, just when too many things hook into it and modify the same parts of bukkit.
Also I narrowed down the lag issue, it was a combination of things but Orebfuscator was just adding to it. It wasn't the "root" of the issue, it was actually our playerlist that gets sent to our website. It would cause threads to pause then hurry to catch up.
Anywho, SpoutServer will be much more efficient when its released but that's a ways off.