Create wand command, and make it work.
This commit is contained in:
		| @@ -1,5 +1,6 @@ | |||||||
| package nl.Steffion.BlockHunt; | package nl.Steffion.BlockHunt; | ||||||
|  |  | ||||||
|  | import nl.Steffion.BlockHunt.Listeners.PlayerListener; | ||||||
| import nl.Steffion.BlockHunt.Managers.CommandC; | import nl.Steffion.BlockHunt.Managers.CommandC; | ||||||
| import nl.Steffion.BlockHunt.Managers.ConfigC; | import nl.Steffion.BlockHunt.Managers.ConfigC; | ||||||
| import nl.Steffion.BlockHunt.Managers.MessageM; | import nl.Steffion.BlockHunt.Managers.MessageM; | ||||||
| @@ -18,9 +19,8 @@ public class BlockHunt extends JavaPlugin implements Listener { | |||||||
| 	public void onEnable() { | 	public void onEnable() { | ||||||
| 		W.newFiles(); | 		W.newFiles(); | ||||||
| 		getServer().getPluginManager().registerEvents(this, this); | 		getServer().getPluginManager().registerEvents(this, this); | ||||||
| 		// getServer().getPluginManager().registerEvents(new | 		getServer().getPluginManager().registerEvents(new PlayerListener(), | ||||||
| 		// PlayerListener(this), | 				this); | ||||||
| 		// this); |  | ||||||
| 		MessageM.sendFMessage(null, ConfigC.log_Enabled, true, "name-" | 		MessageM.sendFMessage(null, ConfigC.log_Enabled, true, "name-" | ||||||
| 				+ W.pluginName, "version-" + W.pluginVersion, "autors-" | 				+ W.pluginName, "version-" + W.pluginVersion, "autors-" | ||||||
| 				+ W.pluginAutors); | 				+ W.pluginAutors); | ||||||
|   | |||||||
							
								
								
									
										54
									
								
								src/nl/Steffion/BlockHunt/Commands/CMDwand.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										54
									
								
								src/nl/Steffion/BlockHunt/Commands/CMDwand.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,54 @@ | |||||||
|  | package nl.Steffion.BlockHunt.Commands; | ||||||
|  |  | ||||||
|  | import java.util.ArrayList; | ||||||
|  | import java.util.List; | ||||||
|  |  | ||||||
|  | import nl.Steffion.BlockHunt.W; | ||||||
|  | import nl.Steffion.BlockHunt.Managers.ConfigC; | ||||||
|  | import nl.Steffion.BlockHunt.Managers.MessageM; | ||||||
|  | import nl.Steffion.BlockHunt.Managers.PlayerM; | ||||||
|  | import nl.Steffion.BlockHunt.Managers.PlayerM.PermsC; | ||||||
|  |  | ||||||
|  | import org.bukkit.Material; | ||||||
|  | import org.bukkit.Sound; | ||||||
|  | import org.bukkit.command.Command; | ||||||
|  | import org.bukkit.entity.Player; | ||||||
|  | import org.bukkit.inventory.ItemStack; | ||||||
|  | import org.bukkit.inventory.meta.ItemMeta; | ||||||
|  |  | ||||||
|  | public class CMDwand extends DefaultCMD { | ||||||
|  |  | ||||||
|  | 	@Override | ||||||
|  | 	public boolean exectue(Player player, Command cmd, String label, | ||||||
|  | 			String[] args) { | ||||||
|  | 		if (PlayerM.hasPerm(player, PermsC.create, true)) { | ||||||
|  | 			if (player != null) { | ||||||
|  | 				ItemStack wand = new ItemStack( | ||||||
|  | 						Material.getMaterial((Integer) W.config | ||||||
|  | 								.get(ConfigC.wandID))); | ||||||
|  | 				ItemMeta im = wand.getItemMeta(); | ||||||
|  | 				im.setDisplayName(MessageM.replaceAll((String) W.config | ||||||
|  | 						.get(ConfigC.wandName))); | ||||||
|  | 				W.config.load(); | ||||||
|  | 				List<String> lores = W.config.getFile().getStringList( | ||||||
|  | 						ConfigC.wandDescription.getLocation()); | ||||||
|  | 				List<String> lores2 = new ArrayList<String>(); | ||||||
|  | 				for (String lore : lores) { | ||||||
|  | 					lores2.add(MessageM.replaceAll(lore)); | ||||||
|  | 				} | ||||||
|  |  | ||||||
|  | 				im.setLore(lores2); | ||||||
|  | 				wand.setItemMeta(im); | ||||||
|  | 				player.getInventory().addItem(wand); | ||||||
|  | 				player.playSound(player.getLocation(), Sound.ORB_PICKUP, 5, 0); | ||||||
|  | 				MessageM.sendFMessage(player, ConfigC.normal_gaveWand, true, | ||||||
|  | 						"type-" | ||||||
|  | 								+ wand.getType().toString() | ||||||
|  | 										.replaceAll("_", " ").toLowerCase()); | ||||||
|  | 			} else { | ||||||
|  | 				MessageM.sendFMessage(player, ConfigC.error_onlyIngame, true); | ||||||
|  | 			} | ||||||
|  | 		} | ||||||
|  | 		return true; | ||||||
|  | 	} | ||||||
|  | } | ||||||
| @@ -1,6 +1,20 @@ | |||||||
| package nl.Steffion.BlockHunt.Listeners; | package nl.Steffion.BlockHunt.Listeners; | ||||||
|  |  | ||||||
|  | import nl.Steffion.BlockHunt.W; | ||||||
|  | import nl.Steffion.BlockHunt.Managers.ConfigC; | ||||||
|  | import nl.Steffion.BlockHunt.Managers.MessageM; | ||||||
|  | import nl.Steffion.BlockHunt.Managers.PlayerM; | ||||||
|  | import nl.Steffion.BlockHunt.Managers.PlayerM.PermsC; | ||||||
|  | import nl.Steffion.BlockHunt.Serializables.LocationSerializable; | ||||||
|  |  | ||||||
|  | import org.bukkit.entity.Player; | ||||||
|  | import org.bukkit.event.EventHandler; | ||||||
|  | import org.bukkit.event.EventPriority; | ||||||
| import org.bukkit.event.Listener; | import org.bukkit.event.Listener; | ||||||
|  | import org.bukkit.event.block.Action; | ||||||
|  | import org.bukkit.event.player.PlayerInteractEvent; | ||||||
|  | import org.bukkit.inventory.ItemStack; | ||||||
|  | import org.bukkit.inventory.meta.ItemMeta; | ||||||
|  |  | ||||||
| public class PlayerListener implements Listener { | public class PlayerListener implements Listener { | ||||||
|  |  | ||||||
| @@ -10,6 +24,59 @@ public class PlayerListener implements Listener { | |||||||
| 	// this.plugin = plugin; | 	// this.plugin = plugin; | ||||||
| 	// } | 	// } | ||||||
|  |  | ||||||
|  | 	@EventHandler(priority = EventPriority.NORMAL) | ||||||
|  | 	public void onPlayerInteractEvent(PlayerInteractEvent event) { | ||||||
|  | 		Player player = event.getPlayer(); | ||||||
|  | 		if (PlayerM.hasPerm(player, PermsC.create, false)) { | ||||||
|  | 			ItemStack item = player.getItemInHand(); | ||||||
|  |  | ||||||
|  | 			if (item.getItemMeta().hasDisplayName()) { | ||||||
|  | 				ItemMeta im = item.getItemMeta(); | ||||||
|  | 				if (im.getDisplayName().equals( | ||||||
|  | 						MessageM.replaceAll((String) W.config | ||||||
|  | 								.get(ConfigC.wandName)))) { | ||||||
|  | 					Action action = event.getAction(); | ||||||
|  | 					if (event.hasBlock()) { | ||||||
|  | 						LocationSerializable location = new LocationSerializable( | ||||||
|  | 								event.getClickedBlock().getLocation()); | ||||||
|  | 						if (action.equals(Action.LEFT_CLICK_BLOCK)) { | ||||||
|  | 							event.setCancelled(true); | ||||||
|  | 							if (W.pos1.get(player) == null | ||||||
|  | 									|| !W.pos1.get(player).equals(location)) { | ||||||
|  | 								MessageM.sendFMessage( | ||||||
|  | 										player, | ||||||
|  | 										ConfigC.normal_setPosition, | ||||||
|  | 										true, | ||||||
|  | 										"number-1", | ||||||
|  | 										"pos-%N(%A" + location.getBlockX() | ||||||
|  | 												+ "%N, %A" | ||||||
|  | 												+ location.getBlockY() | ||||||
|  | 												+ "%N, %A" | ||||||
|  | 												+ location.getBlockZ() + "%N)"); | ||||||
|  | 								W.pos1.put(player, location); | ||||||
|  | 							} | ||||||
|  | 						} else if (action.equals(Action.RIGHT_CLICK_BLOCK)) { | ||||||
|  | 							event.setCancelled(true); | ||||||
|  | 							if (W.pos2.get(player) == null | ||||||
|  | 									|| !W.pos2.get(player).equals(location)) { | ||||||
|  | 								MessageM.sendFMessage( | ||||||
|  | 										player, | ||||||
|  | 										ConfigC.normal_setPosition, | ||||||
|  | 										true, | ||||||
|  | 										"number-2", | ||||||
|  | 										"pos-%N(%A" + location.getBlockX() | ||||||
|  | 												+ "%N, %A" | ||||||
|  | 												+ location.getBlockY() | ||||||
|  | 												+ "%N, %A" | ||||||
|  | 												+ location.getBlockZ() + "%N)"); | ||||||
|  | 								W.pos2.put(player, location); | ||||||
|  | 							} | ||||||
|  | 						} | ||||||
|  | 					} | ||||||
|  | 				} | ||||||
|  | 			} | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
| 	// @EventHandler(priority = EventPriority.MONITOR) | 	// @EventHandler(priority = EventPriority.MONITOR) | ||||||
| 	// public void onPlayerTeleportEvent(final PlayerTeleportEvent event) { | 	// public void onPlayerTeleportEvent(final PlayerTeleportEvent event) { | ||||||
| 	// final Player player = event.getPlayer(); | 	// final Player player = event.getPlayer(); | ||||||
|   | |||||||
| @@ -42,6 +42,14 @@ public enum CommandC { | |||||||
| 			ConfigC.help_reload, | 			ConfigC.help_reload, | ||||||
| 			1, | 			1, | ||||||
| 			W.pluginName + " <reload|r>"), | 			W.pluginName + " <reload|r>"), | ||||||
|  | 	WAND ("BlockHunt%wand_", | ||||||
|  | 			"BlockHunt%w_", | ||||||
|  | 			new CMDwand(), | ||||||
|  | 			ConfigC.commandEnabled_wand, | ||||||
|  | 			PermsC.create, | ||||||
|  | 			ConfigC.help_wand, | ||||||
|  | 			1, | ||||||
|  | 			W.pluginName + " <wand|w>"), | ||||||
| 	NOT_FOUND ("%_", | 	NOT_FOUND ("%_", | ||||||
| 			"%_", | 			"%_", | ||||||
| 			new CMDnotfound(), | 			new CMDnotfound(), | ||||||
|   | |||||||
| @@ -18,6 +18,16 @@ public enum ConfigC { | |||||||
| 	commandEnabled_info (true, W.config), | 	commandEnabled_info (true, W.config), | ||||||
| 	commandEnabled_help (true, W.config), | 	commandEnabled_help (true, W.config), | ||||||
| 	commandEnabled_reload (true, W.config), | 	commandEnabled_reload (true, W.config), | ||||||
|  | 	commandEnabled_wand (true, W.config), | ||||||
|  |  | ||||||
|  | 	wandID (280, W.config), | ||||||
|  | 	wandName ("%A&l" + W.pluginName + "%N's selection wand", W.config), | ||||||
|  | 	wandDescription (new String[] { | ||||||
|  | 			"%NUse this item to select an arena for your arena.", | ||||||
|  | 			"%ALeft-Click%N to select point #1.", | ||||||
|  | 			"%ARight-Click%N to select point #2.", | ||||||
|  | 			"%NUse the create command to define your arena.", | ||||||
|  | 			"%A/" + W.pluginName + " <help|h>" }, W.config), | ||||||
|  |  | ||||||
| 	log_Enabled ("%N%name%&a&k + %N%version% is now Enabled. Made by %A%autors%%N.", | 	log_Enabled ("%N%name%&a&k + %N%version% is now Enabled. Made by %A%autors%%N.", | ||||||
| 			W.messages), | 			W.messages), | ||||||
| @@ -27,8 +37,13 @@ public enum ConfigC { | |||||||
| 	help_info ("%NDisplays the plugin's info.", W.messages), | 	help_info ("%NDisplays the plugin's info.", W.messages), | ||||||
| 	help_help ("%NShows a list of commands.", W.messages), | 	help_help ("%NShows a list of commands.", W.messages), | ||||||
| 	help_reload ("%NReloads all configs.", W.messages), | 	help_reload ("%NReloads all configs.", W.messages), | ||||||
|  | 	help_wand ("%NGives you the wand selection tool.", W.messages), | ||||||
|  |  | ||||||
| 	normal_reloadedConfigs ("&aReloaded all configs!", W.messages), | 	normal_reloadedConfigs ("&aReloaded all configs!", W.messages), | ||||||
|  | 	normal_gaveWand ("%NHere you go ;)! &o(Use the %A&o%type%%N&o!)", | ||||||
|  | 			W.messages), | ||||||
|  | 	normal_setPosition ("%NSet position %A#%number%%N to location: %pos%.", | ||||||
|  | 			W.messages), | ||||||
|  |  | ||||||
| 	error_noPermission ("%EYou don't have the permissions to do that!", | 	error_noPermission ("%EYou don't have the permissions to do that!", | ||||||
| 			W.messages), | 			W.messages), | ||||||
| @@ -37,7 +52,8 @@ public enum ConfigC { | |||||||
| 			+ W.pluginName + " help %Efor more info.", W.messages), | 			+ W.pluginName + " help %Efor more info.", W.messages), | ||||||
| 	error_notEnoughArguments ("%EYou're missing arguments, correct syntax: %A/%syntax%", | 	error_notEnoughArguments ("%EYou're missing arguments, correct syntax: %A/%syntax%", | ||||||
| 			W.messages), | 			W.messages), | ||||||
| 	error_noArena ("%ENo arena found with the name '%A%name%%E'.", W.messages); | 	error_noArena ("%ENo arena found with the name '%A%name%%E'.", W.messages), | ||||||
|  | 	error_onlyIngame ("%EThis is an only in-game command!", W.messages); | ||||||
|  |  | ||||||
| 	Object value; | 	Object value; | ||||||
| 	ConfigM config; | 	ConfigM config; | ||||||
|   | |||||||
| @@ -19,8 +19,7 @@ public class PlayerM { | |||||||
| 		info (main + "info", PType.ALL), | 		info (main + "info", PType.ALL), | ||||||
| 		help (main + "help", PType.ALL), | 		help (main + "help", PType.ALL), | ||||||
| 		reload (main + "reload", PType.MODERATOR), | 		reload (main + "reload", PType.MODERATOR), | ||||||
| 		list (main + "list", PType.MODERATOR), | 		create (main + "create", PType.ADMIN); | ||||||
| 		preview (main + "preview", PType.ADMIN); |  | ||||||
|  |  | ||||||
| 		public String perm; | 		public String perm; | ||||||
| 		public PType type; | 		public PType type; | ||||||
|   | |||||||
| @@ -1,9 +1,13 @@ | |||||||
| package nl.Steffion.BlockHunt; | package nl.Steffion.BlockHunt; | ||||||
|  |  | ||||||
| import java.util.ArrayList; | import java.util.ArrayList; | ||||||
|  | import java.util.HashMap; | ||||||
|  |  | ||||||
|  | import org.bukkit.entity.Player; | ||||||
|  |  | ||||||
| import nl.Steffion.BlockHunt.Managers.ConfigM; | import nl.Steffion.BlockHunt.Managers.ConfigM; | ||||||
| import nl.Steffion.BlockHunt.Managers.MessageM; | import nl.Steffion.BlockHunt.Managers.MessageM; | ||||||
|  | import nl.Steffion.BlockHunt.Serializables.LocationSerializable; | ||||||
|  |  | ||||||
| public class W { | public class W { | ||||||
| 	/* | 	/* | ||||||
| @@ -17,6 +21,8 @@ public class W { | |||||||
| 	public static String pluginMainPermission = pluginName + "."; | 	public static String pluginMainPermission = pluginName + "."; | ||||||
|  |  | ||||||
| 	public static ArrayList<String> newFiles = new ArrayList<String>(); | 	public static ArrayList<String> newFiles = new ArrayList<String>(); | ||||||
|  | 	public static HashMap<Player, LocationSerializable> pos1 = new HashMap<Player, LocationSerializable>(); | ||||||
|  | 	public static HashMap<Player, LocationSerializable> pos2 = new HashMap<Player, LocationSerializable>(); | ||||||
| 	public static ConfigM config = new ConfigM("config", ""); | 	public static ConfigM config = new ConfigM("config", ""); | ||||||
| 	public static ConfigM messages = new ConfigM("messages", ""); | 	public static ConfigM messages = new ConfigM("messages", ""); | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 
				 Steffion
					Steffion