PageRenderTime 155ms CodeModel.GetById 30ms RepoModel.GetById 5ms app.codeStats 0ms

/SpoutBackpack/src/me/neatmonster/spoutbackpack/SBInputListener.java

https://github.com/st-remy/SpoutBackpack
Java | 420 lines | 412 code | 8 blank | 0 comment | 316 complexity | fdec0cfef52f219e0cd4b3d7690f64d6 MD5 | raw file
  1. package me.neatmonster.spoutbackpack;
  2. import java.util.logging.Logger;
  3. import net.minecraft.server.EntityPlayer;
  4. import net.minecraft.server.Packet100OpenWindow;
  5. import net.minecraft.server.Packet101CloseWindow;
  6. import org.bukkit.ChatColor;
  7. import org.bukkit.Material;
  8. import org.bukkit.craftbukkit.entity.CraftPlayer;
  9. import org.bukkit.inventory.Inventory;
  10. import org.getspout.spout.inventory.CustomInventory;
  11. import org.getspout.spoutapi.event.input.InputListener;
  12. import org.getspout.spoutapi.event.input.KeyPressedEvent;
  13. import org.getspout.spoutapi.gui.Color;
  14. import org.getspout.spoutapi.gui.GenericLabel;
  15. import org.getspout.spoutapi.gui.ScreenType;
  16. import org.getspout.spoutapi.keyboard.Keyboard;
  17. import org.getspout.spoutapi.player.SpoutPlayer;
  18. public class SBInputListener extends InputListener {
  19. private SpoutBackpack plugin;
  20. public static Logger logger = Logger.getLogger("minecraft");
  21. public SBInputListener(SpoutBackpack plugin) {
  22. this.plugin = plugin;
  23. }
  24. @SuppressWarnings("deprecation")
  25. public void onKeyPressedEvent(KeyPressedEvent event) {
  26. if (event.getKey() == getKeyInConfig("Backpack.Key", "B")) {
  27. ScreenType screentype = event.getScreenType();
  28. if (screentype == ScreenType.WORKBENCH_INVENTORY) {
  29. return;
  30. }
  31. if (plugin.canOpenBackpack(event.getPlayer().getWorld(),
  32. event.getPlayer()) == false) {
  33. return;
  34. }
  35. if (screentype == ScreenType.CHEST_INVENTORY) {
  36. CraftPlayer player = (CraftPlayer) event.getPlayer();
  37. if (!plugin.openedInventoriesOthers.containsKey(player
  38. .getName())) {
  39. if (plugin.openedInventories.containsKey(player.getName())) {
  40. if (plugin.widgets.containsKey(player.getName())
  41. && plugin.useWidget == true) {
  42. plugin.widgets.get(player.getName())
  43. .setVisible(false).setDirty(true);
  44. }
  45. Inventory inv = plugin.openedInventories.get(player
  46. .getName());
  47. plugin.inventories.put(player.getName(),
  48. inv.getContents());
  49. player.getHandle().y();
  50. }
  51. } else {
  52. if (plugin.openedInventories
  53. .containsKey(plugin.openedInventoriesOthers
  54. .get(player.getName()))) {
  55. Inventory inv = plugin.openedInventories
  56. .get(plugin.openedInventoriesOthers.get(player
  57. .getName()));
  58. plugin.inventories.put(plugin.openedInventoriesOthers
  59. .get(player.getName()), inv.getContents());
  60. plugin.openedInventoriesOthers.remove(player.getName());
  61. player.getHandle().y();
  62. }
  63. }
  64. }
  65. if (!plugin.openedInventoriesOthers.containsValue(event.getPlayer()
  66. .getName())) {
  67. if (screentype != null
  68. && (screentype == ScreenType.GAME_SCREEN
  69. || screentype == ScreenType.PLAYER_INVENTORY
  70. || screentype == ScreenType.DISPENSER_INVENTORY
  71. || screentype == ScreenType.FURNACE_INVENTORY || screentype == ScreenType.WORKBENCH_INVENTORY)) {
  72. SpoutPlayer player = event.getPlayer();
  73. if (plugin.Method != null && plugin.useWidget == true) {
  74. if (plugin.widgets.containsKey(player.getName())) {
  75. plugin.widgets.get(player.getName())
  76. .setVisible(true).setDirty(true);
  77. } else {
  78. GenericLabel widget = new GenericLabel("");
  79. if (!plugin.Method.hasAccount(player.getName())) {
  80. return;
  81. }
  82. widget.setText(
  83. plugin.li.getMessage("money")
  84. + String.format(plugin.Method.format(plugin.Method
  85. .getAccount(
  86. player.getName())
  87. .balance())))
  88. .setTextColor(new Color(1, 1, 1))
  89. .setX(plugin.widgetX).setY(plugin.widgetY);
  90. player.getMainScreen().attachWidget(widget);
  91. widget.setVisible(true).setDirty(true);
  92. plugin.widgets.put(player.getName(), widget);
  93. }
  94. }
  95. CustomInventory inv = new CustomInventory(
  96. plugin.allowedSize(player.getWorld(), player, true),
  97. plugin.inventoryName);
  98. plugin.openedInventories.put(player.getName(), inv);
  99. if (plugin.inventories.containsKey(player.getName())) {
  100. inv.setContents(plugin.inventories.get(player.getName()));
  101. }
  102. player.openInventoryWindow((Inventory) inv);
  103. }
  104. } else {
  105. event.getPlayer().sendMessage(
  106. plugin.li.getMessage("someoneisusingyour")
  107. + ChatColor.RED + plugin.inventoryName
  108. + ChatColor.WHITE + plugin.li.getMessage("!"));
  109. }
  110. } else if (event.getKey() == getKeyInConfig("Workbench.Key", "W")
  111. && plugin.workbenchEnabled == true) {
  112. if (!plugin.openedInventoriesOthers.containsKey(event.getPlayer()
  113. .getName())) {
  114. if (!plugin.openedInventories.containsKey(event.getPlayer()
  115. .getName())) {
  116. if ((plugin.permissionHandler != null || plugin.permissionsBukkitPlugin != null)
  117. && !plugin.userHasPermission(event.getPlayer(),
  118. "backpack.workbench")) {
  119. return;
  120. }
  121. if (plugin.workbenchInventory == true
  122. && !event.getPlayer().getInventory()
  123. .contains(Material.WORKBENCH)) {
  124. return;
  125. }
  126. final int windowNumber = 1;
  127. ScreenType screentype = event.getScreenType();
  128. if (screentype == ScreenType.WORKBENCH_INVENTORY) {
  129. SpoutPlayer player = event.getPlayer();
  130. final EntityPlayer entityPlayer = ((CraftPlayer) player)
  131. .getHandle();
  132. entityPlayer.netServerHandler
  133. .sendPacket(new Packet101CloseWindow(
  134. windowNumber));
  135. } else if (screentype != null
  136. && (screentype == ScreenType.GAME_SCREEN
  137. || screentype == ScreenType.PLAYER_INVENTORY
  138. || screentype == ScreenType.DISPENSER_INVENTORY
  139. || screentype == ScreenType.FURNACE_INVENTORY || screentype == ScreenType.CHEST_INVENTORY)) {
  140. SpoutPlayer player = event.getPlayer();
  141. final EntityPlayer entityPlayer = ((CraftPlayer) player)
  142. .getHandle();
  143. entityPlayer.netServerHandler
  144. .sendPacket(new Packet100OpenWindow(
  145. windowNumber, 1, "Crafting", 9));
  146. entityPlayer.activeContainer = new SBWorkbench(
  147. entityPlayer, windowNumber);
  148. }
  149. }
  150. }
  151. }
  152. }
  153. private Keyboard getKeyInConfig(String configProperty, String configDefault) {
  154. plugin.config.load();
  155. String keyInConfig = plugin.config.getString(configProperty,
  156. configDefault);
  157. plugin.config.save();
  158. Keyboard key = Keyboard.KEY_B;
  159. if (keyInConfig.equalsIgnoreCase("A")) {
  160. key = Keyboard.KEY_A;
  161. } else if (keyInConfig.equalsIgnoreCase("B")) {
  162. key = Keyboard.KEY_B;
  163. } else if (keyInConfig.equalsIgnoreCase("C")) {
  164. key = Keyboard.KEY_C;
  165. } else if (keyInConfig.equalsIgnoreCase("D")) {
  166. key = Keyboard.KEY_D;
  167. } else if (keyInConfig.equalsIgnoreCase("E")) {
  168. key = Keyboard.KEY_E;
  169. } else if (keyInConfig.equalsIgnoreCase("F")) {
  170. key = Keyboard.KEY_F;
  171. } else if (keyInConfig.equalsIgnoreCase("G")) {
  172. key = Keyboard.KEY_G;
  173. } else if (keyInConfig.equalsIgnoreCase("H")) {
  174. key = Keyboard.KEY_H;
  175. } else if (keyInConfig.equalsIgnoreCase("I")) {
  176. key = Keyboard.KEY_I;
  177. } else if (keyInConfig.equalsIgnoreCase("J")) {
  178. key = Keyboard.KEY_J;
  179. } else if (keyInConfig.equalsIgnoreCase("K")) {
  180. key = Keyboard.KEY_K;
  181. } else if (keyInConfig.equalsIgnoreCase("L")) {
  182. key = Keyboard.KEY_L;
  183. } else if (keyInConfig.equalsIgnoreCase("M")) {
  184. key = Keyboard.KEY_M;
  185. } else if (keyInConfig.equalsIgnoreCase("N")) {
  186. key = Keyboard.KEY_N;
  187. } else if (keyInConfig.equalsIgnoreCase("O")) {
  188. key = Keyboard.KEY_O;
  189. } else if (keyInConfig.equalsIgnoreCase("P")) {
  190. key = Keyboard.KEY_P;
  191. } else if (keyInConfig.equalsIgnoreCase("Q")) {
  192. key = Keyboard.KEY_Q;
  193. } else if (keyInConfig.equalsIgnoreCase("R")) {
  194. key = Keyboard.KEY_R;
  195. } else if (keyInConfig.equalsIgnoreCase("S")) {
  196. key = Keyboard.KEY_S;
  197. } else if (keyInConfig.equalsIgnoreCase("T")) {
  198. key = Keyboard.KEY_T;
  199. } else if (keyInConfig.equalsIgnoreCase("U")) {
  200. key = Keyboard.KEY_U;
  201. } else if (keyInConfig.equalsIgnoreCase("V")) {
  202. key = Keyboard.KEY_V;
  203. } else if (keyInConfig.equalsIgnoreCase("W")) {
  204. key = Keyboard.KEY_W;
  205. } else if (keyInConfig.equalsIgnoreCase("X")) {
  206. key = Keyboard.KEY_X;
  207. } else if (keyInConfig.equalsIgnoreCase("Y")) {
  208. key = Keyboard.KEY_Y;
  209. } else if (keyInConfig.equalsIgnoreCase("Z")) {
  210. key = Keyboard.KEY_Z;
  211. } else if (keyInConfig.equalsIgnoreCase("0")) {
  212. key = Keyboard.KEY_0;
  213. } else if (keyInConfig.equalsIgnoreCase("1")) {
  214. key = Keyboard.KEY_1;
  215. } else if (keyInConfig.equalsIgnoreCase("2")) {
  216. key = Keyboard.KEY_2;
  217. } else if (keyInConfig.equalsIgnoreCase("3")) {
  218. key = Keyboard.KEY_3;
  219. } else if (keyInConfig.equalsIgnoreCase("4")) {
  220. key = Keyboard.KEY_4;
  221. } else if (keyInConfig.equalsIgnoreCase("5")) {
  222. key = Keyboard.KEY_5;
  223. } else if (keyInConfig.equalsIgnoreCase("6")) {
  224. key = Keyboard.KEY_6;
  225. } else if (keyInConfig.equalsIgnoreCase("7")) {
  226. key = Keyboard.KEY_7;
  227. } else if (keyInConfig.equalsIgnoreCase("8")) {
  228. key = Keyboard.KEY_8;
  229. } else if (keyInConfig.equalsIgnoreCase("9")) {
  230. key = Keyboard.KEY_9;
  231. } else if (keyInConfig.equalsIgnoreCase("NONE")) {
  232. key = Keyboard.KEY_NONE;
  233. } else if (keyInConfig.equalsIgnoreCase("ESCAPE")) {
  234. key = Keyboard.KEY_ESCAPE;
  235. } else if (keyInConfig.equalsIgnoreCase("MINUS")) {
  236. key = Keyboard.KEY_MINUS;
  237. } else if (keyInConfig.equalsIgnoreCase("EQUALS")) {
  238. key = Keyboard.KEY_EQUALS;
  239. } else if (keyInConfig.equalsIgnoreCase("BACK")) {
  240. key = Keyboard.KEY_BACK;
  241. } else if (keyInConfig.equalsIgnoreCase("TAB")) {
  242. key = Keyboard.KEY_TAB;
  243. } else if (keyInConfig.equalsIgnoreCase("LBRACKET")) {
  244. key = Keyboard.KEY_LBRACKET;
  245. } else if (keyInConfig.equalsIgnoreCase("RBRACKET")) {
  246. key = Keyboard.KEY_RBRACKET;
  247. } else if (keyInConfig.equalsIgnoreCase("RETURN")) {
  248. key = Keyboard.KEY_RETURN;
  249. } else if (keyInConfig.equalsIgnoreCase("LCONTROL")) {
  250. key = Keyboard.KEY_LCONTROL;
  251. } else if (keyInConfig.equalsIgnoreCase("SEMICOLON")) {
  252. key = Keyboard.KEY_SEMICOLON;
  253. } else if (keyInConfig.equalsIgnoreCase("APOSTROPHE")) {
  254. key = Keyboard.KEY_APOSTROPHE;
  255. } else if (keyInConfig.equalsIgnoreCase("GRAVE")) {
  256. key = Keyboard.KEY_GRAVE;
  257. } else if (keyInConfig.equalsIgnoreCase("LSHIFT")) {
  258. key = Keyboard.KEY_LSHIFT;
  259. } else if (keyInConfig.equalsIgnoreCase("BACKSLASH")) {
  260. key = Keyboard.KEY_BACKSLASH;
  261. } else if (keyInConfig.equalsIgnoreCase("COMMA")) {
  262. key = Keyboard.KEY_COMMA;
  263. } else if (keyInConfig.equalsIgnoreCase("PERIOD")) {
  264. key = Keyboard.KEY_PERIOD;
  265. } else if (keyInConfig.equalsIgnoreCase("SLASH")) {
  266. key = Keyboard.KEY_SLASH;
  267. } else if (keyInConfig.equalsIgnoreCase("RSHIFT")) {
  268. key = Keyboard.KEY_RSHIFT;
  269. } else if (keyInConfig.equalsIgnoreCase("MULTIPLY")) {
  270. key = Keyboard.KEY_MULTIPLY;
  271. } else if (keyInConfig.equalsIgnoreCase("LMENU")) {
  272. key = Keyboard.KEY_LMENU;
  273. } else if (keyInConfig.equalsIgnoreCase("SPACE")) {
  274. key = Keyboard.KEY_SPACE;
  275. } else if (keyInConfig.equalsIgnoreCase("F1")) {
  276. key = Keyboard.KEY_F1;
  277. } else if (keyInConfig.equalsIgnoreCase("F2")) {
  278. key = Keyboard.KEY_F2;
  279. } else if (keyInConfig.equalsIgnoreCase("F3")) {
  280. key = Keyboard.KEY_F3;
  281. } else if (keyInConfig.equalsIgnoreCase("F4")) {
  282. key = Keyboard.KEY_F4;
  283. } else if (keyInConfig.equalsIgnoreCase("F5")) {
  284. key = Keyboard.KEY_F5;
  285. } else if (keyInConfig.equalsIgnoreCase("F6")) {
  286. key = Keyboard.KEY_F6;
  287. } else if (keyInConfig.equalsIgnoreCase("F7")) {
  288. key = Keyboard.KEY_F7;
  289. } else if (keyInConfig.equalsIgnoreCase("F8")) {
  290. key = Keyboard.KEY_F8;
  291. } else if (keyInConfig.equalsIgnoreCase("F9")) {
  292. key = Keyboard.KEY_F9;
  293. } else if (keyInConfig.equalsIgnoreCase("F10")) {
  294. key = Keyboard.KEY_F10;
  295. } else if (keyInConfig.equalsIgnoreCase("NUMLOCK")) {
  296. key = Keyboard.KEY_NUMLOCK;
  297. } else if (keyInConfig.equalsIgnoreCase("SCROLL")) {
  298. key = Keyboard.KEY_SCROLL;
  299. } else if (keyInConfig.equalsIgnoreCase("SUBTRACT")) {
  300. key = Keyboard.KEY_SUBTRACT;
  301. } else if (keyInConfig.equalsIgnoreCase("ADD")) {
  302. key = Keyboard.KEY_ADD;
  303. } else if (keyInConfig.equalsIgnoreCase("DECIMAL")) {
  304. key = Keyboard.KEY_DECIMAL;
  305. } else if (keyInConfig.equalsIgnoreCase("F11")) {
  306. key = Keyboard.KEY_F11;
  307. } else if (keyInConfig.equalsIgnoreCase("F12")) {
  308. key = Keyboard.KEY_F12;
  309. } else if (keyInConfig.equalsIgnoreCase("F13")) {
  310. key = Keyboard.KEY_F13;
  311. } else if (keyInConfig.equalsIgnoreCase("F14")) {
  312. key = Keyboard.KEY_F14;
  313. } else if (keyInConfig.equalsIgnoreCase("F15")) {
  314. key = Keyboard.KEY_F15;
  315. } else if (keyInConfig.equalsIgnoreCase("NUMPAD0")) {
  316. key = Keyboard.KEY_NUMPAD0;
  317. } else if (keyInConfig.equalsIgnoreCase("NUMPAD1")) {
  318. key = Keyboard.KEY_NUMPAD1;
  319. } else if (keyInConfig.equalsIgnoreCase("NUMPAD2")) {
  320. key = Keyboard.KEY_NUMPAD2;
  321. } else if (keyInConfig.equalsIgnoreCase("NUMPAD3")) {
  322. key = Keyboard.KEY_NUMPAD3;
  323. } else if (keyInConfig.equalsIgnoreCase("NUMPAD4")) {
  324. key = Keyboard.KEY_NUMPAD4;
  325. } else if (keyInConfig.equalsIgnoreCase("NUMPAD5")) {
  326. key = Keyboard.KEY_NUMPAD5;
  327. } else if (keyInConfig.equalsIgnoreCase("NUMPAD6")) {
  328. key = Keyboard.KEY_NUMPAD6;
  329. } else if (keyInConfig.equalsIgnoreCase("NUMPAD7")) {
  330. key = Keyboard.KEY_NUMPAD7;
  331. } else if (keyInConfig.equalsIgnoreCase("NUMPAD8")) {
  332. key = Keyboard.KEY_NUMPAD8;
  333. } else if (keyInConfig.equalsIgnoreCase("NUMPAD9")) {
  334. key = Keyboard.KEY_NUMPAD9;
  335. } else if (keyInConfig.equalsIgnoreCase("KANA")) {
  336. key = Keyboard.KEY_KANA;
  337. } else if (keyInConfig.equalsIgnoreCase("CONVERT")) {
  338. key = Keyboard.KEY_CONVERT;
  339. } else if (keyInConfig.equalsIgnoreCase("NOCONVERT")) {
  340. key = Keyboard.KEY_NOCONVERT;
  341. } else if (keyInConfig.equalsIgnoreCase("YEN")) {
  342. key = Keyboard.KEY_YEN;
  343. } else if (keyInConfig.equalsIgnoreCase("NUMPADEQUALS")) {
  344. key = Keyboard.KEY_NUMPADEQUALS;
  345. } else if (keyInConfig.equalsIgnoreCase("CIRCUMFLEX")) {
  346. key = Keyboard.KEY_CIRCUMFLEX;
  347. } else if (keyInConfig.equalsIgnoreCase("AT")) {
  348. key = Keyboard.KEY_AT;
  349. } else if (keyInConfig.equalsIgnoreCase("COLON")) {
  350. key = Keyboard.KEY_COLON;
  351. } else if (keyInConfig.equalsIgnoreCase("UNDERLINE")) {
  352. key = Keyboard.KEY_UNDERLINE;
  353. } else if (keyInConfig.equalsIgnoreCase("KANJI")) {
  354. key = Keyboard.KEY_KANJI;
  355. } else if (keyInConfig.equalsIgnoreCase("STOP")) {
  356. key = Keyboard.KEY_STOP;
  357. } else if (keyInConfig.equalsIgnoreCase("AX")) {
  358. key = Keyboard.KEY_AX;
  359. } else if (keyInConfig.equalsIgnoreCase("UNLABELED")) {
  360. key = Keyboard.KEY_UNLABELED;
  361. } else if (keyInConfig.equalsIgnoreCase("NUMPADENTER")) {
  362. key = Keyboard.KEY_NUMPADENTER;
  363. } else if (keyInConfig.equalsIgnoreCase("RCONTROL")) {
  364. key = Keyboard.KEY_RCONTROL;
  365. } else if (keyInConfig.equalsIgnoreCase("NUMPADCOMMA")) {
  366. key = Keyboard.KEY_NUMPADCOMMA;
  367. } else if (keyInConfig.equalsIgnoreCase("DIVIDE")) {
  368. key = Keyboard.KEY_DIVIDE;
  369. } else if (keyInConfig.equalsIgnoreCase("SYSRQ")) {
  370. key = Keyboard.KEY_SYSRQ;
  371. } else if (keyInConfig.equalsIgnoreCase("RMENU")) {
  372. key = Keyboard.KEY_RMENU;
  373. } else if (keyInConfig.equalsIgnoreCase("PAUSE")) {
  374. key = Keyboard.KEY_PAUSE;
  375. } else if (keyInConfig.equalsIgnoreCase("HOME")) {
  376. key = Keyboard.KEY_HOME;
  377. } else if (keyInConfig.equalsIgnoreCase("UP")) {
  378. key = Keyboard.KEY_UP;
  379. } else if (keyInConfig.equalsIgnoreCase("PRIOR")) {
  380. key = Keyboard.KEY_PRIOR;
  381. } else if (keyInConfig.equalsIgnoreCase("LEFT")) {
  382. key = Keyboard.KEY_LEFT;
  383. } else if (keyInConfig.equalsIgnoreCase("RIGHT")) {
  384. key = Keyboard.KEY_RIGHT;
  385. } else if (keyInConfig.equalsIgnoreCase("END")) {
  386. key = Keyboard.KEY_END;
  387. } else if (keyInConfig.equalsIgnoreCase("DOWN")) {
  388. key = Keyboard.KEY_DOWN;
  389. } else if (keyInConfig.equalsIgnoreCase("NEXT")) {
  390. key = Keyboard.KEY_NEXT;
  391. } else if (keyInConfig.equalsIgnoreCase("INSERT")) {
  392. key = Keyboard.KEY_INSERT;
  393. } else if (keyInConfig.equalsIgnoreCase("DELETE")) {
  394. key = Keyboard.KEY_DELETE;
  395. } else if (keyInConfig.equalsIgnoreCase("LMETA")) {
  396. key = Keyboard.KEY_LMETA;
  397. } else if (keyInConfig.equalsIgnoreCase("LWIN")) {
  398. key = Keyboard.KEY_LWIN;
  399. } else if (keyInConfig.equalsIgnoreCase("RMETA")) {
  400. key = Keyboard.KEY_RMETA;
  401. } else if (keyInConfig.equalsIgnoreCase("RWIN")) {
  402. key = Keyboard.KEY_RWIN;
  403. } else if (keyInConfig.equalsIgnoreCase("APPS")) {
  404. key = Keyboard.KEY_APPS;
  405. } else if (keyInConfig.equalsIgnoreCase("POWER")) {
  406. key = Keyboard.KEY_POWER;
  407. } else if (keyInConfig.equalsIgnoreCase("SLEEP")) {
  408. key = Keyboard.KEY_SLEEP;
  409. }
  410. return key;
  411. }
  412. }