Changeset b7af64d1c4640f42e27a57c4504c94aae4b8c9fb
- Timestamp:
- 06/08/07 22:30:22 (1 year ago)
- git-parent:
- Files:
-
- src/net/driftingsouls/ds2/server/entities/AllyPosten.java (modified) (1 diff)
- src/net/driftingsouls/ds2/server/framework/BasicContext.java (modified) (1 diff)
- src/net/driftingsouls/ds2/server/framework/DriftingSoulsServlet.java (modified) (1 diff)
- src/net/driftingsouls/ds2/server/modules/BaseController.java (modified) (2 diffs)
- src/net/driftingsouls/ds2/server/modules/BuildController.java (modified) (3 diffs)
- src/net/driftingsouls/ds2/server/modules/BuildingController.java (modified) (2 diffs)
- src/net/driftingsouls/ds2/server/modules/CoreController.java (modified) (4 diffs)
- src/net/driftingsouls/ds2/server/modules/PortalController.java (modified) (7 diffs)
- src/net/driftingsouls/ds2/server/modules/stats/StatOwnOffiziere.java (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
src/net/driftingsouls/ds2/server/entities/AllyPosten.java
r283e6c7 rb7af64d 116 116 * Diese Operation aktuallisiert <b>nicht</b> die Datenbank 117 117 * @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) 119 119 */ 120 120 public void setUser(User user) { src/net/driftingsouls/ds2/server/framework/BasicContext.java
r6d5ded6 rb7af64d 264 264 } 265 265 266 if( transaction.isActive() ) {266 if( transaction.isActive() && !transaction.wasRolledBack() ) { 267 267 transaction.commit(); 268 268 } 269 269 database.close(); 270 270 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 } 271 281 } 272 282 src/net/driftingsouls/ds2/server/framework/DriftingSoulsServlet.java
r3924571 rb7af64d 532 532 } 533 533 catch( Throwable e ) { 534 org.hibernate.Transaction tx = context.getDB().getTransaction(); 535 if( tx.isActive() ) { 536 tx.rollback(); 537 } 534 context.rollback(); 538 535 539 536 throw e; src/net/driftingsouls/ds2/server/modules/BaseController.java
r283e6c7 rb7af64d 35 35 import net.driftingsouls.ds2.server.framework.Context; 36 36 import net.driftingsouls.ds2.server.framework.db.Database; 37 import net.driftingsouls.ds2.server.framework.db.SQLResultRow;38 37 import net.driftingsouls.ds2.server.framework.pipeline.generators.DSGenerator; 39 38 import net.driftingsouls.ds2.server.framework.templates.TemplateEngine; … … 65 64 @Override 66 65 protected boolean validateAndPrepare(String action) { 67 Database db = getDatabase();68 66 User user = (User)getUser(); 69 67 70 68 int col = getInteger("col"); 71 69 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) ) { 74 72 addError("Die angegebene Kolonie existiert nicht", Common.buildUrl(getContext(), "default", "module", "basen") ); 75 73 76 74 return false; 77 75 } 78 base = new Base(baseRow);79 76 80 77 base.getCargo().setOption( Cargo.Option.LINKCLASS, "schiffwaren" ); src/net/driftingsouls/ds2/server/modules/BuildController.java
r283e6c7 rb7af64d 36 36 import net.driftingsouls.ds2.server.framework.db.Database; 37 37 import net.driftingsouls.ds2.server.framework.db.SQLQuery; 38 import net.driftingsouls.ds2.server.framework.db.SQLResultRow;39 38 import net.driftingsouls.ds2.server.framework.pipeline.generators.DSGenerator; 40 39 import net.driftingsouls.ds2.server.framework.templates.TemplateEngine; … … 65 64 @Override 66 65 protected boolean validateAndPrepare(String action) { 67 Database db = getDatabase();68 66 User user = (User)getUser(); 69 67 TemplateEngine t = getTemplateEngine(); … … 72 70 int field = getInteger("field"); 73 71 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) ) { 76 74 addError("Die angegebene Kolonie existiert nicht", Common.buildUrl(getContext(), "default", "module", "basen")); 77 75 78 76 return false; 79 77 } 80 base = new Base(baseRow); 81 78 82 79 t.set_var( "base.id", base.getID(), 83 80 "base.name", Common._plaintitle(base.getName()), src/net/driftingsouls/ds2/server/modules/BuildingController.java
r283e6c7 rb7af64d 29 29 import net.driftingsouls.ds2.server.framework.Context; 30 30 import net.driftingsouls.ds2.server.framework.db.Database; 31 import net.driftingsouls.ds2.server.framework.db.SQLResultRow;32 31 import net.driftingsouls.ds2.server.framework.pipeline.generators.DSGenerator; 33 32 … … 63 62 int field = getInteger("field"); 64 63 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) ) { 67 66 addError("Die angegebene Kolonie existiert nicht", Common.buildUrl(getContext(), "default", "module", "basen")); 68 67 69 68 return false; 70 69 } 71 base = new Base(baseRow);72 70 73 71 if( (field >= base.getBebauung().length) || (base.getBebauung()[field] == 0) ) { src/net/driftingsouls/ds2/server/modules/CoreController.java
r283e6c7 rb7af64d 29 29 import net.driftingsouls.ds2.server.framework.db.Database; 30 30 import net.driftingsouls.ds2.server.framework.db.SQLQuery; 31 import net.driftingsouls.ds2.server.framework.db.SQLResultRow;32 31 import net.driftingsouls.ds2.server.framework.pipeline.generators.DSGenerator; 33 32 import net.driftingsouls.ds2.server.framework.templates.TemplateEngine; … … 56 55 @Override 57 56 protected boolean validateAndPrepare(String action) { 58 Database db = getDatabase();59 57 User user = (User)getUser(); 60 58 TemplateEngine t = getTemplateEngine(); … … 62 60 int col = getInteger("col"); 63 61 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) ) { 66 64 addError( "Die angegebene Kolonie existiert nicht", Common.buildUrl(getContext(), "default", "module", "basen") ); 67 65 … … 69 67 } 70 68 71 t.set_var( "base.id", base.getInt("id") ); 72 73 this.base = new Base(base); 69 t.set_var( "base.id", base.getID() ); 74 70 75 71 return true; src/net/driftingsouls/ds2/server/modules/PortalController.java
r283e6c7 rb7af64d 19 19 package net.driftingsouls.ds2.server.modules; 20 20 21 import java.util.ArrayList; 21 22 import java.util.HashMap; 22 23 import java.util.Map; … … 27 28 import net.driftingsouls.ds2.server.Location; 28 29 import net.driftingsouls.ds2.server.SectorTemplateManager; 30 import net.driftingsouls.ds2.server.bases.AutoGTUAction; 29 31 import net.driftingsouls.ds2.server.bases.Base; 30 32 import net.driftingsouls.ds2.server.bases.Building; … … 37 39 import net.driftingsouls.ds2.server.config.StarSystem; 38 40 import net.driftingsouls.ds2.server.config.Systems; 41 import net.driftingsouls.ds2.server.entities.Nebel; 39 42 import net.driftingsouls.ds2.server.entities.User; 40 43 import net.driftingsouls.ds2.server.framework.BasicUser; … … 58 61 */ 59 62 class PortalController extends DSGenerator { 60 private int retries = 5;61 62 63 /** 63 64 * Konstruktor … … 488 489 } 489 490 490 db.tBegin();491 491 db.tUpdate(1,"UPDATE config SET `keys`='",Common.implode("\n",newKeyList),"' WHERE `keys`='",settings.getString("keys"),"'"); 492 }493 else {494 db.tBegin();495 492 } 496 493 … … 522 519 Location orderloc = orderlocs[locations.minSysDistance.get(system).orderLocationID]; 523 520 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]; 527 524 int bewohner = 0; 528 525 int arbeiter = 0; 529 526 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 ) { 532 531 activebuildings[i] = 1; 533 Building building = Building.getBuilding(db, Integer.parseInt(baselayout[i]));532 Building building = Building.getBuilding(db, baselayout[i]); 534 533 bewohner += building.getBewohner(); 535 534 arbeiter += building.getArbeiter(); … … 540 539 } 541 540 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(); 545 549 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); 554 551 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>()); 576 562 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 } 578 575 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 589 585 if( race == 1 ) { 590 SectorTemplateManager.getInstance().useTemplate(db, "ORDER_TERRANER", new Location(system, base.get Int("x"), base.getInt("y")), newid);591 SectorTemplateManager.getInstance().useTemplate(db, "ORDER_TERRANER_TANKER", new Location(system, nebel.get Int("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); 592 588 } 593 589 else { 594 SectorTemplateManager.getInstance().useTemplate(db, "ORDER_VASUDANER", new Location(system, base.get Int("x"), base.getInt("y")), newid);595 SectorTemplateManager.getInstance().useTemplate(db, "ORDER_VASUDANER_TANKER", new Location(system, nebel.get Int("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); 596 592 } 597 593 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 ); 606 600 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")); 614 608 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ührt werden. Bitte versuchen sie es ein wenig später erneut.<br />Die Administratoren wurden vorsorglich informiert und werden, falls ein Fehler vorliegt, diesen schnellstmö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ü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); 627 610 628 611 return true; src/net/driftingsouls/ds2/server/modules/stats/StatOwnOffiziere.java
r283e6c7 rb7af64d 20 20 21 21 import java.util.HashMap; 22 import java.util.Iterator; 23 import java.util.List; 22 24 import java.util.Map; 23 25 … … 29 31 import net.driftingsouls.ds2.server.framework.Loggable; 30 32 import net.driftingsouls.ds2.server.framework.db.Database; 31 import net.driftingsouls.ds2.server.framework.db.SQLQuery;32 33 import net.driftingsouls.ds2.server.framework.db.SQLResultRow; 33 34 import net.driftingsouls.ds2.server.modules.StatsController; … … 47 48 StringBuffer echo = context.getResponse().getContent(); 48 49 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(); 53 53 54 if( offi .numRows() == 0 ) {54 if( offiziere.size() == 0 ) { 55 55 echo.append("<div align=\"center\">Sie verfügen über keine Offiziere</div>\n"); 56 56 … … 64 64 Map<Integer,String> bases = new HashMap<Integer,String>(); 65 65 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 68 69 echo.append("<tr>\n"); 69 70 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"); … … 108 109 echo.append("</tr>\n"); 109 110 } 110 offi.free();111 111 112 112 echo.append("</table><div><br /><br /></div>\n");
