Seguinte, eu usei o código do mano leonardoscdeste tópico mas está acontecendo um bug, bem estranho, mas antes de explicar como funciona, aqui está a classe:
public class Main extends JavaPlugin implements Listener {
HashSet<Integer> blocosPermitidos = new HashSet<Integer>();
@Override
public void onEnable() {
if(new File(getDataFolder(), "config.yml").exists()){
}else {
saveResource("config.yml", false);
}
Bukkit.getPluginManager().registerEvents(this, this);
List<String> rawItems = getConfig().getStringList("blocos-permitidos");
for (String rawItem : rawItems) {
byte data;
int id;
if (rawItem.indexOf(":") > -1) {
String[] parts = rawItem.split(":");
data = Byte.parseByte(parts[1]);
id = Integer.parseInt(parts[0]);
} else {
id = Integer.parseInt(rawItem);
data = 0;
}
blocosPermitidos.add(Objects.hash(id, data));
}
}
@EventHandler
public void onPlace(BlockPlaceEvent e) {
int hash = Objects.hash(e.getBlock().getTypeId(), e.getBlock().getData());
if (blocosPermitidos.contains(hash)) {
e.getPlayer().sendMessage("colocado");
return;
} else {
e.getPlayer().sendMessage("n pode colocar");
e.setCancelled(true);
}
}
@EventHandler
public void onBreak(BlockBreakEvent e) {
int hash = Objects.hash(e.getBlock().getTypeId(), e.getBlock().getData());
if (blocosPermitidos.contains(hash)) {
e.getPlayer().sendMessage("quebrado");
return;
} else {
e.getPlayer().sendMessage("n pode quebrar");
e.setCancelled(true);
}
}
}
Teoricamente o player só pode quebrar/colocar os blocos que estão na config, porém os IDs 323(Placa), 50 (tocha), 198 (Vara do End ( ͡° ͜ʖ ͡°) ) e provavelmente alguns outros não funcionam.
Pergunta
Metalflame12
Bom dia povo!
Seguinte, eu usei o código do mano leonardosc deste tópico mas está acontecendo um bug, bem estranho, mas antes de explicar como funciona, aqui está a classe:
public class Main extends JavaPlugin implements Listener { HashSet<Integer> blocosPermitidos = new HashSet<Integer>(); @Override public void onEnable() { if(new File(getDataFolder(), "config.yml").exists()){ }else { saveResource("config.yml", false); } Bukkit.getPluginManager().registerEvents(this, this); List<String> rawItems = getConfig().getStringList("blocos-permitidos"); for (String rawItem : rawItems) { byte data; int id; if (rawItem.indexOf(":") > -1) { String[] parts = rawItem.split(":"); data = Byte.parseByte(parts[1]); id = Integer.parseInt(parts[0]); } else { id = Integer.parseInt(rawItem); data = 0; } blocosPermitidos.add(Objects.hash(id, data)); } } @EventHandler public void onPlace(BlockPlaceEvent e) { int hash = Objects.hash(e.getBlock().getTypeId(), e.getBlock().getData()); if (blocosPermitidos.contains(hash)) { e.getPlayer().sendMessage("colocado"); return; } else { e.getPlayer().sendMessage("n pode colocar"); e.setCancelled(true); } } @EventHandler public void onBreak(BlockBreakEvent e) { int hash = Objects.hash(e.getBlock().getTypeId(), e.getBlock().getData()); if (blocosPermitidos.contains(hash)) { e.getPlayer().sendMessage("quebrado"); return; } else { e.getPlayer().sendMessage("n pode quebrar"); e.setCancelled(true); } } }E a config:
Teoricamente o player só pode quebrar/colocar os blocos que estão na config, porém os IDs 323(Placa), 50 (tocha), 198 (Vara do End ( ͡° ͜ʖ ͡°) ) e provavelmente alguns outros não funcionam.
Como eu arrumo isso? '-'
Obrigado!
Editado por Metalflame12Link para o comentário
Compartilhar em outros sites
13 respostass a esta questão
Posts Recomendados