Bukkit 正确处理"以玩家身份执行OP指令"
目前主流的做法是:把玩家设置为OP后,执行该指令并立即取消OP身份。这种操作虽然可行,但是无法保证操作的原子性,进而无法保证安全性,可能会出现服务器异常崩溃或者被恶意利用等行为。
更好的解决方法是创建一个新的Player对象,把 isOp()
方法的返回值设置为true,其他的方法都代理给原来的Player对象
目前主流的做法是:把玩家设置为OP后,执行该指令并立即取消OP身份。这种操作虽然可行,但是无法保证操作的原子性,进而无法保证安全性,可能会出现服务器异常崩溃或者被恶意利用等行为。
更好的解决方法是创建一个新的Player对象,把 isOp()
方法的返回值设置为true,其他的方法都代理给原来的Player对象