adding serverchange when rightclicking the villager
This commit is contained in:
		| @@ -1,6 +1,6 @@ | ||||
| package eu.mhsl.craftattack.spawn; | ||||
|  | ||||
| import eu.mhsl.craftattack.spawn.command.SpawnWorldMuseumVillagerCommand; | ||||
| import eu.mhsl.craftattack.spawn.command.WorldMuseumVillagerCommand; | ||||
| import eu.mhsl.craftattack.spawn.listener.PlayerEntityInteractListener; | ||||
| import eu.mhsl.craftattack.spawn.util.VillagerSpawner; | ||||
| import org.bukkit.Bukkit; | ||||
| @@ -9,21 +9,33 @@ import org.bukkit.plugin.java.JavaPlugin; | ||||
| import java.util.Objects; | ||||
|  | ||||
| public final class Main extends JavaPlugin { | ||||
|     private static Main instance; | ||||
|  | ||||
|     @Override | ||||
|     public void onEnable() { | ||||
| //        init | ||||
|         saveDefaultConfig(); | ||||
|         VillagerSpawner.spawnVillager(); | ||||
|         instance = this; | ||||
|  | ||||
| //        register Messaging-Channels | ||||
|         this.getServer().getMessenger().registerOutgoingPluginChannel(this, "BungeeCord"); | ||||
|  | ||||
| //        register Commands | ||||
|         Objects.requireNonNull(this.getCommand("worldMuseum-villager")).setExecutor(new SpawnWorldMuseumVillagerCommand()); | ||||
|         Objects.requireNonNull(this.getCommand("worldMuseum-villager")).setExecutor(new WorldMuseumVillagerCommand()); | ||||
|  | ||||
| //        register listeners | ||||
|         Bukkit.getPluginManager().registerEvents(new PlayerEntityInteractListener(), this); | ||||
|  | ||||
| //        Load config & spawn Villager | ||||
|         saveDefaultConfig(); | ||||
|         VillagerSpawner.spawnVillager(); | ||||
|  | ||||
|  | ||||
|     } | ||||
|     @Override | ||||
|     public void onDisable() { | ||||
|         VillagerSpawner.killVillager(); | ||||
|     } | ||||
|  | ||||
|     public static Main getInstance() { | ||||
|         return instance; | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -12,7 +12,7 @@ import org.jetbrains.annotations.NotNull; | ||||
| import java.util.ArrayList; | ||||
| import java.util.List; | ||||
| 
 | ||||
| public class SpawnWorldMuseumVillagerCommand implements CommandExecutor { | ||||
| public class WorldMuseumVillagerCommand implements CommandExecutor { | ||||
|     @Override | ||||
|     public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) { | ||||
|         if (!(sender instanceof Player player)) return false; | ||||
| @@ -1,15 +1,19 @@ | ||||
| package eu.mhsl.craftattack.spawn.listener; | ||||
|  | ||||
| import eu.mhsl.craftattack.spawn.util.ConfigUtil; | ||||
| import eu.mhsl.craftattack.spawn.util.PluginMessage; | ||||
| import eu.mhsl.craftattack.spawn.util.VillagerSpawner; | ||||
| import org.bukkit.event.EventHandler; | ||||
| import org.bukkit.event.Listener; | ||||
| import org.bukkit.event.player.PlayerInteractAtEntityEvent; | ||||
|  | ||||
| public class PlayerEntityInteractListener implements Listener { | ||||
|     private final PluginMessage pluginMessage = new PluginMessage(); | ||||
|     @EventHandler | ||||
|     public void onInteract(PlayerInteractAtEntityEvent event) { | ||||
|         if (!event.getRightClicked().equals(VillagerSpawner.getStaticVillager())) return; | ||||
|         event.setCancelled(true); | ||||
|         System.out.println("test"); | ||||
|         String servername = ConfigUtil.getConfigUtil().getConfig().getString("world-museum-name"); | ||||
|         pluginMessage.connect(event.getPlayer(), servername); | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -0,0 +1,16 @@ | ||||
| package eu.mhsl.craftattack.spawn.util; | ||||
|  | ||||
| import com.google.common.io.ByteArrayDataOutput; | ||||
| import com.google.common.io.ByteStreams; | ||||
| import eu.mhsl.craftattack.spawn.Main; | ||||
| import org.bukkit.entity.Player; | ||||
|  | ||||
| public class PluginMessage { | ||||
|     private final Main plugin = Main.getInstance(); | ||||
|     public void connect(Player player, String server) { | ||||
|         ByteArrayDataOutput output = ByteStreams.newDataOutput(); | ||||
|         output.writeUTF("Connect"); | ||||
|         output.writeUTF(server); | ||||
|         player.sendPluginMessage(plugin, "BungeeCord", output.toByteArray()); | ||||
|     } | ||||
| } | ||||
| @@ -3,4 +3,5 @@ villagerLocation: | ||||
|   - 0 #y | ||||
|   - 0 #z | ||||
|   - 0 #yaw | ||||
|   - 0 #pitch | ||||
|   - 0 #pitch | ||||
| world-museum-name: worldmuseum | ||||
		Reference in New Issue
	
	Block a user