groovy/mudspace/domains/minnovar/
groovy/mudspace/domains/minnovar/objects/containers/
groovy/mudspace/domains/minnovar/objects/mobs/
groovy/mudspace/domains/minnovar/objects/mobs/scripts/
groovy/mudspace/domains/minnovar/objects/weapons/
groovy/mudspace/domains/minnovar/town/
groovy/mudspace/resources/
groovy/mudspace/std/
groovy/mudspace/std/game/
groovy/mudspace/std/game/guild/
groovy/mudspace/std/game/guild/skill/
groovy/mudspace/std/game/objects/
groovy/mudspace/std/game/objects/alive/
groovy/mudspace/std/game/objects/bodyparts/
groovy/mudspace/std/game/objects/containers/
groovy/mudspace/std/game/objects/exits/
groovy/mudspace/std/game/objects/exits/events/
groovy/mudspace/std/game/objects/trappings/
groovy/mudspace/std/game/objects/views/
groovy/mudspace/std/game/races/
groovy/scripts/
groovy/scripts/commands/creator/
groovy/scripts/commands/god/
scripts/
package commands.player

import org.groovymud.object.views.ContentsHelper
/* Copyright 2008 Matthew Corby-Eaglen
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. 
* You may obtain a copy of the License at
*
*   http://www.apache.org/licenses/LICENSE-2.0 
*
* Unless required by applicable law or agreed to in writing, software 
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
* See the License for the specific language governing permissions and 
* limitations under the License. 
*/
import static org.groovymud.utils.MessengerUtils.sendMessageToRoom
import utils.MatchedObject
import utils.GenericSyntaxParser
import org.groovymud.object.Container
import org.groovymud.object.alive.Alive
import static org.groovymud.utils.WordUtils.*

def stream = source.getTerminalOutput()
 
GenericSyntaxParser parser = new GenericSyntaxParser()
parser.parse(argstr, "to")

if(parser.subjectObject != null){
	
	if(parser.prepositionObject != null){
		// is the object in the player?
		obj = parser.subjectObject.findObjectInContainer(source)
		if(obj != null){
		    def mob = parser.prepositionObject.findObjectInContainer(source.getCurrentContainer())
		    if(mob instanceof Alive){
		        if(obj instanceof HashSet){			    
				    def map = source.getMudObjectsMap().clone()
				    def remove = [] as Set
				    def contentsHelper = new ContentsHelper()
				    contentsHelper.removeMudObject(source, map)
				    
				    obj.clone().each{
					       if(mob.checkCanAddItem(it)){
								mob.addMudObject(it)
						    }else{
								stream.writeln("You cannot give ${affixDefiniteArticle(obj)} to ${affixDefiniteArticle(mob)}.")							
								contentsHelper.removeMudObject(it, map);
						    }
					    
					}			 
				    contentsDescription = contentsHelper.getContentsDescription(map, source, false, false)
				}else{
				    contentsDescription = affixDefiniteArticle(obj);
				     
				    if(mob.checkCanAddItem(obj)){
						mob.addMudObject obj
				    }
				    else{
						stream.writeln "You cannot give $contentsDescription to ${affixDefiniteArticle(mob)}"
						return 
				    }
				}
				if(contentsDescription.trim() != ""){
	    		    def scopeMsg = "${source.name} gives ${contentsDescription} to ${affixIndefiniteArticle(mob)}."
	    		    def sourceMsg = "You give $contentsDescription to ${affixDefiniteArticle(mob)}."
	    		    sendMessageToRoom(source, sourceMsg, scopeMsg)
	    		    return
				}
		    }
		}
	}
	   
}
stream.println("You must give something to someone!")