From: Katie <ky...@us...> - 2009-05-27 17:27:40
|
Update of /cvsroot/arianne/stendhal/src/games/stendhal/server/script In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv9762/src/games/stendhal/server/script Modified Files: DropPlayerItems.java Log Message: applied part of patch 2794803 ''Fixed broken logging and wrong admin message in DropPlayerItems script'' - the part fixing the logging by .raise the gameEvent. However the admin message was correct (appends a true/false depending on if the drop worked. might not work if player didnt have items any more). have highlight this true false in blue. the patch would have only shown if 'true' but i think the feedback to admin in case of drop not succeeding is important. also catch the case that the 2nd argument is not an integer, but an item name, and provide feedback to use quotes if you need an amount > 1 but item name has spaces. Index: DropPlayerItems.java =================================================================== RCS file: /cvsroot/arianne/stendhal/src/games/stendhal/server/script/DropPlayerItems.java,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** DropPlayerItems.java 15 Mar 2009 18:15:11 -0000 1.9 --- DropPlayerItems.java 27 May 2009 17:27:26 -0000 1.10 *************** *** 25,28 **** --- 25,33 ---- } + if (args.size() > 3) { + admin.sendPrivateText("<player> [<amount>] '<item>' - and don't forget those quotes if the item name has spaces"); + return; + } + final Player player = SingletonRepository.getRuleProcessor().getPlayer(args.get(0)); String itemName = null; *************** *** 30,35 **** if (args.size() == 3) { ! amount = Integer.parseInt(args.get(1)); ! itemName = args.get(2); } else { itemName = args.get(1); --- 35,47 ---- if (args.size() == 3) { ! try { ! amount = Integer.parseInt(args.get(1)); ! itemName = args.get(2); ! } catch (final NumberFormatException e) { ! // admin did something like "playername black shield" (i.e. an item with spaces, but didnt use quotes, or a number) ! // catch the exception and see if we can help them anyway ! // amount = 1; is default ! itemName = args.get(1) + " " + args.get(2); ! } } else { itemName = args.get(1); *************** *** 38,58 **** final String singularItemName = Grammar.singular(itemName); ! boolean res = player.drop(itemName, amount); - if (!res && !itemName.equals(singularItemName)) { - res = player.drop(singularItemName, amount); } ! final String msg = "Admin " + admin.getTitle() + " removed " + amount + " " + Grammar.plnoun(amount, singularItemName) + " from player " ! + player.getTitle() + ": " + res; admin.sendPrivateText(msg); ! if (res) { player.sendPrivateText(msg); new GameEvent(admin.getName(), "admindrop", player.getName(), Integer.toString(amount), ! itemName); } } --- 50,72 ---- final String singularItemName = Grammar.singular(itemName); ! boolean result = player.drop(itemName, amount); ! ! if (!result && !itemName.equals(singularItemName)) { ! result = player.drop(singularItemName, amount); } ! final String msg = "Admin " + admin.getTitle() + " removed " + amount + ! " " + Grammar.plnoun(amount, singularItemName) + " from player " ! + player.getTitle() + ": #" + result; admin.sendPrivateText(msg); ! if (result) { player.sendPrivateText(msg); new GameEvent(admin.getName(), "admindrop", player.getName(), Integer.toString(amount), ! itemName).raise(); } } |