Add in op stuff
This commit is contained in:
parent
23337fb600
commit
ce8c8855f1
@ -36,6 +36,8 @@ import org.bukkit.inventory.EquipmentSlot;
|
||||
import org.bukkit.inventory.Inventory;
|
||||
import org.bukkit.inventory.InventoryView;
|
||||
import org.bukkit.inventory.InventoryView.Property;
|
||||
import org.bukkit.permissions.PermissibleBase;
|
||||
import org.bukkit.permissions.Permission;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.MainHand;
|
||||
import org.bukkit.inventory.Merchant;
|
||||
@ -61,12 +63,45 @@ import net.kyori.adventure.util.TriState;
|
||||
public class PatchBukkitHumanEntity
|
||||
extends PatchBukkitLivingEntity
|
||||
implements HumanEntity {
|
||||
private boolean op;
|
||||
protected final PermissibleBase perm = new PermissibleBase(this);
|
||||
|
||||
public PatchBukkitHumanEntity(UUID uuid,
|
||||
String name) {
|
||||
super(uuid, name);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isOp() {
|
||||
return this.op;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setOp(boolean value) {
|
||||
this.op = value;
|
||||
this.perm.recalculatePermissions();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isPermissionSet(String name) {
|
||||
return this.perm.isPermissionSet(name);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isPermissionSet(Permission perm) {
|
||||
return this.perm.isPermissionSet(perm);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasPermission(String name) {
|
||||
return this.perm.hasPermission(name);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasPermission(Permission perm) {
|
||||
return this.perm.hasPermission(perm);
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getEyeHeight() {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
@ -188,6 +188,31 @@ impl JvmWorker {
|
||||
)
|
||||
.map_err(|e| format!("Failed to create player instance: {}", e))
|
||||
.unwrap();
|
||||
|
||||
let player_permission_level = player.permission_lvl.load();
|
||||
if player_permission_level
|
||||
>= self
|
||||
.context
|
||||
.as_ref()
|
||||
.unwrap()
|
||||
.server
|
||||
.basic_config
|
||||
.op_permission_level
|
||||
{
|
||||
jvm.invoke(
|
||||
&j_player,
|
||||
"setOp",
|
||||
&[InvocationArg::try_from(true)
|
||||
.unwrap()
|
||||
.into_primitive()
|
||||
.unwrap()],
|
||||
)
|
||||
.map_err(|e| {
|
||||
format!("Failed to give operator status to new player: {}", e)
|
||||
})
|
||||
.unwrap();
|
||||
};
|
||||
|
||||
let patch_server = jvm
|
||||
.cast(&server_instance, "org.patchbukkit.PatchBukkitServer")
|
||||
.unwrap();
|
||||
|
||||
Loading…
Reference in New Issue
Block a user