This Thread is locked - no new replies are allowed.
So, though this rule has been applied for a while on Mineplex, however, recently there have been instances where 3 YouTubers got a Sev1 ban for using the ReplayMod and uploading footage with ReplayMod footage, or evidence of them using it, here is one of the three I could find:
I talked a bit with the RC regarding your point of "They might as well just use a world downloader or a real no-clip mod". And whilst I agree with what you have stated, they state otherwise:
"And for this exact reason, we do not approve the use of the World Downloader or a real no-clip modification. Sure they are near impossible to detect, however we still do not condone the use of these utilities despite whether players are caught using them or not. By fully approving a mod, this means we fully approve ever little feature this mod has to offer throughout the network, however it does cause an issue on one of our gamemodes, therefore it will stay unapproved unless a solution is provided.
So @User10, it seems you have typed up a solution to restrict usage of replays on a specific server, however, I did not quite understand the process. Could there be a video or some sort of guide to explain what you have stated, because I am not the wisest when it comes to coding :P
However, it looks like a solution nevertheless, so if I could get some guide on how this is possible, I will try to replicate the process, and then bring it up with the Rules Committee on Mineplex.
Thanks for your time @User26 & @User10 :)
server.registerPluginChannel("Replay|Restrict");
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
DataOutputStream out = new DataOutputStream(bytes);
out.writeByte(21); // Length of "only_recording_player"
out.writeBytes("only_recording_player".getBytes(Charsets.UTF8));
out.writeBoolean(true);
player.sendPluginMessage("Replay|Restrict", bytes.toArray());
server.registerPluginChannel("Replay|Restrict");
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
DataOutputStream out = new DataOutputStream(bytes);
out.writeByte(21); // Length of "only_recording_player"
out.writeBytes("only_recording_player".getBytes(Charsets.UTF8));
out.writeBoolean(true);
player.sendPluginMessage("Replay|Restrict", bytes.toArray());
Hi there @User32545
I appreciate the help, however, I have already direct contact to Toki and have been communicating her about this a few months ago. It will make the process a lot easier if I am capable of making the restrictions possible so I can help the devs with any confusion they have with setting this up. Plus I am curious myself to see if it works lol.
./gradlew build
) or you take a prebuilt version from here (for Bukkit, that's replayrestrictions-bukkit-1.0-SNAPSHOT.jar
). Put the jar in the plugin directory and start the server once to have it generate the default config. Edit the config, then restart (or reload) the server to apply those changes. Done../gradlew build
) or you take a prebuilt version from here (for Bukkit, that's replayrestrictions-bukkit-1.0-SNAPSHOT.jar
). Put the jar in the plugin directory and start the server once to have it generate the default config. Edit the config, then restart (or reload) the server to apply those changes. Done../gradlew build
) or you take a prebuilt version from here (for Bukkit, that's replayrestrictions-bukkit-1.0-SNAPSHOT.jar
). Put the jar in the plugin directory and start the server once to have it generate the default config. Edit the config, then restart (or reload) the server to apply those changes. Done.@User10 The server I used to test it is simply a pre-set server which I use my computer to run it.
The console did mention that the ReplayRestriction plugin was installed, however this is the only thing I sighted about it. When you say it works, do you mean the restrictions are applied to your replays?
EDIT: I used this program called "AutoMCServer" to build my server btw.
Afaik ReplayRestrictions work as described in that gist.
However Bukkit and Sponge only send plugin messages to the client if that client has registered the channel (which kinda makes sense; but why register in the first place? idk, probably has a good reason).
The ReplayMod does not register its channel (probably me to blame for that) so unless that check on the server side is removed, packets aren't sent by the server and therefore never reach the client. I can't remember why it worked when I initially tested it, probably whichever server I used for testing, didn't check for the channel registration.
I don't know about BungeeCord (didn't test that).
Fixing the channel registration would require a ReplayMod update but old versions would still be usable on Mineplex which defeats the point of ReplayRestrictions, so that's not an option for now (maybe later).
Bypassing the server-side check for the channel registration is probably the way to go. Every plugin developer who has worked with NMS/OBC should be able to do that.
Vanilla doesn't care if it receives packets in unknown channels, neither does Forge, so that should be relatively safe (some larger scale test should be done nevertheless).
I will not be creating plugins which bypass the check as they have to be programmed separately for every single server software and I just don't have the time and/or other priorities (university, ReplayMod 2.0) right now.
I don't know about @User1, he seems to be bored at times, maybe he'll do it.
I don't use Skype, only IRC and Mumble. Again, ask @User1.
So, I created a CraftBukkit/Spigot restriction plugin that ignores the client channel registration.
https://github.com/joserobjr/ReplayModRestriction-Bukkit
I also released a compiled jar at:
https://github.com/joserobjr/ReplayModRestriction-Bukkit/releases
It can apply restrictions by config file:
https://github.com/joserobjr/ReplayModRestriction-Bukkit/blob/master/src/main/resources/config.yml
Or by API:
ReplayModRestriction.sendRestrictions(playerVariableHere, true, ReplayModRestriction.ONLY_FIRST_PERSON, ReplayModRestriction.NO_XRAY)
This is what happens when we try to view a replay that was recorded on a restricted server: