Tekkit Restrict
Tekkit Restrict (requires Tekkit Classic)
"My initial opinion of having my own server was that players would get along. Boy, was I wrong. Only 2 days after my server's release, I already had 7 players who duped Gem Armor and blew up spawn about a trillion times. After setting gem armor to a certain rank, they then torched my spawn. After disabling most of EE until a certain playtime rank, they then found their own way around my disabling plugin. (noitem)
Then I decided to make Tekkit Restrict..." - DreadSlicer
- Author: DreadEnd ([email protected])
- Contributor: Taeir ([email protected])
Features
Crash Prevention
- Prevention of certain server crashing Tekkit Classic problems, like REP's in a deployer
Ban Items and Blocks
- Ban items and blocks from vanilla Minecraft AND from any mod installed.
- Customizable messages for why something is banned (v1.19+)
Limiter
- Limit the amount a player can place of a specific kind of block.
Limited Creative
- Prevent the use (left/rightclick) of certain items in creative.
- Make players unable to move valuable items over from creative to survival.
- Prevent interaction with other inventories in creative.
- Prevent the dropping of items in creative.
Limited Interacts
- Disable the right/left clicking with items.
- Highly customizable: Prevent clicking on a block/in the air/in safezones.
SafeZones
- De-charge EE "Tools" upon entering a marked SafeZone.
- Remove most entities in SafeZones. (not including dropped items, vehicles, players, etc.)
- Force Ring of Arcana into "Earth" mode to prevent griefing.
- Advanced integration with WorldGuard and GriefPrevention to mark all regions or specific ones as safezones.
- Basic integration with Towny, Factions and PreciousStones to mark all regions as safezones.
Smelting/Crafting
- Remove smelting recipes
- Remove crafting recipes
- Prevent the crafting of banned items and warn players so they don't waste ingredients.
- As of v1.19, Tekkit Restrict can prevent crafting of banned items in ALL crafting tables, including project tables and automatic crafting tables, by integrating with forge.
Max EU
- Set the maximum EU charge Electrical IC2 items can hold.
- Change the speed at which Electrical IC2 items charge at.
EMC Value Changer
- Set, change or remove EMC values from any item or block.
Anti-Dupes
- Ability to set a command that will be executed after someone has duped x amount of times.
- Anti-Dupes for:
- RM Furnace Dupes
- Alchemy Bag + Void Ring/Black Hole Band Dupes
- Transmutation Table + Klein Star Dupes
- Tank Cart Dupes
- Teleportation Dupe
- Project Table + 2 players Dupe
- Automatic Crafting Table Mk. 2 + Mining Laser/Mining Turtle/BlockBreaker Dupes
Anti-Hacks
- Ability to set a command that will be executed after someone has hacked x amount of times.
- Anti-Hacks for:
- Speed Hacks
- Fly Hacks
- Forcefield Hacks (hit players out of range/out of your field of view)
Logging
- Split the server log output into various other files.
- Filter out certain messages so they don't show up in the console.
- Log the usage of EE Tools
Other
- Prevent the use of certain Gem armor abilities
- Forcefully unload chunks when the total number is getting too high.
- Prevent the placement of certain blocks next to locked machines/chests, to prevent people from stealing stuff with buildcraft pipes.
- Display the server time used by each and every eventlistener on the server to see what plugins are causing lag.
- Open and modify the alchemy bags and inventories of people, online and offline.
- Teleport to places where there are alot of items on the ground.
- Patch ComputerCraft to make sure people can't crash your server with ComputerCraft scripts.
- Set the minimum time for RedPower timers to prevent lag.
Pages
Compatibility
- Vault - Recommended permissions plugin. (it supports all other permission plugins)
- PermissionsEx/PEX
- GroupManager
- WorldGuard
- GriefPrevention
- LWC
- Factions
- Towny
- PreciousStones
Special Thanks!
Source
The source is available on GitHub: TekkitRestrict GitHub
Dev Builds
Development builds of this project can be acquired at the provided continuous integration server. These builds have not been approved by the BukkitDev staff. Use them at your own risk.Link to jenkins
Metrics
Tekkit Restrict uses Hidendra's plugin metrics system, and as of version 1.18 also uses TMetrics by Taeir. This means that the following information is collected and sent to mcstats.org and metrics.taico.nl:
- A unique identifier
- The server's Java version
- Whether the server is in offline or online mode
- The plugin's version
- The minecraft version of the server
- The OS version/name and architecture
- The amount of CPU cores
- The amount of memory allocated to your server
- The number of players online
- The Metrics version
If you wish to disable Metrics, you can do so by opt-ing out, which you can do in the Metrics config file under /plugins/PluginMetrics/
You can disable TMetrics in the General.config.yml file under /plugins/TekkitRestrict/
Auto-updater
Tekkit Restrict has a built-in auto-updater, which connects to BukkitDev to check for updates. If you want to change or disable this behaviour, you can change the update settings in the General.config.yml file.
@Taeir
Well... I found the problem. Its cause by the fact that all Collectors and Relays and Condensors are all register to the server as a TileEntity, and what happens is when a collector sends energy to a Relay which then sends it to a Condensor, each time it sends energy it registers in the TileEntity Array List, which being accessed by an Iterator's "next" when casting to a TileEntity. When you have HUNDRED's of collectors on the server it gets to the point where the array list cant handle it anymore and throws the exception "ConcurrentModificationException"
Please I ask you to find a way to fix this, I'm having multiple crashes per day.
Thanks, Dablakbandit
@JBDiggy
I removed the items from the limiter but am still getting the errors.
Stack Trace:
@Dablakbandit
Hey,
I found that for me it didn't matter what I tried to limit, it seems that just having the limiter enabled is enough to cause the problem. You may not have the same issue but I figured it was worth suggesting as the errors look virtually identical and it's pretty simple to test out (leave your limit blocks the same and disable the limiter in the general config), the only way to be sure if we're experiencing the same thing is to try it and see.
Btw just to be clear I'm not linked to this plugin other than the fact I use it like you :)
Went back to the other version before the newest, No errors. :P
@JBDiggy
here is my limitblocks
These arnt ee part of ee, would this still cause it?
Thanks, Dablakbandit
Getting weird errors. Can you check this out to see if it's a bad problem? Thanks!
30.12 17:07:59 [Server] SEVERE nl.taico.tekkitrestrict.TEntityRemover.run(TRThread.java:257) 30.12 17:07:59 [Server] SEVERE java.lang.Thread.sleep(Native Method) 30.12 17:07:59 [Server] SEVERE Stack: 30.12 17:07:59 [Server] SEVERE PID: 66 | Alive: true | State: TIMED_WAITING 30.12 17:07:59 [Server] SEVERE Current Thread: TekkitRestrict_EntityRemoverThread 30.12 17:07:59 [Server] SEVERE
------30.12 17:07:59 [Server] SEVERE java.lang.Thread.run(Unknown Source) 30.12 17:07:59 [Server] SEVERE org.bukkit.craftbukkit.scheduler.CraftScheduler.run(CraftScheduler.java:94) 30.12 17:07:59 [Server] SEVERE java.lang.Object.wait(Native Method) 30.12 17:07:59 [Server] SEVERE Stack: 30.12 17:07:59 [Server] SEVERE PID: 17 | Alive: true | State: TIMED_WAITING 30.12 17:07:59 [Server] SEVERE Current Thread: Thread-5 30.12 17:07:59 [Server] SEVERE------30.12 17:07:59 [Server] SEVERE net.minecraft.server.ThreadCommandReader.run(ThreadCommandReader.java:33) 30.12 17:07:59 [Server] SEVERE jline.console.ConsoleReader.readLine(ConsoleReader.java:1105) 30.12 17:07:59 [Server] SEVERE jline.console.ConsoleReader.readLine(ConsoleReader.java:1117) 30.12 17:07:59 [Server] SEVERE jline.console.ConsoleReader.readLine(ConsoleReader.java:1153) 30.12 17:07:59 [Server] SEVERE jline.console.ConsoleReader.readLineSimple(ConsoleReader.java:1506) 30.12 17:07:59 [Server] SEVERE jline.console.ConsoleReader.readCharacter(ConsoleReader.java:995) 30.12 17:07:59 [Server] SEVERE jline.internal.InputStreamReader.read(InputStreamReader.java:204) 30.12 17:07:59 [Server] SEVERE jline.internal.InputStreamReader.read(InputStreamReader.java:267) 30.12 17:07:59 [Server] SEVERE jline.console.ConsoleReader$1.read(ConsoleReader.java:167) 30.12 17:07:59 [Server] SEVERE java.io.FilterInputStream.read(Unknown Source) 30.12 17:07:59 [Server] SEVERE java.io.BufferedInputStream.read(Unknown Source) 30.12 17:07:59 [Server] SEVERE java.io.BufferedInputStream.fill(Unknown Source) 30.12 17:07:59 [Server] SEVERE java.io.FileInputStream.read(Unknown Source) 30.12 17:07:59 [Server] SEVERE java.io.FileInputStream.readBytes(Native Method) 30.12 17:07:59 [Server] SEVERE Stack: 30.12 17:07:59 [Server] SEVERE PID: 15 | Alive: true | State: RUNNABLE 30.12 17:07:59 [Server] SEVERE Current Thread: Thread-4 30.12 17:07:59 [Server] SEVERE------30.12 17:07:59 [Server] SEVERE nl.taico.tekkitrestrict.TGemArmorDisabler.run(TRThread.java:187) 30.12 17:07:59 [Server] SEVERE java.lang.Thread.sleep(Native Method) 30.12 17:07:59 [Server] SEVERE Stack: 30.12 17:07:59 [Server] SEVERE PID: 65 | Alive: true | State: TIMED_WAITING 30.12 17:07:59 [Server] SEVERE Current Thread: TekkitRestrict_GemArmorThread 30.12 17:07:59 [Server] SEVERE------30.12 17:07:59 [Server] SEVERE net.minecraft.server.ThreadSleepForever.run(SourceFile:81) 30.12 17:07:59 [Server] SEVERE java.lang.Thread.sleep(Native Method) 30.12 17:07:59 [Server] SEVERE Stack: 30.12 17:07:59 [Server] SEVERE PID: 10 | Alive: true | State: TIMED_WAITING 30.12 17:07:59 [Server] SEVERE Current Thread: Thread-1 30.12 17:07:59 [Server] SEVERE------30.12 17:07:59 [Server] SEVERE Stack: 30.12 17:07:59 [Server] SEVERE PID: 5 | Alive: true | State: RUNNABLE 30.12 17:07:59 [Server] SEVERE Current Thread: Signal Dispatcher 30.12 17:07:59 [Server] SEVERE------30.12 17:07:59 [Server] SEVERE java.lang.Thread.run(Unknown Source) 30.12 17:07:59 [Server] SEVERE net.minecraft.server.FileIOThread.run(SourceFile:22) 30.12 17:07:59 [Server] SEVERE net.minecraft.server.FileIOThread.b(SourceFile:47) 30.12 17:07:59 [Server] SEVERE java.lang.Thread.sleep(Native Method) 30.12 17:07:59 [Server] SEVERE Stack: 30.12 17:07:59 [Server] SEVERE PID: 218 | Alive: true | State: TIMED_WAITING 30.12 17:07:59 [Server] SEVERE Current Thread: File IO Thread 30.12 17:07:59 [Server] SEVERE------30.12 17:07:59 [Server] SEVERE nl.taico.tekkitrestrict.TWorldScrubber.run(TRThread.java:937) 30.12 17:07:59 [Server] SEVERE java.lang.Thread.sleep(Native Method) 30.12 17:07:59 [Server] SEVERE Stack: 30.12 17:07:59 [Server] SEVERE PID: 64 | Alive: true | State: TIMED_WAITING 30.12 17:07:59 [Server] SEVERE Current Thread: TekkitRestrict_BlockScrubberThread 30.12 17:07:59 [Server] SEVERE------30.12 17:07:59 [Server] SEVERE java.lang.Thread.run(Unknown Source) 30.12 17:07:59 [Server] SEVERE java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 30.12 17:07:59 [Server] SEVERE java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 30.12 17:07:59 [Server] SEVERE java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source) 30.12 17:07:59 [Server] SEVERE java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(Unknown Source) 30.12 17:07:59 [Server] SEVERE java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(Unknown Source) 30.12 17:07:59 [Server] SEVERE java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(Unknown Source) 30.12 17:07:59 [Server] SEVERE java.util.concurrent.locks.LockSupport.parkNanos(Unknown Source) 30.12 17:07:59 [Server] SEVERE sun.misc.Unsafe.park(Native Method) 30.12 17:07:59 [Server] SEVERE Stack: 30.12 17:07:59 [Server] SEVERE PID: 70 | Alive: true | State: TIMED_WAITING 30.12 17:07:59 [Server] SEVERE Current Thread: pool-4-thread-1 30.12 17:07:59 [Server] SEVERE------30.12 17:07:59 [Server] SEVERE net.minecraft.server.NetworkWriterThread.run(NetworkWriterThread.java:48) 30.12 17:07:59 [Server] SEVERE java.lang.Thread.sleep(Native Method) 30.12 17:07:59 [Server] SEVERE Stack: 30.12 17:07:59 [Server] SEVERE PID: 7794 | Alive: true | State: TIMED_WAITING@Dablakbandit
Curious if you use the item limiter, if so try just disabling that rather removing the whole plugin, it's just that it sounds very much like this ticket...
http://dev.bukkit.org/bukkit-plugins/tekkit-restrict/tickets/331-ee-error-that-crashes-server/
And for me turning off the item limiter stopped the errors.
im getting alot of errors crashing my server, i think its due to too many energy collectors in one chunk, but when i remove tekkit restrict it doesnt happen. Stacktrace:
when i do /tr admin about, and there is eepatch: < 1.4, Is it then 1.4 or not ?
@XzKNIGHTzX
Note that there are different safezone types. For factions, all zones are considered safezones. For GriefPrevention, you can specify which ones are safezones.
Hello, I got TekkitRestrict 1.21 Beta 2 and I love that you guys fixed tr limiter and emc changer but, when you go into a regular claim, it says "you can't use that item in SafeZone.". with all the items I disabled right clicking with in safezone but everything else is great.
@Dablakbandit
Yes, there is currently a bug with it where some setups cause dupes.
EEPatch does not prevent the usage of tools, it just calls the proper events so that plugins can prevent people from breaking certain blocks.
What happened to the ee patch?, i found a link but when using the patch the items in condensors duplicate when piped in via a pipe (i can explain more if need be) but people are able to grief using the morningstar etc.
Please help, Dablakbandit
I have just uploaded TekkitRestrict 1.21 Beta 1!
The main features/fixes/changes are:
When it gets approved, you can check the full changelist on the files page.
Taeir
@AbuRom
Ok, It is a problem of tekkitrestrict. I recently moved stuff around abit, and apparently ee is not loaded whenever tekkitrestrict tries to set the emc values. It is fixed as of version 1.21 Dev 6. This version is available on the new jenkins.
Note: Development builds of this project can be acquired at the provided continuous integration server. These builds have not been approved by the BukkitDev staff. Use them at your own risk.
Jenkins Link
@tli08
Sure, it's machinecraft.us And I'm using TR 1.20 release.
Mind you, while testing it... There is a chance we would have done /tr admin reload to make sure it works, since that still seems to be working fine. It just needs that reload before it accepts it, after every restart.
@AbuRom
is there possible if you send me the ip to the server and ill have a look? and btw what tekkit restrict do you have?
@tli08
Thanks, but still no luck. Here it is:
SetEMC:
- "335 768"
- "377 200"
- "351:15 29"
- "338 1"
- 335 768
- 337 200
- 351:15 29
- 338 1
Still back to normal after resets
@Taeir
okay :) thank you :) btw nice thta u have patched the destruction catalyst on buffer, retrivulator and automatic crafting table MKIII but the catalytic lens mypasses that patch :/ u think u can fix that aswell?
@tli08
It seems as this is a problem with the config file updater. I will see about fixing this issue.