Changeset b7af64d1c4640f42e27a57c4504c94aae4b8c9fb

Show
Ignore:
Timestamp:
06/08/07 22:30:22 (1 year ago)
Author:
Christopher Jung <bktheg@web.de>
git-committer:
Christopher Jung <bktheg@web.de> 1181334622 +0200
git-parent:

[283e6c781b75c984e73976df3db317ca35411509]

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

Ein paar Warnungen gefixt

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • src/net/driftingsouls/ds2/server/entities/AllyPosten.java

    r283e6c7 rb7af64d  
    116116         * Diese Operation aktuallisiert <b>nicht</b> die Datenbank 
    117117         * @param user Der neue User 
    118          * @see net.driftingsouls.ds2.server.framework.User#setAllyPosten(AllyPosten) 
     118         * @see net.driftingsouls.ds2.server.entities.User#setAllyPosten(AllyPosten) 
    119119         */ 
    120120        public void setUser(User user) { 
  • src/net/driftingsouls/ds2/server/framework/BasicContext.java

    r6d5ded6 rb7af64d  
    264264                } 
    265265 
    266                 if( transaction.isActive() ) { 
     266                if( transaction.isActive() && !transaction.wasRolledBack() ) { 
    267267                        transaction.commit(); 
    268268                } 
    269269                database.close(); 
    270270                ContextMap.removeContext(); 
     271        } 
     272         
     273        /** 
     274         * Fuehrt ein Rollback auf der aktuellen Transaktion durch 
     275         * 
     276         */ 
     277        public void rollback() { 
     278                if( transaction.isActive() ) { 
     279                        transaction.rollback(); 
     280                } 
    271281        } 
    272282 
  • src/net/driftingsouls/ds2/server/framework/DriftingSoulsServlet.java

    r3924571 rb7af64d  
    532532                        } 
    533533                        catch( Throwable e ) { 
    534                                 org.hibernate.Transaction tx = context.getDB().getTransaction(); 
    535                                 if( tx.isActive() ) { 
    536                                         tx.rollback(); 
    537                                 } 
     534                                context.rollback(); 
    538535                                 
    539536                                throw e; 
  • src/net/driftingsouls/ds2/server/modules/BaseController.java

    r283e6c7 rb7af64d  
    3535import net.driftingsouls.ds2.server.framework.Context; 
    3636import net.driftingsouls.ds2.server.framework.db.Database; 
    37 import net.driftingsouls.ds2.server.framework.db.SQLResultRow; 
    3837import net.driftingsouls.ds2.server.framework.pipeline.generators.DSGenerator; 
    3938import net.driftingsouls.ds2.server.framework.templates.TemplateEngine; 
     
    6564        @Override 
    6665        protected boolean validateAndPrepare(String action) { 
    67                 Database db = getDatabase(); 
    6866                User user = (User)getUser(); 
    6967                 
    7068                int col = getInteger("col"); 
    7169                 
    72                 SQLResultRow baseRow = db.first("SELECT * FROM bases WHERE owner='",user.getID(),"' AND id='",col,"'"); 
    73                 if( baseRow.isEmpty() ) { 
     70                base = (Base)getDB().get(Base.class, col); 
     71                if( (base == null) || (base.getOwner() != user) ) { 
    7472                        addError("Die angegebene Kolonie existiert nicht", Common.buildUrl(getContext(), "default", "module", "basen") ); 
    7573                         
    7674                        return false; 
    7775                } 
    78                 base = new Base(baseRow);                
    7976                 
    8077                base.getCargo().setOption( Cargo.Option.LINKCLASS, "schiffwaren" ); 
  • src/net/driftingsouls/ds2/server/modules/BuildController.java

    r283e6c7 rb7af64d  
    3636import net.driftingsouls.ds2.server.framework.db.Database; 
    3737import net.driftingsouls.ds2.server.framework.db.SQLQuery; 
    38 import net.driftingsouls.ds2.server.framework.db.SQLResultRow; 
    3938import net.driftingsouls.ds2.server.framework.pipeline.generators.DSGenerator; 
    4039import net.driftingsouls.ds2.server.framework.templates.TemplateEngine; 
     
    6564        @Override 
    6665        protected boolean validateAndPrepare(String action) { 
    67                 Database db = getDatabase(); 
    6866                User user = (User)getUser(); 
    6967                TemplateEngine t = getTemplateEngine(); 
     
    7270                int field = getInteger("field"); 
    7371                 
    74                 SQLResultRow baseRow = db.first("SELECT * FROM bases WHERE owner=",user.getID()," AND id=",col); 
    75                 if( baseRow.isEmpty() ) { 
     72                base = (Base)getDB().get(Base.class, col); 
     73                if( (base == null) || (base.getOwner() != user) ) { 
    7674                        addError("Die angegebene Kolonie existiert nicht", Common.buildUrl(getContext(), "default", "module", "basen")); 
    7775                         
    7876                        return false; 
    7977                } 
    80                 base = new Base(baseRow);                
    81                  
     78 
    8279                t.set_var(      "base.id",              base.getID(), 
    8380                                        "base.name",    Common._plaintitle(base.getName()), 
  • src/net/driftingsouls/ds2/server/modules/BuildingController.java

    r283e6c7 rb7af64d  
    2929import net.driftingsouls.ds2.server.framework.Context; 
    3030import net.driftingsouls.ds2.server.framework.db.Database; 
    31 import net.driftingsouls.ds2.server.framework.db.SQLResultRow; 
    3231import net.driftingsouls.ds2.server.framework.pipeline.generators.DSGenerator; 
    3332 
     
    6362                int field = getInteger("field"); 
    6463                 
    65                 SQLResultRow baseRow = db.first("SELECT * FROM bases WHERE owner=",user.getID()," AND id=",col); 
    66                 if( baseRow.isEmpty() ) { 
     64                base = (Base)getDB().get(Base.class, col); 
     65                if( (base == null) || (base.getOwner() != user) ) { 
    6766                        addError("Die angegebene Kolonie existiert nicht", Common.buildUrl(getContext(), "default", "module", "basen")); 
    6867                         
    6968                        return false; 
    7069                } 
    71                 base = new Base(baseRow);                
    7270                 
    7371                if( (field >= base.getBebauung().length) || (base.getBebauung()[field] == 0) ) { 
  • src/net/driftingsouls/ds2/server/modules/CoreController.java

    r283e6c7 rb7af64d  
    2929import net.driftingsouls.ds2.server.framework.db.Database; 
    3030import net.driftingsouls.ds2.server.framework.db.SQLQuery; 
    31 import net.driftingsouls.ds2.server.framework.db.SQLResultRow; 
    3231import net.driftingsouls.ds2.server.framework.pipeline.generators.DSGenerator; 
    3332import net.driftingsouls.ds2.server.framework.templates.TemplateEngine; 
     
    5655        @Override 
    5756        protected boolean validateAndPrepare(String action) { 
    58                 Database db = getDatabase(); 
    5957                User user = (User)getUser(); 
    6058                TemplateEngine t = getTemplateEngine(); 
     
    6260                int col = getInteger("col"); 
    6361                 
    64                 SQLResultRow base = db.first("SELECT * FROM bases WHERE owner=",user.getID()," AND id=",col); 
    65                 if( base.isEmpty() ) { 
     62                base = (Base)getDB().get(Base.class, col); 
     63                if( (base == null) || (base.getOwner() != user) ) { 
    6664                        addError( "Die angegebene Kolonie existiert nicht", Common.buildUrl(getContext(), "default", "module", "basen") ); 
    6765                         
     
    6967                } 
    7068                 
    71                 t.set_var( "base.id", base.getInt("id") ); 
    72                                                          
    73                 this.base = new Base(base); 
     69                t.set_var( "base.id", base.getID() ); 
    7470                 
    7571                return true;     
  • src/net/driftingsouls/ds2/server/modules/PortalController.java

    r283e6c7 rb7af64d  
    1919package net.driftingsouls.ds2.server.modules; 
    2020 
     21import java.util.ArrayList; 
    2122import java.util.HashMap; 
    2223import java.util.Map; 
     
    2728import net.driftingsouls.ds2.server.Location; 
    2829import net.driftingsouls.ds2.server.SectorTemplateManager; 
     30import net.driftingsouls.ds2.server.bases.AutoGTUAction; 
    2931import net.driftingsouls.ds2.server.bases.Base; 
    3032import net.driftingsouls.ds2.server.bases.Building; 
     
    3739import net.driftingsouls.ds2.server.config.StarSystem; 
    3840import net.driftingsouls.ds2.server.config.Systems; 
     41import net.driftingsouls.ds2.server.entities.Nebel; 
    3942import net.driftingsouls.ds2.server.entities.User; 
    4043import net.driftingsouls.ds2.server.framework.BasicUser; 
     
    5861 */ 
    5962class PortalController extends DSGenerator { 
    60         private int retries = 5; 
    61  
    6263        /** 
    6364         * Konstruktor 
     
    488489                        } 
    489490                         
    490                         db.tBegin(); 
    491491                        db.tUpdate(1,"UPDATE config SET `keys`='",Common.implode("\n",newKeyList),"' WHERE `keys`='",settings.getString("keys"),"'"); 
    492                 } 
    493                 else { 
    494                         db.tBegin(); 
    495492                } 
    496493                 
     
    522519                Location orderloc = orderlocs[locations.minSysDistance.get(system).orderLocationID]; 
    523520                 
    524                 String[] baselayout = Configuration.getSetting("REGISTER_BASELAYOUT").split(","); 
    525                 Integer[] activebuildings = new Integer[baselayout.length]; 
    526                  
     521                String[] baselayoutStr = Configuration.getSetting("REGISTER_BASELAYOUT").split(","); 
     522                Integer[] activebuildings = new Integer[baselayoutStr.length]; 
     523                Integer[] baselayout = new Integer[baselayoutStr.length]; 
    527524                int bewohner = 0; 
    528525                int arbeiter = 0; 
    529526                 
    530                 for( int i=0; i < baselayout.length; i++ ) { 
    531                         if( !baselayout[i].equals("0") ) { 
     527                for( int i=0; i < baselayoutStr.length; i++ ) { 
     528                        baselayout[i] = Integer.parseInt(baselayoutStr[i]); 
     529                         
     530                        if( baselayout[i] != 0 ) { 
    532531                                activebuildings[i] = 1; 
    533                                 Building building = Building.getBuilding(db, Integer.parseInt(baselayout[i])); 
     532                                Building building = Building.getBuilding(db, baselayout[i]); 
    534533                                bewohner += building.getBewohner(); 
    535534                                arbeiter += building.getArbeiter(); 
     
    540539                } 
    541540 
    542                 SQLResultRow base = db.first("SELECT *,sqrt((",orderloc.getX(),"-x)*(",orderloc.getX(),"-x)+(",orderloc.getY(),"-y)*(",orderloc.getY(),"-y)) distance " , 
    543                                 "FROM bases " , 
    544                                 "WHERE klasse=1 AND owner=0 AND system='",system,"' ORDER BY distance LIMIT 1"); 
     541                Base base = (Base)getDB().createQuery("from Base where klasse=1 and owner=0 and system=? order by sqrt((?-x)*(?-x)+(?-y)*(?-y)) ") 
     542                        .setInteger(0, system) 
     543                        .setInteger(1, orderloc.getX()) 
     544                        .setInteger(2, orderloc.getX()) 
     545                        .setInteger(3, orderloc.getY()) 
     546                        .setInteger(4, orderloc.getY()) 
     547                        .setMaxResults(1) 
     548                        .uniqueResult(); 
    545549                 
    546                 SQLResultRow newbase = (SQLResultRow)base.clone(); 
    547                 newbase.put("e", base.get("maxe"));; 
    548                 newbase.put("owner", newid); 
    549                 newbase.put("bebauung", Common.implode("|",baselayout)); 
    550                 newbase.put("active", Common.implode("|", activebuildings)); 
    551                 newbase.put("arbeiter", arbeiter); 
    552                 newbase.put("bewohner", bewohner); 
    553                 newbase.put("cargo", new Cargo(Cargo.Type.STRING, Configuration.getSetting("REGISTER_BASECARGO")).save() ); 
     550                User newuser = (User)getDB().get(User.class, newid); 
    554551                 
    555                 db.tUpdate(1, "UPDATE bases SET " , 
    556                                 "e='",newbase.get("e"),"', " , 
    557                                 "owner='",newbase.get("owner"),"'," , 
    558                                 "bebauung='",newbase.get("bebauung"),"'," , 
    559                                 "active='",newbase.get("active"),"'," , 
    560                                 "arbeiter='",newbase.get("arbeiter"),"'," , 
    561                                 "bewohner='",newbase.get("bewohner"),"'," , 
    562                                 "cargo='",newbase.get("cargo"),"'," , 
    563                                 "core=0," , 
    564                                 "coreactive=0," , 
    565                                 "autogtuacts='' " , 
    566                                 "WHERE " , 
    567                                 "id='",base.get("id"),"' AND " , 
    568                                 "owner='0' AND " , 
    569                                 "system='",system,"' AND " , 
    570                                 "e='",base.get("e"),"' AND " , 
    571                                 "bebauung='",base.get("bebauung"),"' AND " , 
    572                                 "active='",base.get("active"),"' AND " , 
    573                                 "arbeiter='",base.get("arbeiter"),"' AND " , 
    574                                 "bewohner='",base.get("bewohner"),"' AND " , 
    575                                 "cargo='",base.get("cargo"),"'"); 
     552                base.setEnergy(base.getMaxEnergy()); 
     553                base.setOwner(newuser); 
     554                base.setBebauung(baselayout); 
     555                base.setActive(activebuildings); 
     556                base.setArbeiter(arbeiter); 
     557                base.setBewohner(bewohner); 
     558                base.setCargo(new Cargo(Cargo.Type.STRING, Configuration.getSetting("REGISTER_BASECARGO"))); 
     559                base.setCore(0); 
     560                base.setCoreActive(false); 
     561                base.setAutoGTUActs(new ArrayList<AutoGTUAction>()); 
    576562                 
    577                 db.update("UPDATE offiziere SET userid='",newbase.get("owner"),"' WHERE dest IN ('b ",base.get("id"),"','t ",base.get("id"),"')"); 
     563                getDB().createQuery("update Offizier set userid=? where dest in (?, ?)") 
     564                        .setInteger(0, base.getOwner().getID()) 
     565                        .setString(1, "b "+base.getID()) 
     566                        .setString(2, "t "+base.getID()) 
     567                        .executeUpdate(); 
     568                         
     569                for( int i=0; i < baselayout.length; i++ ) { 
     570                        if( baselayout[i] > 0 ) { 
     571                                Building building = Building.getBuilding(db, baselayout[i]); 
     572                                building.build(base);                            
     573                        } 
     574                } 
    578575                 
    579                 Base newBaseObj = new Base(newbase); 
    580                 for( int i=0; i < baselayout.length; i++ ) { 
    581                         if( Integer.parseInt(baselayout[i]) > 0 ) { 
    582                                 Building building = Building.getBuilding(db, Integer.parseInt(baselayout[i])); 
    583                                 building.build(newBaseObj);                              
    584                         } 
    585                 } 
    586                  
    587                 SQLResultRow nebel = db.first("SELECT *,sqrt((",base.get("x"),"-x)*(",base.get("x"),"-x)+(",base.get("y"),"-y)*(",base.get("y"),"-y)) distance,sqrt((",base.get("x"),"-x)*(",base.get("x"),"-x)+(",base.get("y"),"-y)*(",base.get("y"),"-y))*((type+1)%3)*3 moddist FROM nebel WHERE system='",system,"' AND type<3 ORDER BY moddist LIMIT 1"); 
    588                  
     576                Nebel nebel = (Nebel)getDB().createQuery("from Nebel where system=? and type<3 order by sqrt((?-x)*(?-x)+(?-y)*(?-y))*((type+1)%3)*3") 
     577                        .setInteger(0, system) 
     578                        .setInteger(1, orderloc.getX()) 
     579                        .setInteger(2, orderloc.getX()) 
     580                        .setInteger(3, orderloc.getY()) 
     581                        .setInteger(4, orderloc.getY()) 
     582                        .setMaxResults(1) 
     583                        .uniqueResult(); 
     584 
    589585                if( race == 1 ) {                
    590                         SectorTemplateManager.getInstance().useTemplate(db, "ORDER_TERRANER", new Location(system, base.getInt("x"), base.getInt("y")), newid); 
    591                         SectorTemplateManager.getInstance().useTemplate(db, "ORDER_TERRANER_TANKER", new Location(system, nebel.getInt("x"), nebel.getInt("y")), newid); 
     586                        SectorTemplateManager.getInstance().useTemplate(db, "ORDER_TERRANER", new Location(system, base.getX(), base.getY()), newid); 
     587                        SectorTemplateManager.getInstance().useTemplate(db, "ORDER_TERRANER_TANKER", new Location(system, nebel.getX(), nebel.getY()), newid); 
    592588                }  
    593589                else {                   
    594                         SectorTemplateManager.getInstance().useTemplate(db, "ORDER_VASUDANER", new Location(system, base.getInt("x"), base.getInt("y")), newid); 
    595                         SectorTemplateManager.getInstance().useTemplate(db, "ORDER_VASUDANER_TANKER", new Location(system, nebel.getInt("x"), nebel.getInt("y")), newid); 
     590                        SectorTemplateManager.getInstance().useTemplate(db, "ORDER_VASUDANER", new Location(system, base.getX(), base.getY()), newid); 
     591                        SectorTemplateManager.getInstance().useTemplate(db, "ORDER_VASUDANER_TANKER", new Location(system, nebel.getX(), nebel.getY()), newid); 
    596592                } 
    597593                 
    598  
    599                 if( db.tCommit() ) { 
    600                         //Willkommens-PM versenden 
    601                         PM.send( getContext(),Configuration.getIntSetting("REGISTER_PM_SENDER"), newid,  
    602                                         "Willkommen bei Drifting Souls 2", Configuration.getSetting("REGISTER_PM")); 
    603                  
    604                         t.set_var( "show.register.msg.ok", 1, 
    605                                                 "register.newid", newid ); 
     594                //Willkommens-PM versenden 
     595                PM.send( getContext(),Configuration.getIntSetting("REGISTER_PM_SENDER"), newid,  
     596                                "Willkommen bei Drifting Souls 2", Configuration.getSetting("REGISTER_PM")); 
     597                 
     598                t.set_var( "show.register.msg.ok", 1, 
     599                                        "register.newid", newid ); 
    606600                                                         
    607                        Common.copyFile(Configuration.getSetting("ABSOLUTE_PATH")+"data/logos/user/0.gif", 
    608                                        Configuration.getSetting("ABSOLUTE_PATH")+"data/logos/user/"+newid+".gif"); 
    609  
    610                        String message = Configuration.getSetting("REGISTER_EMAIL"); 
    611                        message = message.replace("{username}", username); 
    612                        message = message.replace("{password}", password); 
    613                        message = message.replace("{date}", Common.date("H:i j.m.Y")); 
     601                Common.copyFile(Configuration.getSetting("ABSOLUTE_PATH")+"data/logos/user/0.gif", 
     602                                Configuration.getSetting("ABSOLUTE_PATH")+"data/logos/user/"+newid+".gif"); 
     603 
     604                String message = Configuration.getSetting("REGISTER_EMAIL"); 
     605                message = message.replace("{username}", username); 
     606                message = message.replace("{password}", password); 
     607                message = message.replace("{date}", Common.date("H:i j.m.Y")); 
    614608                         
    615                         Common.mail(email, "Anmeldung bei Drifting Souls 2", message); 
    616                 } 
    617                 else { 
    618                         if( retries  > 0 ) { 
    619                                 retries--; 
    620                                 return register( username, email, race, system, key, settings ); 
    621                         } 
    622                         t.set_var("show.message", "Leider konnte die Registrierung nicht erfolgreich durchgef&uuml;hrt werden. Bitte versuchen sie es ein wenig sp&auml;ter erneut.<br />Die Administratoren wurden vorsorglich informiert und werden, falls ein Fehler vorliegt, diesen schnellstm&ouml;glich beheben"); 
    623                         PM.sendToAdmins(getContext(), -1, "Registrierungsfehler",  
    624                                                         "[color=orange]WARNUNG[/color]\nEs konnte auch nach 5 Versuchen keine erfolgreiche Registrierung eines Spielers durchgef&uuml;hrt werden.\n\nUsername: "+username+"\nEmail: "+email+"\nRace: "+race+"\nSystem: "+system+"\nKey: "+key+"\nSettings: "+settings.getString("keys"),PM.FLAGS_IMPORTANT); 
    625                         return false; 
    626                 } 
     609                Common.mail(email, "Anmeldung bei Drifting Souls 2", message); 
    627610 
    628611                return true; 
  • src/net/driftingsouls/ds2/server/modules/stats/StatOwnOffiziere.java

    r283e6c7 rb7af64d  
    2020 
    2121import java.util.HashMap; 
     22import java.util.Iterator; 
     23import java.util.List; 
    2224import java.util.Map; 
    2325 
     
    2931import net.driftingsouls.ds2.server.framework.Loggable; 
    3032import net.driftingsouls.ds2.server.framework.db.Database; 
    31 import net.driftingsouls.ds2.server.framework.db.SQLQuery; 
    3233import net.driftingsouls.ds2.server.framework.db.SQLResultRow; 
    3334import net.driftingsouls.ds2.server.modules.StatsController; 
     
    4748                StringBuffer echo = context.getResponse().getContent(); 
    4849         
    49                 SQLQuery offi = db.query("SELECT * ", 
    50                                         "FROM offiziere ", 
    51                                         "WHERE userid=",user.getID()," ", 
    52                                         "ORDER BY ing+nav+waf+sec+com DESC"); 
     50                List offiziere = context.getDB().createQuery("from Offizier where userid=? order by ing+nav+waf+sec+com desc") 
     51                        .setInteger(0, user.getID()) 
     52                        .list(); 
    5353                                         
    54                 if( offi.numRows() == 0 ) { 
     54                if( offiziere.size() == 0 ) { 
    5555                        echo.append("<div align=\"center\">Sie verf&uuml;gen &uuml;ber keine Offiziere</div>\n"); 
    5656                         
     
    6464                Map<Integer,String> bases = new HashMap<Integer,String>(); 
    6565                 
    66                 while( offi.next() ) { 
    67                         Offizier offizier = new Offizier(offi.getRow()); 
     66                for( Iterator iter=offiziere.iterator(); iter.hasNext(); ) { 
     67                        Offizier offizier = (Offizier)iter.next(); 
     68                         
    6869                        echo.append("<tr>\n"); 
    6970                        echo.append("<td class=\"noBorderX\"><img src=\""+offizier.getPicture()+"\" alt=\"Rang "+offizier.getRang()+"\" /> <a class=\"forschinfo\" href=\""+Common.buildUrl(context, "default", "module", "choff", "off", offizier.getID())+"\">"+Common._title(offizier.getName())+"</a> ("+offizier.getID()+")</td>\n"); 
     
    108109                        echo.append("</tr>\n"); 
    109110                } 
    110                 offi.free(); 
    111111         
    112112                echo.append("</table><div><br /><br /></div>\n");