Permission nodes in TFM

  • In preparation for a suggestion I will be making regarding how this server gives freedom to take care of a persistent issue that's been plaguing it for years, I decided to attempt an implementation of proper permission nodes in the TotalFreedomMod as a proof of concept.

    https://videogamesm12.me/A5iA54mQgx2f.png
    https://videogamesm12.me/VGR0NMk4rIHB.png

    Technical Details

    It was surprisingly easy to get permission nodes for commands. The implementation I came up with is pretty rudimentary. when an instance of a command class has been created, it uses the class's name to create a permission node automatically. When said instance is registered, it sets the automatically-created permission node as the command's permission node. The check for permissions is replaced with a simple sender.hasPermission() check. All of this done in FreedomCommand, so there is usually no need to modify any existing commands to use this new permission system. As a result, anybody who wrote custom commands in a fork of the plugin won't have to worry about having to change them to be compatible with this implementation.

    Benefits

    • You could use third party plugins like LuckPerms to manage permissions for commands.
    • This makes the TotalFreedomMod's command system much more customizable and easy to adjust. Want to give a group of players access to /fuckoff? No need to recompile the plugin, just use /lp group <group name> permission set totalfreedommod.command.fuckoff true. Want to restrict a certain part of a command to a higher rank? No problem, just use /lp group <group name> permission set totalfreedommod.command.<command name>.<portion>. Want to give a specific player access to a command? Easy, just do /lp user <username> permission set totalfreedommod.command.<command>. No need to wait months for a single permission change to a command, just run one command and you're done.

    image.png

  • This brings back the whole idea of fake op. Yes, using permission nodes and not giving people OP would make it a lot easier for devs to update the plugins. It wouldn't get rid of custom plugins however as I'm pretty sure we have custom functionality with teleportation in EssentialsX and toggling disguises. It's worth noting disabling the plugin (the "vanilla" way) breaks the plugin until a server restart. It's not a new concept. It was shot down many years ago when Commodore had the idea as well. It came down to that it was a free op server and not actually giving people OP breaks the core value of the server.

  • This thing's been a topic in some admin chat. It all depends on what direction we want the server to go:

    • go back to the anarchic-style era: give players true OP and accept everything that comes with it.
    • keep moving to a flexible but more controlled freedom: give players an experience similar to vanilla OP but without the dangerous commands.

    Some critical points that have been raised (that I remember):

    • the new approach will give freedom servers more security, stability and reliability. Instead of putting plasters where things are improperly tweaked, proper implementation makes everything work smoother.
    • how to advertise a freeOP server that doesn't actually give OP? Players will play like OPs rather than as OPs. New players are already confused when, after being opped, they realise some vanilla and OP commands aren't actually working.

    TotalFreedom, with a lot of OP things blocked for OPs, already gives, in fact, a "fakeOP" experience. This is why I'd support Video's approach. Making a "OP" rank with permission nodes to mask the difference is an easy task. Developers and whoever manages permissions will probably have an easier life.

    TotalFreedom's Executive Community & Marketing Manager

  •   Tizz No… we don’t? We have been going a different direction since Mark left. The only reason we have lost players is because Minecraft isn’t pushing out updates as much as they used to, we lost old players around 2017 due to how much the server would crash, we became a premium only server. If you ask me, we have been going a different direction without even realizing it.

    TF has stuck around for almost 11 years around the idea of always giving people OP. Real OP. Not that fake permission shit. And if you take away what the server revolves around, you take away a lot even though it doesn’t seem like it in hindsight. You take away the entire basis of the server.

    Stop trying to pick a direction and let’s think through how to give players more freedom instead of feeling like they are limited even more…

  • Quote

      Ivan let’s think through how to give players more freedom instead of feeling like they are limited even more…

    Ironically, people feel more free when you offer stuff ("here's your OP commands") instead of restrictions ("i give you OP but you can't run these commands"). The best advertisers are successful because they know how human psychology works.

    I don't care if the community prefers to go anarchy to have true OP, staying on the current course with the "OP not really OP", or going next step, but all sides have good arguments I felt like elaborating.

    TotalFreedom's Executive Community & Marketing Manager

  • Honestly I'm gonna get splinters from how much fence sitting I'm doing here.

    On one hand I understand people wanting the server to stick to free-op rather than free-have-a-lot-of-permissions-but-not-op but I also recognise that the operator status is generally a bypass for a lot of things which can lead to plugins and all being a mess (one example is /near not working because it is designed to not show operators).

    There's also the everpresent issue of a significant number of new players thinking that this is an anarchy server and thinking they can just ban everyone else online as if nobody thought of doing that before.

    Patrolling the Mojave almost makes you wish for a nuclear winter.

  • Quote

      Ivan TF has stuck around for almost 11 years around the idea of always giving people OP. Real OP. Not that fake permission shit. And if you take away what the server revolves around, you take away a lot even though it doesn’t seem like it in hindsight. You take away the entire basis of the server.

    According to Mark's threads on the Minecraft forum from 2010 - 2011, this is actually untrue. Free-OP did not become a thing until approximately February 2011. Even then, it was completely optional and not something that was absolutely needed to do anything on the server. If anything, removing free-OP returns us to a basis that more closely resembles what the server used to be like more than a decade ago.

    https://videogamesm12.me/5KhVbu4RTbkW.png
    https://videogamesm12.me/mAdln5mtJFUk.png

    image.png

  •   videogamesm12 Everyone was able to ban each other back in the day. Yo @"Miwojedk"#64 can you tell us if people were opped back in the day or no

    As for all of the other points let me finish taking a big fat shit and I will reply

  • In my opinion, the freedom concept is that we shouldn't be deciding what is allowed, everything should be allowed unless it is proven to be dangerous and have no legitimate uses. Unfortunately, that is not how permissions work: a developer explicitly has to go in and approve every feature. This is a potential concern because the development team has in the past been known to just block things instead of making them work with our server.

    And even if it's not intentional, permissions make it more difficult to see what we haven't enabled, that is, what features are blocked. Most servers don't care about the permissions that players are missing, but we do.

  • @'Reperak' No, Mojang is what causes exploits and crashes to happen, lmfao. We were running fine on a blacklist of commands until Microsoft bought Mojang and pissed all over stability. Plugins should be customized for TF anyway…

    Do you know how much of a fucking overhaul it would be if we made this change? On top of all the other fucking features people want, this would add to an already long priority list. This is simply really unnecessary.

    Let’s stick to our roots. What has worked for years should stay. The system now isn’t broken - just no one wants to get their hands dirty and make some changes

  • @'Reperak' The bugs that are in Minecraft are a result of Minecraft updates, which are made by Mojang and owned by Microsoft. If I have to fucking take it step by step for you I will.

    The plugins don’t break, but yes, you’re right, the permissions do. That’s why the worlds were able to be cleared with TARDIS, it’s why worlds were able to be created with PlotSquared.

    Yeah guys let’s blame md_5’s team for everything wrong with our server. This is honestly so fucking stupid and the Bukkit and Spigot team has nothing to do with why our server is broken. It’s exploits within Minecraft, no matter if you’re running a regular server jar, or with plugins.

    We customize plugins to work with TF so they are able to bridge with TFM, like LibsDisguises, which has a list of forbidden disguises. We also customize them now as a way to only give admins permissions so OPs can’t fuck with them.

    I’ve worked on this server from a technical standpoint. I’ve worked on my own freedom servers. I’ve been in the game longer than most people have. I like this way better.

  •   Tizz highly agree with this. I've mentioned it earlier but from a business perspective we could just offer a OP similar experience and market it as OP cause it's not any different and essentially what companies and businesses already do (Yes, I know the immorality of it, but it's still technically not fully dishonest).

    At the end of the day the experience for the average player is the same and a crap ton of plugins ands commands are blocked because we can't code efficient ways to deal with exploits, so if this helps, I'm fully on board. Honestly anything that just helps with code related stuff in general should be taken into heavy consideration since the server remained really static code wise for the majority of it's life and mostly just build on top of TFM that, from what's been made clear numerous times, has tons of compatibility issues.

    Theres also the idea that the "Free OP" hasn't done much for the server in terms of branding. This is mostly opinionated and based on how in felt when I joined back in 2015, but I saw tons of servers that looked more appealing to me that didn't have a Free OP plastered on them. Only stuck with TF cause I liked the idea of a small close-knit community. Basically to me the Free OP tagline probably gives off an impression similar to 2b2t, which is definitely what I thought when I first typed in the IP.

      Ivan The "Blame Mojang and Microsoft for compatibility and bugs" is something I'm split on. I get where you all are coming from and it's a fucking hassle to get stuff working when a company impedes progress but again at the end of the day it's not their job to support 3rd party plugins and software. Plus changes are going to be necessary and I don't think we should avoid overhauls like the plague. You should know how many brands go through product overhauls.

    I get it, people wanna stay true to the whole freedom and true OP experience, I really do get it. I was like that too. But TF is definitely going to suffer down the line with that approach because whether we like it or not the server is one day going to have to survive via marketing strategies and work arounds like this.

    According to quantum mechanics, unless something is observed, there is an equal chance of it both being and not being there. Hence it is said to be in superposition, until observed. However we are somehow fully certain, despite never having directly observed, that you indeed have no bitches. Your bitchlessness has broken the rules quantum mechanics had established. Indeed an impressive feat.

  •   Beta_Alpha Bugs created from plugins are different; I’m talking bugs that are just Mojang’s fault in general. We don’t really see a lot of bugs in plugins, only ones that harm server stability like it using too much ram, etc.

    @'Reperak' I don’t represent the community. I speak for myself and my thoughts and never said I did…

  • This is something we simply need to do if we ever want the devs to actually keep up with the amount of suggestions that people post on the forum. It'd be so much easier to implement any sort of change, especially small changes, when things are done by using permissions instead of manually blocking everything in TFM. A lot of the time it's as simple as running a command that updates permissions for certain groups in-game. It's a different approach than the "allow everything and then 'sparingly' block it" system we have right now, but aside from working much better, it's also hard to make an argument that this approach actually gets anything done anymore. Unless we want to revert to 2013 form and just let everything loose and leave it to administrators to manage, I don't see any point in trying to strain for every ounce of freedom we can possibly offer anymore, since it's really been degraded by people who abuse that freedom to the point that the amount of freedom is on par with other larger creative servers. If we want to offer a higher quality gameplay experience, and make a stronger attempt at progress on the in-game server permission nodes are the way to go. Otherwise, we can continue to sit here and cling onto the idea that running a server that "OPs" everyone is going to be our golden ticket to success.

  • I need to think this one through slightly more, I agree that on paper this feels like the right thing to be doing, especially as we move towards TF in it's "Traditional" format being called a "Freedom Server" rather than a "AllOP" / "FreeOP" Server.

    We are looking to do something like this when we get around to moving the plot world into it's own server, rather than hacking around with TFM. I think if that works well (Which I'm sure it will) we can look to re-visit this along with the other load of stuff we can probably do to significantly simplify the way the server works in the longer term and hopefully a reduced dependency on custom plugins and ideally eventually TFM itself.

    Wild1145

    Network Owner at TotalFreedom

    Managing Director at ATLAS Media Group Ltd.

    Founder & Owner at MastodonApp.UK