* @param client
	 */
	public void op_cast(final String input, final Client client) {
		if (input.indexOf(".") != -1) {
			System.out.println("INTCAST CMD");

			String scmd = "";
			String sarg = "";

			if (input.indexOf(" ") != -1) { // Arguments
				scmd = input.substring(input.indexOf(".") + 1, input.indexOf(" "));
				sarg = input.substring(input.indexOf(" ") + 1, input.length());
			}
			else { // No Arguments
				scmd = input.substring(input.indexOf(".") + 1, input.length());
			}

			System.out.println("scmd: " + scmd);
			System.out.println("sarg: " + sarg);

			if (scmd.equals("select")) {
				/*
				 * select takes a spell name as an argument
				 */
				if (sarg.equals("")) {
					send("Please specify the spell you'd like to cast.", client);
				}
				else {
					getPlayer(client).getSpellQueue().push(spells2.get(sarg));
				}
			}
			else if (scmd.equals("queue")) {
				send("Queue", client);
				
				send("---------------------", client);
				
				for (Spell spell : getPlayer(client).getSpellQueue()) {
					send(spell.getName(), client);
				}
				
				send("---------------------", client);
			}
			else if (scmd.equals("spells")) {
				SpellBook sb = getPlayer(client).getSpellBook();
				send("Spellbook", client);

				if (sb != null) {
					for (int level = 0; level <= getPlayer(client).getLevel(); level++) {
						List<Spell> spells = sb.getSpells(level);

						if (spells != null) {
							send("-----------------", client);
							
							send("Level: " + level, client);
							
							for (final Spell spell : spells) {
								send(" " + spell.getName(), client); // space
								// for
								// indenting
								// purposes
							}
							
							send("-----------------", client);
						}
					}
				}
				// send("-----------------", client);
				// send("Level 1:", client);
				// send(" dispel", client);
				// send(" fireball", client);
				// send(" invisibility", client);
				// send("-----------------", client);
			}
			else if (scmd.equals("finalize")) {
				/*
				 * finalize and init spell casting, slot into current
				 * "round"/present time or next available "round"/time
				 * automatically
				 */
				send("Interactive Spell Mode> Finalizing...", client);
			}
			else if (scmd.equals("cancel")) {
				// tell us
				send("Interactive Spell Mode Canceled.", client);

				// clear queue
				getPlayer(client).getSpellQueue().clear();

				// reset editor
				getPlayer(client).setEditor(Editors.NONE);

				// reset status
				getPlayer(client).setStatus("OOC");
			}
			else if (scmd.equals("quit")) {}
			else if (scmd.equals("target")) {}
			else {
				send("Interactive Spell Mode> No such command.", client);
			}
		}
	}