1
0
mirror of https://github.com/SquidDev-CC/CC-Tweaked synced 2025-09-04 19:37:55 +00:00

Make UserLevel.OWNER a little more strict

Closes #904
This commit is contained in:
Jonathan Coates
2021-08-25 22:09:24 +01:00
parent 9fbcbae5b3
commit 3396fe2871

View File

@@ -56,18 +56,17 @@ public enum UserLevel implements Predicate<CommandSource>
public boolean test( CommandSource source )
{
if( this == ANYONE ) return true;
if( this == OWNER || this == OWNER_OP )
{
MinecraftServer server = source.getServer();
Entity sender = source.getEntity();
if( server.isSingleplayer() && sender instanceof PlayerEntity &&
((PlayerEntity) sender).getGameProfile().getName().equalsIgnoreCase( server.getServerModName() ) )
{
return true;
}
}
if( this == OWNER ) return isOwner( source );
if( this == OWNER_OP && isOwner( source ) ) return true;
return source.hasPermission( toLevel() );
}
private static boolean isOwner( CommandSource source )
{
MinecraftServer server = source.getServer();
Entity sender = source.getEntity();
return server.isDedicatedServer()
? source.getEntity() == null && source.hasPermission( 4 ) && source.getTextName().equals( "Server" )
: sender instanceof PlayerEntity && ((PlayerEntity) sender).getGameProfile().getName().equalsIgnoreCase( server.getServerModName() );
}
}