Create wand command, and make it work.
This commit is contained in:
		| @@ -1,5 +1,6 @@ | ||||
| package nl.Steffion.BlockHunt; | ||||
|  | ||||
| import nl.Steffion.BlockHunt.Listeners.PlayerListener; | ||||
| import nl.Steffion.BlockHunt.Managers.CommandC; | ||||
| import nl.Steffion.BlockHunt.Managers.ConfigC; | ||||
| import nl.Steffion.BlockHunt.Managers.MessageM; | ||||
| @@ -18,9 +19,8 @@ public class BlockHunt extends JavaPlugin implements Listener { | ||||
| 	public void onEnable() { | ||||
| 		W.newFiles(); | ||||
| 		getServer().getPluginManager().registerEvents(this, this); | ||||
| 		// getServer().getPluginManager().registerEvents(new | ||||
| 		// PlayerListener(this), | ||||
| 		// this); | ||||
| 		getServer().getPluginManager().registerEvents(new PlayerListener(), | ||||
| 				this); | ||||
| 		MessageM.sendFMessage(null, ConfigC.log_Enabled, true, "name-" | ||||
| 				+ W.pluginName, "version-" + W.pluginVersion, "autors-" | ||||
| 				+ 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; | ||||
|  | ||||
| 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.block.Action; | ||||
| import org.bukkit.event.player.PlayerInteractEvent; | ||||
| import org.bukkit.inventory.ItemStack; | ||||
| import org.bukkit.inventory.meta.ItemMeta; | ||||
|  | ||||
| public class PlayerListener implements Listener { | ||||
|  | ||||
| @@ -10,6 +24,59 @@ public class PlayerListener implements Listener { | ||||
| 	// 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) | ||||
| 	// public void onPlayerTeleportEvent(final PlayerTeleportEvent event) { | ||||
| 	// final Player player = event.getPlayer(); | ||||
|   | ||||
| @@ -42,6 +42,14 @@ public enum CommandC { | ||||
| 			ConfigC.help_reload, | ||||
| 			1, | ||||
| 			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 ("%_", | ||||
| 			"%_", | ||||
| 			new CMDnotfound(), | ||||
|   | ||||
| @@ -18,6 +18,16 @@ public enum ConfigC { | ||||
| 	commandEnabled_info (true, W.config), | ||||
| 	commandEnabled_help (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.", | ||||
| 			W.messages), | ||||
| @@ -27,8 +37,13 @@ public enum ConfigC { | ||||
| 	help_info ("%NDisplays the plugin's info.", W.messages), | ||||
| 	help_help ("%NShows a list of commands.", 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_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!", | ||||
| 			W.messages), | ||||
| @@ -37,7 +52,8 @@ public enum ConfigC { | ||||
| 			+ W.pluginName + " help %Efor more info.", W.messages), | ||||
| 	error_notEnoughArguments ("%EYou're missing arguments, correct syntax: %A/%syntax%", | ||||
| 			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; | ||||
| 	ConfigM config; | ||||
|   | ||||
| @@ -19,8 +19,7 @@ public class PlayerM { | ||||
| 		info (main + "info", PType.ALL), | ||||
| 		help (main + "help", PType.ALL), | ||||
| 		reload (main + "reload", PType.MODERATOR), | ||||
| 		list (main + "list", PType.MODERATOR), | ||||
| 		preview (main + "preview", PType.ADMIN); | ||||
| 		create (main + "create", PType.ADMIN); | ||||
|  | ||||
| 		public String perm; | ||||
| 		public PType type; | ||||
|   | ||||
| @@ -1,9 +1,13 @@ | ||||
| package nl.Steffion.BlockHunt; | ||||
|  | ||||
| import java.util.ArrayList; | ||||
| import java.util.HashMap; | ||||
|  | ||||
| import org.bukkit.entity.Player; | ||||
|  | ||||
| import nl.Steffion.BlockHunt.Managers.ConfigM; | ||||
| import nl.Steffion.BlockHunt.Managers.MessageM; | ||||
| import nl.Steffion.BlockHunt.Serializables.LocationSerializable; | ||||
|  | ||||
| public class W { | ||||
| 	/* | ||||
| @@ -17,6 +21,8 @@ public class W { | ||||
| 	public static String pluginMainPermission = pluginName + "."; | ||||
|  | ||||
| 	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 messages = new ConfigM("messages", ""); | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 
				 Steffion
					Steffion