Changeset 34f58929d9e5d5d1fb19b6a455e45212d1e218a1

Show
Ignore:
Timestamp:
09/22/07 15:18:09 (1 year ago)
Author:
Christopher Jung <bktheg@web.de>
git-committer:
Christopher Jung <bktheg@web.de> 1190467089 +0200
git-parent:

[9ee106fab8ca310bad99ec4e49e9db8f3c608de7]

git-author:
Christopher Jung <bktheg@web.de> 1186931530 +0200
Message:

Generatoren ueberarbeitet

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • src/net/driftingsouls/ds2/server/framework/pipeline/GeneratorPipeline.java

    r740f4b3 r34f5892  
    4545        public GeneratorPipeline( String execType, Class<? extends Generator> generator ) { 
    4646                this.generator = generator; 
    47                 if( "ajax".equals(execType) ) { 
    48                         this.execType = ActionType.AJAX; 
    49                 } 
     47                this.execType = ActionType.getByExecType(execType); 
    5048        } 
    5149         
    5250        private void generateContent(Context context, Class<? extends Generator> generator) throws Exception { 
    53                 Constructor constr = generator.getConstructor(Context.class); 
     51                Constructor<? extends Generator> constr = generator.getConstructor(Context.class); 
    5452                constr.setAccessible(true); 
    5553 
    56                 Object cntl = constr.newInstance(context); 
     54                Generator cntl = constr.newInstance(context); 
    5755 
    58                 // TODO: seeeehr unschoen 
    59                 ((DSGenerator)cntl).handleAction(context.getRequest().getParameter("action"), execType); 
     56                cntl.handleAction(context.getRequest().getParameter("action"), execType); 
    6057        } 
    6158 
  • src/net/driftingsouls/ds2/server/framework/pipeline/generators/DSGenerator.java

    r740f4b3 r34f5892  
    1919package net.driftingsouls.ds2.server.framework.pipeline.generators; 
    2020 
    21 import java.io.File; 
    2221import java.lang.reflect.InvocationTargetException; 
    2322import java.lang.reflect.Method; 
     
    3231import net.driftingsouls.ds2.server.framework.Configuration; 
    3332import net.driftingsouls.ds2.server.framework.Context; 
     33import net.driftingsouls.ds2.server.framework.ContextMap; 
    3434import net.driftingsouls.ds2.server.framework.pipeline.Error; 
    35 import net.driftingsouls.ds2.server.framework.templates.TemplateEngine; 
     35import net.driftingsouls.ds2.server.framework.pipeline.Response; 
    3636 
    3737import org.apache.commons.lang.StringUtils; 
     
    4343 */ 
    4444public abstract class DSGenerator extends Generator { 
    45         protected abstract class FWOutputHelper { 
     45        protected static abstract class OutputHelper { 
     46                private Context context = null; 
     47                private Map<String,String> attributes = new HashMap<String,String>(); 
     48                 
     49                /** 
     50                 * Konstruktor 
     51                 * 
     52                 */ 
     53                public OutputHelper() { 
     54                        context = ContextMap.getContext(); 
     55                } 
     56                 
    4657                /** 
    4758                 * Gibt den Header aus 
     
    5970                 */ 
    6071                public abstract void printErrorList(); 
    61         } 
    62          
    63         protected class FWHtmlOutputHelper extends FWOutputHelper { 
     72                 
     73                /** 
     74                 * Setzt ein Attribut 
     75                 * @param key Der Schluessel 
     76                 * @param value Der Wert 
     77                 */ 
     78                public final void setAttribute(String key, String value) { 
     79                        this.attributes.put(key, value); 
     80                } 
     81                 
     82                /** 
     83                 * Gibt das Attribut mit dem angegebenen Schluessel zurueck 
     84                 * @param key Der Schluessel 
     85                 * @return Der Wert 
     86                 */ 
     87                public final String getAttribute(String key) { 
     88                        return this.attributes.get(key); 
     89                } 
     90                 
     91                /** 
     92                 * Gibt den aktuellen Kontext zurueck 
     93                 * @return Der Kontext 
     94                 */ 
     95                protected final Context getContext() { 
     96                        return this.context; 
     97                } 
     98        } 
     99         
     100        /** 
     101         * <p>Ausgabehilfe fuer HTML</p> 
     102         * Attribute: 
     103         * <ul> 
     104         * <li><code>header</code> - String mit weiteren Header-Text 
     105         * </ul> 
     106         * 
     107         */ 
     108        protected class HtmlOutputHelper extends OutputHelper { 
    64109                @Override 
    65110                public void printHeader() { 
    66                         getResponse().setContentType("text/html"); 
    67                         getResponse().setCharSet("UTF-8"); 
    68                          
    69                         if( getString("_style").equals("xml") ) { 
     111                        Response response = getContext().getResponse(); 
     112                         
     113                        response.setContentType("text/html"); 
     114                        response.setCharSet("UTF-8"); 
     115                         
     116                        if( getContext().getRequest().getParameterString("_style").equals("xml") ) { 
    70117                                return; 
    71118                        } 
    72                         StringBuffer sb = getResponse().getContent(); 
     119                        StringBuffer sb = response.getContent(); 
    73120                        String url = Configuration.getSetting("URL")+"/"; 
    74121                        boolean usegfxpak = false; 
    75                         if( getUser() != null ) { 
    76                                 if( !getUser().getUserImagePath().equals(BasicUser.getDefaultImagePath()) ) { 
     122                        final BasicUser user = getContext().getActiveUser(); 
     123                        if( user != null ) { 
     124                                if( !user.getUserImagePath().equals(BasicUser.getDefaultImagePath()) ) { 
    77125                                        usegfxpak = true; 
    78126                                } 
    79                                 url = getUser().getImagePath(); 
     127                                url = user.getImagePath(); 
    80128                        } 
    81129                        sb.append("<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"de\" lang=\"de\">\n"); 
     
    91139                        sb.append("<![endif]-->\n"); 
    92140 
    93                         sb.append(getTemplateEngine().getVar( "__HEADER" ) ); 
     141                        if( this.getAttribute("header") != null ) { 
     142                                sb.append(this.getAttribute("header")); 
     143                        } 
    94144                         
    95145                        sb.append("</head>\n"); 
     
    117167                @Override 
    118168                public void printFooter() { 
    119                         if( getTemplateID().length() > 0 ) { 
    120                                 getTemplateEngine().parse( "OUT", getTemplateID() ); 
    121                                          
    122                                 getTemplateEngine().p("OUT"); 
    123                         } 
    124                         if( getString("_style").equals("xml") ) { 
     169                        if( getContext().getRequest().getParameterString("_style").equals("xml") ) { 
    125170                                return; 
    126171                        } 
    127                         StringBuffer sb = getResponse().getContent(); 
     172                        StringBuffer sb = getContext().getResponse().getContent(); 
    128173                        if( !getDisableDebugOutput() ) { 
    129174                                sb.append("<div style=\"text-align:center; font-size:11px;color:#c7c7c7; font-family:arial, helvetica;\">\n"); 
    130175                                sb.append("<br /><br /><br />\n"); 
    131                                 //sb.append("QCount: "+getDatabase().getQCount()+"<br />\n"); 
    132176                                sb.append("Execution-Time: "+(System.currentTimeMillis()-getStartTime())/1000d+"s<br />\n"); 
    133177                                //echo "<a class=\"forschinfo\" target=\"none\" style=\"font-size:11px\" href=\"http://ds2.drifting-souls.net/mantis/\">Zum Bugtracker</a><br />\n"; 
    134                                 if( (getUser() != null) && (getUser().getAccessLevel() >= 20) && getDatabase().getQueryLogStatus() ) { 
    135                                         sb.append("<div style=\"display:none\"><!--\n"); 
    136                                         sb.append(getDatabase().getQueryLog()); 
    137                                         sb.append("--></div>\n"); 
    138                                 } 
    139178                                sb.append("</div>\n"); 
    140179                        } 
     
    145184                @Override 
    146185                public void printErrorList() { 
    147                         StringBuffer sb = getResponse().getContent(); 
     186                        StringBuffer sb = getContext().getResponse().getContent(); 
    148187                        sb.append("<div align=\"center\">\n"); 
    149188                        sb.append(Common.tableBegin(430,"left")); 
    150189                        sb.append("<div style=\"text-align:center; font-size:14px; font-weight:bold\">Es sind Fehler aufgetreten:</div><ul>\n"); 
    151190                                         
    152                         for( Error error : getErrorList() ) { 
     191                        for( Error error : getContext().getErrorList() ) { 
    153192                                if( error.getUrl() == null ) { 
    154193                                        sb.append("<li><span style=\"font-size:14px; color:red\">"+error.getDescription().replaceAll("\n","<br />")+"</span></li>\n"); 
     
    165204        } 
    166205         
    167         protected class FWAjaxOutputHelper extends FWOutputHelper { 
     206        protected static class AjaxOutputHelper extends OutputHelper { 
    168207                @Override 
    169                 public void printHeader() { 
    170                         // Moegliche Templates vorerst deaktivieren  
    171                         // (bis wir sie fuer ajax wirklich mal brauchen sollten) 
    172                         // TODO 
    173                         //$cntl->setTemplate(''); 
    174                 } 
     208                public void printHeader() {} 
    175209                @Override 
    176210                public void printFooter() {} 
    177211                @Override 
    178212                public void printErrorList() { 
    179                         StringBuffer sb = getResponse().getContent(); 
    180  
    181                         for( Error error : getErrorList() ) { 
     213                        StringBuffer sb = getContext().getResponse().getContent(); 
     214 
     215                        for( Error error : getContext().getErrorList() ) { 
    182216                                sb.append("ERROR: "+error.getDescription().replaceAll("\n"," ")+"\n"); 
    183217                        } 
     
    186220         
    187221        private ActionType actionType; 
    188         private FWOutputHelper actionTypeHandler; 
    189          
    190         private TemplateEngine templateEngine; 
    191         private String masterTemplateID; 
     222        private OutputHelper actionTypeHandler; 
    192223         
    193224        private boolean disableDefaultCSS; 
    194225        private boolean disableDebugOutput; 
    195         private String browser; 
    196226        private long startTime; 
    197227        private boolean requireValidSession; 
     
    228258                preloadUserValues = new ArrayList<String>(); 
    229259                preloadUserValues.add("id"); 
    230                  
    231                 templateEngine = null; 
    232                 masterTemplateID = ""; 
    233260 
    234261                setActionType(ActionType.DEFAULT); 
    235  
    236                 String browser = getRequest().getHeader("user-agent"); 
    237                 if( browser != null ) {          
    238                         browser = browser.toLowerCase(); 
    239                          
    240                         if( browser.indexOf("opera") > -1  ) { 
    241                                 browser = "opera"; 
    242                         } 
    243                         else if( browser.indexOf("msie") > -1 ) { 
    244                                 browser = "msie"; 
    245                         } 
    246                         else { 
    247                                 browser = "mozilla"; 
    248                         } 
    249                         this.browser = browser; 
    250                 } 
    251                 else { 
    252                         this.browser = "unknown"; 
    253                 } 
    254262        } 
    255263                 
     
    345353                else { 
    346354                        this.parameter.put(parameter,""); 
    347                 } 
    348         } 
    349          
    350         private void createTemplateEngine() { 
    351                 if( templateEngine != null ) { 
    352                         return; 
    353                 } 
    354                                  
    355                 templateEngine = new TemplateEngine(getContext()); 
    356  
    357                 String style = (String)getParameter("_style"); 
    358                 if( !style.equals("") ) { 
    359                         templateEngine.setOverlay(style);        
    360                 } 
    361                                  
    362                 if( getBrowser().equals("opera") ) { 
    363                         templateEngine.set_var("_BROWSER_OPERA",1); 
    364                 } 
    365                 else if( getBrowser().equals("msie") ) { 
    366                         templateEngine.set_var("_BROWSER_MSIE",1); 
    367                 } 
    368                 else { 
    369                         templateEngine.set_var("_BROWSER_MOZILLA",1); 
    370                 } 
    371                  
    372                 if( getUser() != null ) { 
    373                         templateEngine.set_var("global.datadir", getUser().getImagePath()); 
    374                 } 
    375                 else { 
    376                         templateEngine.set_var("global.datadir", BasicUser.getDefaultImagePath()); 
    377                 } 
    378                  
    379                 templateEngine.set_var( "global.sess",  getString("sess"), 
    380                                                                 "global.module", getString("module") ); 
    381         } 
    382          
    383         /** 
    384          * Gibt die mit dem Generator verknuepfte Instanz des Template-Engines zurueck 
    385          * @return Das Template-Engine 
    386          */ 
    387         public TemplateEngine getTemplateEngine() { 
    388                 if( templateEngine == null ) { 
    389                         createTemplateEngine(); 
    390                 } 
    391                 return templateEngine; 
    392         } 
    393          
    394         /** 
    395          * Gibt die ID der im System registrierten Template-File zurueck.  
    396          * Sollte noch kein Template-File registriert sein, so wird ein leerer 
    397          * String zurueckgegeben 
    398          * @return die ID der Template-File oder <code>""</code> 
    399          */ 
    400         public String getTemplateID() { 
    401                 return masterTemplateID; 
    402         } 
    403          
    404         /** 
    405          * Setzt das vom Generator verwendete Template-File auf die angegebene Datei. Die Datei muss 
    406          * in kompilierter Form im System vorliegen (das vorhandensein der unkompilierten Variante ist nicht 
    407          * erforderlich). 
    408          * @param file Der Dateiname der unkompilierten Template-Datei 
    409          */ 
    410         public void setTemplate( String file ) { 
    411                 if( !file.equals("") ) {                 
    412                         if( templateEngine == null ) { 
    413                                 createTemplateEngine(); 
    414                         } 
    415                  
    416                         String mastertemplate = new File(file).getName(); 
    417                         if( mastertemplate.indexOf(".html") > -1 ) { 
    418                                 mastertemplate = mastertemplate.substring(0,mastertemplate.lastIndexOf(".html")); 
    419                         } 
    420                         mastertemplate = "_"+mastertemplate.toUpperCase(); 
    421                  
    422                         masterTemplateID = mastertemplate; 
    423  
    424                         if( !templateEngine.set_file( masterTemplateID, file ) ) { 
    425                                 masterTemplateID = ""; 
    426                         } 
    427                 } 
    428                 else { 
    429                         masterTemplateID = "";   
    430355                } 
    431356        } 
     
    456381        } 
    457382         
    458         /** 
    459          * Fueht die angegebene Aktion aus 
    460          * @param action Der Name der Aktion 
    461          * @param actionType Der Typ der Aktion 
    462          */ 
     383        @Override 
    463384        public void handleAction( String action, ActionType actionType ) { 
    464385                setActionType( actionType ); 
     
    478399                 
    479400                if( getErrorList().length != 0 ) { 
    480                         masterTemplateID = ""; 
    481                         actionTypeHandler.printHeader(); 
    482                          
    483                         if( getErrorList().length > 0 ) { 
    484                                 actionTypeHandler.printErrorList(); 
    485                         } 
    486  
    487                         actionTypeHandler.printFooter(); 
     401                        printErrorList(true); 
    488402                         
    489403                        return; 
    490404                } 
    491                 if( templateEngine != null ) { 
    492                         if( getContext().getActiveUser() != null ) { 
    493                                 getContext().getActiveUser().setTemplateVars( templateEngine );  
    494                         }        
    495                 } 
    496                  
    497                 if( (getErrorList().length == 0) && validateAndPrepare(action) ) { 
    498                         String callAction = action + actionType.getActionExt(); 
    499                          
    500                         try { 
    501                                 Method method = getClass().getMethod(callAction); 
    502                                 method.setAccessible(true); 
    503                                 method.invoke(this); 
    504                         } 
    505                         catch( InvocationTargetException e ) { 
    506                                 Throwable t = e.getCause(); 
    507                                 t.printStackTrace(); 
    508                                 StackTraceElement[] st = t.getStackTrace(); 
    509                                 String stacktrace = ""; 
    510                                 for( StackTraceElement s : st ) { 
    511                                         stacktrace += s.toString()+"\n"; 
    512                                 } 
    513                                          
    514                                 addError("Es ist ein Fehler in der Action '"+action+"' aufgetreten:\n"+t.toString()+"\n\n"+stacktrace); 
     405                 
     406                if( (getErrorList().length != 0) || validateAndPrepare(action) ) { 
     407                        printErrorList(true); 
     408                         
     409                        return; 
     410                } 
     411                String callAction = action + actionType.getActionExt(); 
     412                 
     413                try { 
     414                        Method method = getClass().getMethod(callAction); 
     415                        method.setAccessible(true); 
     416                        method.invoke(this); 
     417                } 
     418                catch( InvocationTargetException e ) { 
     419                        Throwable t = e.getCause(); 
     420                        t.printStackTrace(); 
     421                        StackTraceElement[] st = t.getStackTrace(); 
     422                        String stacktrace = ""; 
     423                        for( StackTraceElement s : st ) { 
     424                                stacktrace += s.toString()+"\n"; 
     425                        } 
    515426                                 
    516                                 Common.mailThrowable(e, "DSGenerator Invocation Target Exception",  
    517                                                 "Action: "+action+"\n" + 
    518                                                 "ActionType: "+actionType+"\n" + 
    519                                                 "User: "+(getContext().getActiveUser() != null ? getContext().getActiveUser().getID() : "none")+"\n" + 
    520                                                 "Query-String: "+getContext().getRequest().getQueryString()); 
    521                                  
    522                                 getContext().rollback(); 
    523                         } 
    524                         catch( NoSuchMethodException e ) { 
    525                                 addError("Die Aktion '"+action+"' existiert nicht!"); 
    526                         } 
    527                         catch( Exception e ) { 
    528                                 addError("Es ist ein Fehler beim Aufruf der Action '"+action+"' aufgetreten:\n"+e.toString()); 
    529                                 Common.mailThrowable(e, "DSGenerator Exception",  
    530                                                 "Action: "+action+"\n" + 
    531                                                 "ActionType: "+actionType+"\n"+ 
    532                                                 "User: "+(getContext().getActiveUser() != null ? getContext().getActiveUser().getID() : "none")+"\n" + 
    533                                                 "Query-String: "+getContext().getRequest().getQueryString()); 
    534                                 getContext().rollback(); 
    535                         } 
    536                 } 
    537                 else { 
    538                         masterTemplateID = ""; 
    539                 } 
     427                        addError("Es ist ein Fehler in der Action '"+action+"' aufgetreten:\n"+t.toString()+"\n\n"+stacktrace); 
     428                         
     429                        Common.mailThrowable(e, "DSGenerator Invocation Target Exception",  
     430                                        "Action: "+action+"\n" + 
     431                                        "ActionType: "+actionType+"\n" + 
     432                                        "User: "+(getContext().getActiveUser() != null ? getContext().getActiveUser().getID() : "none")+"\n" + 
     433                                        "Query-String: "+getContext().getRequest().getQueryString()); 
     434                         
     435                        getContext().rollback(); 
     436                } 
     437                catch( NoSuchMethodException e ) { 
     438                        addError("Die Aktion '"+action+"' existiert nicht!"); 
     439                } 
     440                catch( Exception e ) { 
     441                        addError("Es ist ein Fehler beim Aufruf der Action '"+action+"' aufgetreten:\n"+e.toString()); 
     442                        Common.mailThrowable(e, "DSGenerator Exception",  
     443                                        "Action: "+action+"\n" + 
     444                                        "ActionType: "+actionType+"\n"+ 
     445                                        "User: "+(getContext().getActiveUser() != null ? getContext().getActiveUser().getID() : "none")+"\n" + 
     446                                        "Query-String: "+getContext().getRequest().getQueryString()); 
     447                        getContext().rollback(); 
     448                } 
     449                 
    540450                parseSubParameter(""); 
    541451                content = getResponse().getContent().toString(); 
    542452                content = StringUtils.replace(content,"{{{__SESSID__}}}", getString("sess")); 
    543                 getResponse().resetContent(); 
    544                          
    545                 printHeader( action ); 
     453                getResponse().setContent(content); 
     454                 
     455                if( getErrorList().length > 0 ) { 
     456                        printErrorList(false); 
     457                } 
     458                else { 
     459                        getResponse().resetContent(); 
     460                         
     461                        printHeader( action ); 
     462                         
     463                        if( getErrorList().length > 0 ) { 
     464                                actionTypeHandler.printErrorList(); 
     465                        } 
     466                         
     467                        getResponse().getContent().append(content); 
     468                         
     469                        printFooter( action ); 
     470                } 
     471        } 
     472         
     473        protected void printErrorList(boolean init) { 
     474                String content = getResponse().getContent().toString(); 
     475                 
     476                actionTypeHandler.printHeader(); 
    546477                 
    547478                if( getErrorList().length > 0 ) { 
    548479                        actionTypeHandler.printErrorList(); 
    549480                } 
    550                  
    551                 getResponse().getContent().append(content); 
    552                  
    553                 printFooter( action ); 
     481 
     482                if( !init ) { 
     483                        getResponse().resetContent(); 
     484                        getResponse().getContent().append(content); 
     485                } 
     486                 
     487                actionTypeHandler.printFooter(); 
    554488        } 
    555489         
     
    663597        } 
    664598         
    665         /** 
    666          * Gibt den Identifikationsstring des Browsers des Spielers zurueck 
    667          * @return Der Identifikationsstring des Browsers 
    668          */ 
    669         public String getBrowser() { 
    670                 return browser; 
    671         } 
    672          
    673599        protected void setActionType( ActionType type ) { 
    674600                if( type == ActionType.DEFAULT ) { 
    675                         actionTypeHandler = new FWHtmlOutputHelper(); 
     601                        actionTypeHandler = new HtmlOutputHelper(); 
    676602                } 
    677603                else if( type == ActionType.AJAX ) { 
    678                         actionTypeHandler = new FWAjaxOutputHelper(); 
     604                        actionTypeHandler = new AjaxOutputHelper(); 
    679605                }        
    680606                 
    681607                actionType = type; 
     608        } 
     609         
     610        /** 
     611         * Gibt die Ausgabehilfe zurueck 
     612         * @return Die Ausgabehilfe 
     613         */ 
     614        protected OutputHelper getOutputHelper() { 
     615                return actionTypeHandler; 
    682616        } 
    683617         
  • src/net/driftingsouls/ds2/server/framework/pipeline/generators/Generator.java

    r09a6f71 r34f5892  
    3535public abstract class Generator { 
    3636        private Context context; 
     37        private String browser; 
    3738         
    3839        /** 
     
    4243        public Generator(Context context) { 
    4344                this.context = context; 
     45                 
     46                String browser = getRequest().getHeader("user-agent"); 
     47                if( browser != null ) {          
     48                        browser = browser.toLowerCase(); 
     49                         
     50                        if( browser.indexOf("opera") > -1  ) { 
     51                                browser = "opera"; 
     52                        } 
     53                        else if( browser.indexOf("msie") > -1 ) { 
     54                                browser = "msie"; 
     55                        } 
     56                        else { 
     57                                browser = "mozilla"; 
     58                        } 
     59                        this.browser = browser; 
     60                } 
     61                else { 
     62                        this.browser = "unknown"; 
     63                } 
    4464        } 
    4565         
     
    113133         * @return Der Kontext 
    114134         */ 
    115         public Context getContext() { 
     135        public final Context getContext() { 
    116136                return context; 
    117137        } 
     
    121141         * @return Die aktuelle Hibernate-Session 
    122142         */ 
    123         public org.hibernate.Session getDB() { 
     143        public final org.hibernate.Session getDB() { 
    124144                return context.getDB(); 
    125145        } 
     
    133153                return getContext().getActiveUser(); 
    134154        } 
     155 
     156        /** 
     157         * Fueht die angegebene Aktion aus 
     158         * @param action Der Name der Aktion 
     159         * @param actionType Der Typ der Aktion 
     160         */ 
     161        public abstract void handleAction( String action, ActionType actionType ); 
     162         
     163        /** 
     164         * Gibt den Identifikationsstring des Browsers des Spielers zurueck 
     165         * @return Der Identifikationsstring des Browsers 
     166         */ 
     167        public final String getBrowser() { 
     168                return browser; 
     169        } 
    135170} 
  • src/net/driftingsouls/ds2/server/modules/ActivateAllController.java

    r4b6814a r34f5892  
    2525import net.driftingsouls.ds2.server.framework.Common; 
    2626import net.driftingsouls.ds2.server.framework.Context; 
    27 import net.driftingsouls.ds2.server.framework.pipeline.generators.DSGenerator; 
    2827import net.driftingsouls.ds2.server.framework.pipeline.generators.Action; 
    2928import net.driftingsouls.ds2.server.framework.pipeline.generators.ActionType; 
     29import net.driftingsouls.ds2.server.framework.pipeline.generators.TemplateGenerator; 
    3030import net.driftingsouls.ds2.server.framework.templates.TemplateEngine; 
    3131 
     
    3838 * 
    3939 */ 
    40 public class ActivateAllController extends DSGenerator { 
     40public class ActivateAllController extends TemplateGenerator { 
    4141        private Base base = null; 
    4242         
  • src/net/driftingsouls/ds2/server/modules/AllyController.java

    r4b6814a r34f5892  
    4040import net.driftingsouls.ds2.server.framework.pipeline.generators.Action; 
    4141import net.driftingsouls.ds2.server.framework.pipeline.generators.ActionType; 
    42 import net.driftingsouls.ds2.server.framework.pipeline.generators.DSGenerator; 
     42import net.driftingsouls.ds2.server.framework.pipeline.generators.TemplateGenerator; 
    4343import net.driftingsouls.ds2.server.framework.templates.TemplateEngine; 
    4444import net.driftingsouls.ds2.server.ships.Ship; 
     
    5757 * @urlparam String show Die anzuzeigende Unterseite 
    5858 */ 
    59 public class AllyController extends DSGenerator i