Olá, estou afzendo um plugin de terrenos e estou tendo problemas com a verificação de regions por perto, ela funciona, porem se o dono da region por perto for o cara que digitou o comando para comprar o terreno, não funciona...
Alguém sabe algo a respeito?
Verificação que estou fazendo:
ApplicableRegionSet regions2 = rm.getApplicableRegions(pr); // pr = ProtectecCuboidRegion
LocalPlayer localPlayer2 = plugin.getWorldGuard().wrapPlayer(p);
if (!regions2.isOwnerOfAll(localPlayer2)){
p.sendMessage(prefix + "§fSe afaste, existe terrenos nas redondezas.");
rm.removeRegion(areaNome);
return;
}
Metodo completo:
public void BuyTerreno(String area, int x, int z, Player p){
RegionManager rm = plugin.getWorldGuard().getRegionManager(p.getWorld());
String areaNome = p.getName().toLowerCase() + "_" + area.toLowerCase();
if (hasArea(areaNome, p.getWorld().getName())) {
p.sendMessage(prefix + "§fVocê já possui um terreno com esse nome.");
return;
}
Location loc = p.getLocation();
int x2 = loc.getBlockX();
int z2 = loc.getBlockZ();
BlockVector blockVector1 = new BlockVector(x2 - x/2, 256, z2 - z/2);
BlockVector blockVector2 = new BlockVector(x2 + x/2, 0, z2 + z/2);
ProtectedCuboidRegion pr = new ProtectedCuboidRegion(areaNome, blockVector1, blockVector2);
DefaultDomain dM = new DefaultDomain();
rm.addRegion(pr);
pr.setPriority(100);
dM.addPlayer(p.getName());
pr.setOwners(dM);
try{
pr.setFlag(DefaultFlag.PVP, DefaultFlag.PVP.parseInput(plugin.getWorldGuard(), p, "deny"));
pr.setFlag(DefaultFlag.ENDERDRAGON_BLOCK_DAMAGE, DefaultFlag.ENDERDRAGON_BLOCK_DAMAGE.parseInput(plugin.getWorldGuard(), p, "deny"));
pr.setFlag(DefaultFlag.TNT, DefaultFlag.TNT.parseInput(plugin.getWorldGuard(), p, "deny"));
pr.setFlag(DefaultFlag.CREEPER_EXPLOSION, DefaultFlag.CREEPER_EXPLOSION.parseInput(plugin.getWorldGuard(), p, "deny"));
pr.setFlag(DefaultFlag.USE, DefaultFlag.USE.parseInput(plugin.getWorldGuard(), p, "deny"));
} catch (InvalidFlagFormat e) {
e.printStackTrace();
}
ApplicableRegionSet regions2 = rm.getApplicableRegions(pr); // pr = ProtectecCuboidRegion
LocalPlayer localPlayer2 = plugin.getWorldGuard().wrapPlayer(p);
if (!regions2.isOwnerOfAll(localPlayer2)){
p.sendMessage(prefix + "§fSe afaste, existe terrenos nas redondezas.");
rm.removeRegion(areaNome);
return;
}
try {
rm.save();
} catch (StorageException e) {
e.printStackTrace();
}
makeMuro(p, x);
p.sendMessage(prefix + "§fVocê compro um §eterreno §fcom sucesso.");
}
Sim, eu sei que estou verificando se o dono das regions por perto foi diferente do nick do player, porem já olhei a src do HTerrenos e de outros plugins e todos fazem da mesma forma...
Pergunta
TequilAxBr
Olá, estou afzendo um plugin de terrenos e estou tendo problemas com a verificação de regions por perto, ela funciona, porem se o dono da region por perto for o cara que digitou o comando para comprar o terreno, não funciona...
Alguém sabe algo a respeito?
Verificação que estou fazendo:
Metodo completo:
Sim, eu sei que estou verificando se o dono das regions por perto foi diferente do nick do player, porem já olhei a src do HTerrenos e de outros plugins e todos fazem da mesma forma...
Alguém sabe uma solução para esse bug?
Versões dos plugins:
WorldGuard - 6.1
WorldEdit - 6.1
Editado por TequilAxBrLink para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados