Frogguer Postado Maio 29, 2018 Denunciar Compartilhar Postado Maio 29, 2018 Como posso salvar uma um villager com uma scoreboard na config e que abra uma gui pegando a localização do villager na config Link para o comentário Compartilhar em outros sites More sharing options...
0 zAryon Postado Maio 29, 2018 Denunciar Compartilhar Postado Maio 29, 2018 Não entendi a parte do villager, mas utilize a CitizensAPI para criar. Para abrir um inventário quando clicar é so pegar o evento de interagir com outra entidade, checar se ele é um villager, pega o nome, se for igual ao definido na config, abre o inventário. Se te ajudei, marca como melhor resposta e dá um like. Link para o comentário Compartilhar em outros sites More sharing options...
0 Frogguer Postado Maio 29, 2018 Autor Denunciar Compartilhar Postado Maio 29, 2018 Não entendi a parte do villager, mas utilize a CitizensAPI para criar. Para abrir um inventário quando clicar é so pegar o evento de interagir com outra entidade, checar se ele é um villager, pega o nome, se for igual ao definido na config, abre o inventário. Se te ajudei, marca como melhor resposta e dá um like. tipo quero criar um villager e quero que o nome salve na config, pode me da um exemplo ? Link para o comentário Compartilhar em outros sites More sharing options...
0 zAryon Postado Maio 29, 2018 Denunciar Compartilhar Postado Maio 29, 2018 tipo quero criar um villager e quero que o nome salve na config, pode me da um exemplo ? Não há necessidade de fazer isso. Utilize a API do Citizens para criar um villager, é muito mais simples. Criar villager imóvel e não tomar dano é um pouquinho avançado e você tem que fazer um reflections (creio eu). E dentro do seu plugin você pode criar um comando para fazer o Citizens do dono do servidor executar um comando para criar um npc com o nome que ele definiu na config, ou você definiu. Depois é só fazer um evento de abrir inventário quando clicar nesse determinado villager com o nome. Link para o comentário Compartilhar em outros sites More sharing options...
0 Ducky Postado Maio 29, 2018 Denunciar Compartilhar Postado Maio 29, 2018 Não há necessidade de fazer isso. Utilize a API do Citizens para criar um villager, é muito mais simples. Criar villager imóvel e não tomar dano é um pouquinho avançado e você tem que fazer um reflections (creio eu). E dentro do seu plugin você pode criar um comando para fazer o Citizens do dono do servidor executar um comando para criar um npc com o nome que ele definiu na config, ou você definiu. Depois é só fazer um evento de abrir inventário quando clicar nesse determinado villager com o nome. Não precisa, é só tirar AI da Entity spawnada, setar a location na config e recarregar a location no onenable.. Simples @topic Villager villager = (Villager)world.spawnCEntity(location, EntityType.VILLAGER); ((CraftVillager)villager).getHandle().setProfession(5); Essa é a base para spawnar o villager, agora pesquisa como remover AI de entity e só setar o nome Link para o comentário Compartilhar em outros sites More sharing options...
0 Frogguer Postado Maio 29, 2018 Autor Denunciar Compartilhar Postado Maio 29, 2018 Não precisa, é só tirar AI da Entity spawnada, setar a location na config e recarregar a location no onenable.. Simples @topic Villager villager = (Villager)world.spawnCEntity(location, EntityType.VILLAGER); ((CraftVillager)villager).getHandle().setProfession(5); Essa é a base para spawnar o villager, agora pesquisa como remover AI de entity e só setar o nome Pode me da um exemplo ? Link para o comentário Compartilhar em outros sites More sharing options...
0 zAryon Postado Maio 29, 2018 Denunciar Compartilhar Postado Maio 29, 2018 Não precisa, é só tirar AI da Entity spawnada, setar a location na config e recarregar a location no onenable.. Simples @topic Villager villager = (Villager)world.spawnCEntity(location, EntityType.VILLAGER); ((CraftVillager)villager).getHandle().setProfession(5); Essa é a base para spawnar o villager, agora pesquisa como remover AI de entity e só setar o nome Ajuda o garoto ai, deixo em tuas mãos Link para o comentário Compartilhar em outros sites More sharing options...
0 Frogguer Postado Maio 30, 2018 Autor Denunciar Compartilhar Postado Maio 30, 2018 Acho que não há necessidade de salvar a localidade do npc, você criando ele, ele não será excluído quando recarregar o servidor. Criar o villager Villager v = (Villager) p.getWorld().spawnEntity(p.getLocation(), EntityType.VILLAGER); v.setCustomName("Irineu"); v.setCustomNameVisible(true); agora, pra retirar a NoAI do mesmo, use o código abaixo public void removeAI(Entity en) { net.minecraft.server.v1_8_R3.Entity nmsEn = ((CraftEntity) en).getHandle(); NBTTagCompound compound = new NBTTagCompound(); nmsEn.c(compound); compound.setByte("NoAI", (byte) 1); nmsEn.f(compound); } Pra retirar, é assim (continuando o código de criação) Villager v = (Villager) p.getWorld().spawnEntity(p.getLocation(), EntityType.VILLAGER); v.setCustomName("Irineu"); v.setCustomNameVisible(true); removeAI(v); Mas caso queira salvar... String locSerializedDePobre = p.getWorld().getName() + ":" + p.getLocation().getX() + ":" + p.getLocation().getY() + ":" + p.getLocation().getZ() getConfig().set("villager-location", locSerializedDePobre); saveConfig(); agora pra pegar a localidade "serializada" (de pobre) String[] split = getConfig().getString("villager-location").split(":"); String world = split[0]; double x = Double.valueOf(split[1]); double y = Double.valueOf(split[2]); double z = Double.valueOf(split[3]); Location loc = new Location(Bukkit.getWorld(world), x, y, z); E fiz assim mais quando o server fecha e abre de volta o villager não pega mais, mais vou tentar essa ae da config Link para o comentário Compartilhar em outros sites More sharing options...
0 Saimon Postado Maio 30, 2018 Denunciar Compartilhar Postado Maio 30, 2018 Villager Villager = (Villager)p.getWorld().spawn(p.getLocation(), Villager.class); Villager.addPotionEffect(new PotionEffect(PotionEffectType.SLOW, 99*99*99, 127)); Villager.setAdult(); Villager.setCustomName("Nome"); Villager.setCustomNameVisible(true); Villager.setProfession(Profession.BLACKSMITH); Não sei se ajudei. Link para o comentário Compartilhar em outros sites More sharing options...
0 Frogguer Postado Maio 30, 2018 Autor Denunciar Compartilhar Postado Maio 30, 2018 Acho que não há necessidade de salvar a localidade do npc, você criando ele, ele não será excluído quando recarregar o servidor. Criar o villager Villager v = (Villager) p.getWorld().spawnEntity(p.getLocation(), EntityType.VILLAGER); v.setCustomName("Irineu"); v.setCustomNameVisible(true); agora, pra retirar a NoAI do mesmo, use o código abaixo public void removeAI(Entity en) { net.minecraft.server.v1_8_R3.Entity nmsEn = ((CraftEntity) en).getHandle(); NBTTagCompound compound = new NBTTagCompound(); nmsEn.c(compound); compound.setByte("NoAI", (byte) 1); nmsEn.f(compound); } Pra retirar, é assim (continuando o código de criação) Villager v = (Villager) p.getWorld().spawnEntity(p.getLocation(), EntityType.VILLAGER); v.setCustomName("Irineu"); v.setCustomNameVisible(true); removeAI(v); Mas caso queira salvar... String locSerializedDePobre = p.getWorld().getName() + ":" + p.getLocation().getX() + ":" + p.getLocation().getY() + ":" + p.getLocation().getZ() getConfig().set("villager-location", locSerializedDePobre); saveConfig(); agora pra pegar a localidade "serializada" (de pobre) String[] split = getConfig().getString("villager-location").split(":"); String world = split[0]; double x = Double.valueOf(split[1]); double y = Double.valueOf(split[2]); double z = Double.valueOf(split[3]); Location loc = new Location(Bukkit.getWorld(world), x, y, z); Não funcionou '- ' Link para o comentário Compartilhar em outros sites More sharing options...
0 Ducky Postado Junho 6, 2018 Denunciar Compartilhar Postado Junho 6, 2018 package ml.lbplugins.lbcombatlog; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.World; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.EntityType; import org.bukkit.entity.Player; import org.bukkit.entity.Villager; import org.bukkit.event.Listener; import org.bukkit.plugin.java.JavaPlugin; public class Main extends JavaPlugin implements Listener { @Override public void onEnable() { if (getConfig().contains("Lojas.Mundo")) { World mundo = (Bukkit.getServer().getWorld(getConfig().getString("Lojas.Mundo"))); Double x = getConfig().getDouble("Lojas.X"); Double y = getConfig().getDouble("Lojas.Y"); Double z = getConfig().getDouble("Lojas.Z"); float YI = (float) getConfig().getDouble("Lojas.Yi"); Float PI = (float) getConfig().getDouble("Lojas.Pi"); Location npc = new Location(mundo, x, y, z, YI, PI); Villager v = (Villager) mundo.spawnEntity(npc, EntityType.VILLAGER); v.setCustomName("Irineu"); v.setCustomNameVisible(true); } } @Override public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { Player p = (Player) sender; if (command.getName().equalsIgnoreCase("?")) { Villager v = (Villager) p.getWorld().spawnEntity(p.getLocation(), EntityType.VILLAGER); v.setCustomName("Irineu"); v.setCustomNameVisible(true); Double x = p.getLocation().getX(); Double y = p.getLocation().getY(); Double z = p.getLocation().getZ(); float yi = p.getLocation().getYaw(); float pi = p.getLocation().getPitch(); getConfig().set("Lojas.Mundo", p.getWorld().getName()); getConfig().set("Lojas.X", x); getConfig().set("Lojas.Y", y); getConfig().set("Lojas.Z", z); getConfig().set("Lojas.Yi", yi); getConfig().set("Lojas..Pi", pi); saveConfig(); } return false; } } Link para o comentário Compartilhar em outros sites More sharing options...
0 gmoehra Postado Junho 7, 2018 Denunciar Compartilhar Postado Junho 7, 2018 Sua dúvida foi marcada como [Resolvido] e movido à área de dúvidas resolvidas. Atenciosamente, Gamer's Board Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Frogguer
Como posso salvar uma um villager com uma scoreboard na config
e que abra uma gui pegando a localização do villager na config
Link para o comentário
Compartilhar em outros sites
11 respostass a esta questão
Posts Recomendados