Empire mining settings

* Modified mining settings stored procedures to use text identifiers
instead of numeric identifiers

* Added DAO for mining settings and controller for resource operations

* Added UpdateEmpireMiningSettingsCommand and associated command
delegate. The command always returns NullResponse.

* Overview page templates split into multiple files for clarity, added
priority update form to the empire economy view and associated web
server handler
This commit is contained in:
Emmanuel BENOîT 2012-02-05 10:10:43 +01:00
parent 92dd01ffce
commit d38576a5cf
24 changed files with 1024 additions and 160 deletions
legacyworlds-server-beans-user/src/main
java/com/deepclone/lw/beans/user/player/game
resources/configuration/session-types

View file

@ -0,0 +1,74 @@
package com.deepclone.lw.beans.user.player.game;
import org.springframework.beans.factory.annotation.Autowired;
import com.deepclone.lw.beans.user.abst.AutowiredCommandDelegate;
import com.deepclone.lw.beans.user.abst.SessionCommandHandler;
import com.deepclone.lw.beans.user.player.GameSubTypeBean;
import com.deepclone.lw.cmd.player.UpdateEmpireMiningSettingsCommand;
import com.deepclone.lw.interfaces.game.resources.ResourcesController;
import com.deepclone.lw.interfaces.session.ServerSession;
import com.deepclone.lw.session.Command;
import com.deepclone.lw.session.CommandResponse;
import com.deepclone.lw.session.NullResponse;
/**
* Command handler for empire mining settings updates
*
* @author <a href="mailto:tseeker@legacyworlds.com">E. Benoît</a>
*/
class UpdateEmpireMiningSettingsCommandDelegateBean
implements AutowiredCommandDelegate
{
/** The resources controller */
private ResourcesController resourcesController;
/**
* Dependency injector that sets the resources controller
*
* @param resourcesController
* the resources controller
*/
@Autowired( required = true )
public void setResourcesController( ResourcesController resourcesController )
{
this.resourcesController = resourcesController;
}
/** This class handles {@link UpdateEmpireMiningSettingsCommand} instances */
@Override
public Class< ? extends Command > getType( )
{
return UpdateEmpireMiningSettingsCommand.class;
}
/** This class is enabled for the {@link GameSubTypeBean} session type */
@Override
public Class< ? extends SessionCommandHandler > getCommandHandler( )
{
return GameSubTypeBean.class;
}
/**
* If the account is not in vacation mode, update mining settings. Always return a
* {@link NullResponse}.
*/
@Override
public CommandResponse execute( ServerSession session , Command command )
{
if ( !session.get( "vacation" , Boolean.class ) ) {
int empireId = session.get( "empireId" , Integer.class );
this.resourcesController.updateEmpireSettings( empireId ,
( (UpdateEmpireMiningSettingsCommand) command ).getSettings( ) );
}
return new NullResponse( );
}
}

View file

@ -45,6 +45,7 @@
<!-- Game: empire -->
<bean class="com.deepclone.lw.beans.user.player.game.OverviewCommandDelegateBean" />
<bean class="com.deepclone.lw.beans.user.player.game.ImplementTechCommandDelegateBean" />
<bean class="com.deepclone.lw.beans.user.player.game.UpdateEmpireMiningSettingsCommandDelegateBean" />
<bean class="com.deepclone.lw.beans.user.player.game.GetNewPlanetCommandDelegateBean" />
<!-- Game: planet list -->