forked from MagicBane/Server
Complete JodaTime -> java.time migration (remaining objects, db handlers, net msg, jobs) + QC pass; untrack working reference files
This commit is contained in:
@@ -1,93 +0,0 @@
|
||||
%PDF-1.4
|
||||
%“Œ‹ž ReportLab Generated PDF document (opensource)
|
||||
1 0 obj
|
||||
<<
|
||||
/F1 2 0 R /F2 3 0 R
|
||||
>>
|
||||
endobj
|
||||
2 0 obj
|
||||
<<
|
||||
/BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font
|
||||
>>
|
||||
endobj
|
||||
3 0 obj
|
||||
<<
|
||||
/BaseFont /Helvetica-Bold /Encoding /WinAnsiEncoding /Name /F2 /Subtype /Type1 /Type /Font
|
||||
>>
|
||||
endobj
|
||||
4 0 obj
|
||||
<<
|
||||
/Contents 9 0 R /MediaBox [ 0 0 612 792 ] /Parent 8 0 R /Resources <<
|
||||
/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
|
||||
>> /Rotate 0 /Trans <<
|
||||
|
||||
>>
|
||||
/Type /Page
|
||||
>>
|
||||
endobj
|
||||
5 0 obj
|
||||
<<
|
||||
/Contents 10 0 R /MediaBox [ 0 0 612 792 ] /Parent 8 0 R /Resources <<
|
||||
/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
|
||||
>> /Rotate 0 /Trans <<
|
||||
|
||||
>>
|
||||
/Type /Page
|
||||
>>
|
||||
endobj
|
||||
6 0 obj
|
||||
<<
|
||||
/PageMode /UseNone /Pages 8 0 R /Type /Catalog
|
||||
>>
|
||||
endobj
|
||||
7 0 obj
|
||||
<<
|
||||
/Author (\(anonymous\)) /CreationDate (D:20261002192444-05'00') /Creator (\(unspecified\)) /Keywords () /ModDate (D:20261002192444-05'00') /Producer (ReportLab PDF Library - \(opensource\))
|
||||
/Subject (\(unspecified\)) /Title (\(anonymous\)) /Trapped /False
|
||||
>>
|
||||
endobj
|
||||
8 0 obj
|
||||
<<
|
||||
/Count 2 /Kids [ 4 0 R 5 0 R ] /Type /Pages
|
||||
>>
|
||||
endobj
|
||||
9 0 obj
|
||||
<<
|
||||
/Filter [ /ASCII85Decode /FlateDecode ] /Length 941
|
||||
>>
|
||||
stream
|
||||
GatUr>Aoub'S,*</'_X..>3Tc8b\HlXgC`s?!-jL(Y>1->Hk)D''8#s-F]g]87dYk"`lBT3Tm^l!8i6Wp6SbZmo,V/"V??KXrni.Jb0?*VACm%_*0WB_)-/JG0FmF<.87/$][#s;b/E#9aJSZ9bW8!Os#RoH'6hOBa1>.18?;%&=,F[e8QkpCIn\g0-PaqoErUce;Ja\%pp`nj8sgNOibjW9mK;P96:guFagtKR<p39G*c=nDt\7t*J][PodK(NAs\IYM;Qm[9kJLaraG.8bdXg>$BAg<#u>Y;4_##8/)UJT;t+&]+cfCjE7T^a9](jOG]:\rKJ/Lr)-hepCk<k?F;+KFKZrZ%J'nOM#AlSq]q%(Rr_R-&f1JqA>kd&:Sp,<;SdjoS(qsK+f*K$hV)"^'D0:QL>TZG2ZIQ0Rh_k7_4md"VY*Udb?$t+?#i?iLrXF',n>!4#L$@cXVd3P\%'*T<;MK.h#].""@#s946\VD!)/,TLC)Vf;(G4pX57RqN5DGeQAt]\7N0^;`bI,`BjMR==YA%]dfoHkkC@2VZ4S%DdDW.Ic,"E)8RUNtlI[B,+5"P8#>r/FYU:)VO^hde>Q'0[sJ[RuDo(6pa=dRnh)'nr_U?i0E$+Y<u4^<:nRO'U[Y2.Kn>K7:"DemIP2TuX&;GXpS-h.30M$GJE_aP%o;J;Z\DXZ#em3JK#E"WTmr#QS[D*aiJ8G-f2b+?u\P>uHk*dPlP[[/<*ZC1muX<,9]cusD]gP"?[@njM7"t6ROh$,9;NI--J!X5-tqh&.gV^695^F?+4h"hM]7PG'9?"JP%W9nb]C5l@<<Aa/"4mIMS$:lOF>1gGfa2a]f(dkE,9j)@Nho$FudAM2H7aq:=2iLJiT'<DT`dXJ-VEiKd^I&X/o/s"n!*seRm$Sj*p%1iuD,eF,NS<^#9"YrX/q*nj7&ds~>endstream
|
||||
endobj
|
||||
10 0 obj
|
||||
<<
|
||||
/Filter [ /ASCII85Decode /FlateDecode ] /Length 702
|
||||
>>
|
||||
stream
|
||||
Gau1+?#Q2d'Sc)J/']H/)@mMQOmZs]W>939[`,dEWZ5s`Ohha%FoD%j+$j+B;$C[>KYZMe*rC@m0\C^0p)<)oCC2.*0jk7M&MQKRkZ8&Sm!4?_0Dtm`Q(pRpF*9WHV),dn&!cdU>ZYnF#>GrRBklQ@=qP,VV$U8Y/?P;^A-(SU;S4Je!Qecp$N>_oM;T+0ZX4-Xh^gDaT*%4Yr;_bjCM9ReHMktJPD8DjX>`c;FL6A?G.Zq'etON%q*8*VPXd0UI&TE&Gg2p_]WCS*F@ID)1BA).3tOmNPF$m?*4!5AQ$TA"1,*io]\>M$i3AI@IGYfNQ(kTY(fFM^d0!=;lC1SE0TL"%Z%FJZ<":=98NMf);(G\GE=1GT:q/%QFp\Jj^.e1M+m8,9'<&7E@-UY[EE1f0A5LmM@*kr(jlIVj(_0FNc3i3XoP+:">PLTFgG#q9npllbY3mD_'Z?Dch=!95d<lYY1Ki=P-Wmk,C`KeuDuqCA);SRn0`(@BWX"s)_PLin+'3T!ZF>`>ft1=ni[(XMZ;VYhkCl5[=,i=<Pk$T8n6K]+qH9J")BJM)aD-biRRcts1q;2*#(&ZTH@>fT10L$n6\5X/+bS:5R;'3WeHr@KG?$k>6B&sQpniu]Dc0%ciNIf$Km\`YBT>un[[@\0h)p\6\>CA[1?jkW#hhdh+AjmFAUJ6,hM!,$,[g<N<3-Q'~>endstream
|
||||
endobj
|
||||
xref
|
||||
0 11
|
||||
0000000000 65535 f
|
||||
0000000061 00000 n
|
||||
0000000102 00000 n
|
||||
0000000209 00000 n
|
||||
0000000321 00000 n
|
||||
0000000514 00000 n
|
||||
0000000708 00000 n
|
||||
0000000776 00000 n
|
||||
0000001056 00000 n
|
||||
0000001121 00000 n
|
||||
0000002152 00000 n
|
||||
trailer
|
||||
<<
|
||||
/ID
|
||||
[<823ed1f68bcfbaecab7b5c501b924b32><823ed1f68bcfbaecab7b5c501b924b32>]
|
||||
% ReportLab generated PDF document -- digest (opensource)
|
||||
|
||||
/Info 7 0 R
|
||||
/Root 6 0 R
|
||||
/Size 11
|
||||
>>
|
||||
startxref
|
||||
2945
|
||||
%%EOF
|
||||
@@ -1,86 +0,0 @@
|
||||
# JodaTime to java.time.* Migration Plan: dbWarehouseHandler.java
|
||||
|
||||
## Overview
|
||||
This document outlines the migration of JodaTime references in `dbWarehouseHandler.java` from `org.joda.time.DateTime` to `java.time.Instant`.
|
||||
|
||||
## Files to be Modified
|
||||
- `src/engine/db/handlers/dbWarehouseHandler.java`
|
||||
|
||||
## JodaTime References Found
|
||||
1. Import statement: `import org.joda.time.DateTime;`
|
||||
2. Method parameter: `DateTime upgradeDate` in method signature (line 58)
|
||||
3. Method parameter: `DateTime date` in method signature (line 490)
|
||||
4. Usage of getMillis() method: `upgradeDate.getMillis()` (line 79)
|
||||
5. Usage of getMillis() method: `date.getMillis()` (line 501)
|
||||
|
||||
## Migration Strategy
|
||||
|
||||
### Step 1: Update Import Statement
|
||||
Replace:
|
||||
```java
|
||||
import org.joda.time.DateTime;
|
||||
```
|
||||
With:
|
||||
```java
|
||||
import java.time.Instant;
|
||||
```
|
||||
|
||||
### Step 2: Update Method Signatures
|
||||
Replace:
|
||||
```java
|
||||
DateTime upgradeDate
|
||||
```
|
||||
With:
|
||||
```java
|
||||
Instant upgradeDate
|
||||
```
|
||||
|
||||
Replace:
|
||||
```java
|
||||
DateTime date
|
||||
```
|
||||
With:
|
||||
```java
|
||||
Instant date
|
||||
```
|
||||
|
||||
### Step 3: Update Method Calls
|
||||
Replace:
|
||||
```java
|
||||
upgradeDate.getMillis()
|
||||
```
|
||||
With:
|
||||
```java
|
||||
upgradeDate.toEpochMilli()
|
||||
```
|
||||
|
||||
Replace:
|
||||
```java
|
||||
date.getMillis()
|
||||
```
|
||||
With:
|
||||
```java
|
||||
date.toEpochMilli()
|
||||
```
|
||||
|
||||
### Step 4: Database Timestamp Handling
|
||||
The database timestamp handling remains the same as `java.sql.Timestamp` constructor accepts long values (milliseconds since epoch), which can be obtained from `Instant.toEpochMilli()`.
|
||||
|
||||
## Implementation Plan
|
||||
|
||||
1. Update import statement from `org.joda.time.DateTime` to `java.time.Instant`
|
||||
2. Update method signature for `upgradeDate` parameter from `DateTime` to `Instant`
|
||||
3. Update method signature for `date` parameter from `DateTime` to `Instant`
|
||||
4. Replace `upgradeDate.getMillis()` with `upgradeDate.toEpochMilli()`
|
||||
5. Replace `date.getMillis()` with `date.toEpochMilli()`
|
||||
|
||||
## Testing Considerations
|
||||
- Ensure the network packet serialization format remains unchanged
|
||||
- Verify database operations work correctly with Instant values
|
||||
- Test warehouse creation and transaction creation functionality
|
||||
- Confirm that all existing functionality continues to work as expected
|
||||
|
||||
## Compatibility Notes
|
||||
- The migration maintains backward compatibility with database operations since `java.sql.Timestamp` constructor accepts milliseconds
|
||||
- Network packet structure remains the same (no serialization changes needed)
|
||||
- Thread safety improvements from using java.time.* classes
|
||||
@@ -1,67 +0,0 @@
|
||||
# JodaTime to java.time.* Migration Tracking
|
||||
|
||||
## Overview
|
||||
This file tracks the remaining JodaTime references that need to be migrated to java.time.* in the Magicbane Server codebase.
|
||||
|
||||
## Current Status (as of 2026-10-02)
|
||||
Branch: ai-refactor-jodatimeFull
|
||||
|
||||
## Files with JodaTime References (Total: 30 files)
|
||||
|
||||
### Files Already Migrated or Partially Migrated
|
||||
1. ArcMineWindowAvailableTimeMsg.java - ✅ COMPLETE (already using java.time.*)
|
||||
|
||||
### Files to be Migrated
|
||||
1. BaneRecord.java - ✅ COMPLETE
|
||||
2. dbBaneHandler.java - ✅ COMPLETE
|
||||
3. dbBuildingHandler.java - ✅ COMPLETE
|
||||
4. dbGuildHandler.java - ✅ COMPLETE
|
||||
5. dbMobHandler.java - ✅ COMPLETE
|
||||
6. dbNPCHandler.java - ✅ COMPLETE
|
||||
7. dbShrineHandler.java - ✅ COMPLETE
|
||||
8. dbWarehouseHandler.java - ✅ COMPLETE (2026-10-02)
|
||||
9. GuildManager.java - ✅ COMPLETE (2026-10-02)
|
||||
10. BaneDefaultTimeJob.java - [ ]
|
||||
11. ByteBufferWriter.java - [ ]
|
||||
12. AcceptInviteToGuildHandler.java - [ ]
|
||||
13. BanishUnbanishHandler.java - [ ]
|
||||
14. ManageCityAssetMsgHandler.java - [ ]
|
||||
15. PlaceAssetMsgHandler.java - [ ]
|
||||
16. GuildInfoMsg.java - [ ]
|
||||
17. ManageCityAssetsMsg.java - [ ]
|
||||
18. ManageNPCMsg.java - [ ]
|
||||
19. NetMsgFactory.java - [ ]
|
||||
20. Bane.java - [ ]
|
||||
21. Guild.java - [ ]
|
||||
22. GuildHistory.java - [ ]
|
||||
23. ItemFactory.java - [ ]
|
||||
24. Mob.java - [ ]
|
||||
25. NPC.java - [ ]
|
||||
26. PlayerCharacter.java - [ ]
|
||||
27. ProducedItem.java - [ ]
|
||||
28. Transaction.java - [ ]
|
||||
29. Warehouse.java - [ ]
|
||||
|
||||
## Migration Strategy
|
||||
1. Analyze each file to understand JodaTime usage patterns
|
||||
2. Replace imports with java.time equivalents
|
||||
3. Update variable declarations and method calls
|
||||
4. Ensure network packet compatibility is maintained
|
||||
5. Test functionality after each change
|
||||
|
||||
## Progress Tracking Template
|
||||
For each file, mark as complete when migration is finished:
|
||||
- [x] File name - Status: COMPLETED (Date: YYYY-MM-DD)
|
||||
- [ ] File name - Status: PENDING
|
||||
|
||||
## Migration Notes
|
||||
- Focus on minimal changes to maintain compatibility
|
||||
- Preserve existing network packet serialization format
|
||||
- Use java.time classes for better performance and thread safety
|
||||
- Test each migration in a controlled environment
|
||||
|
||||
## Next Steps
|
||||
1. Start with files that have minimal dependencies (like ArcMineWindowAvailableTimeMsg)
|
||||
2. Proceed systematically through the list
|
||||
3. Create detailed migration plans for complex files
|
||||
4. Test changes in-game after each migration
|
||||
@@ -14,7 +14,6 @@ import engine.gameManager.DbManager;
|
||||
import engine.objects.Bane;
|
||||
import engine.objects.City;
|
||||
import engine.workthreads.WarehousePushThread;
|
||||
import java.time.Instant;
|
||||
import org.pmw.tinylog.Logger;
|
||||
|
||||
import java.sql.*;
|
||||
@@ -34,8 +33,8 @@ public class BaneRecord extends DataRecord {
|
||||
private String baneDropperHash;
|
||||
private String baneGuildHash;
|
||||
private String baneNationHash;
|
||||
private Instant baneLiveTime;
|
||||
private Instant baneDropTime;
|
||||
private LocalDateTime baneLiveTime;
|
||||
private LocalDateTime baneDropTime;
|
||||
|
||||
private BaneRecord(Bane bane) {
|
||||
this.recordType = Enum.DataRecordType.BANE;
|
||||
@@ -129,9 +128,9 @@ public class BaneRecord extends DataRecord {
|
||||
return outStatement;
|
||||
}
|
||||
|
||||
public static Instant getLastBaneDateTime(City city) {
|
||||
public static LocalDateTime getLastBaneDateTime(City city) {
|
||||
|
||||
Instant outDateTime = null;
|
||||
LocalDateTime outDateTime = null;
|
||||
|
||||
try (Connection connection = DbManager.getConnection();
|
||||
PreparedStatement statement = buildDateTimeQueryStatement(connection, city);
|
||||
@@ -139,7 +138,7 @@ public class BaneRecord extends DataRecord {
|
||||
|
||||
while (rs.next()) {
|
||||
|
||||
outDateTime = rs.getTimestamp("endDatetime").toInstant();
|
||||
outDateTime = rs.getTimestamp("endDatetime").toLocalDateTime();
|
||||
|
||||
}
|
||||
|
||||
@@ -160,7 +159,7 @@ public class BaneRecord extends DataRecord {
|
||||
|
||||
}
|
||||
|
||||
public static void updateLiveDate(Bane bane, Instant dateTime) {
|
||||
public static void updateLiveDate(Bane bane, LocalDateTime dateTime) {
|
||||
|
||||
if (bane == null)
|
||||
return;
|
||||
@@ -175,13 +174,13 @@ public class BaneRecord extends DataRecord {
|
||||
}
|
||||
}
|
||||
|
||||
private static PreparedStatement buildUpdateLiveDateStatement(Connection connection, Bane bane, Instant dateTime) throws SQLException {
|
||||
private static PreparedStatement buildUpdateLiveDateStatement(Connection connection, Bane bane, LocalDateTime dateTime) throws SQLException {
|
||||
|
||||
PreparedStatement outStatement = null;
|
||||
String queryString = "UPDATE `warehouse_banehistory` SET `liveDatetime` = ?, `dirty` = 1 WHERE `city_id` = ? AND `resolution` = 'PENDING'";
|
||||
|
||||
outStatement = connection.prepareStatement(queryString);
|
||||
outStatement.setTimestamp(1, new java.sql.Timestamp(dateTime.toEpochMilli()));
|
||||
outStatement.setTimestamp(1, Timestamp.valueOf(dateTime));
|
||||
outStatement.setString(2, bane.getCity().getHash());
|
||||
|
||||
return outStatement;
|
||||
@@ -366,12 +365,12 @@ public class BaneRecord extends DataRecord {
|
||||
if (this.baneDropTime == null)
|
||||
outStatement.setNull(8, java.sql.Types.DATE);
|
||||
else
|
||||
outStatement.setTimestamp(8, new java.sql.Timestamp(this.baneDropTime.getMillis()));
|
||||
outStatement.setTimestamp(8, Timestamp.valueOf(this.baneDropTime));
|
||||
|
||||
if (this.baneLiveTime == null)
|
||||
outStatement.setNull(9, java.sql.Types.DATE);
|
||||
else
|
||||
outStatement.setTimestamp(9, new java.sql.Timestamp(this.baneLiveTime.getMillis()));
|
||||
outStatement.setTimestamp(9, Timestamp.valueOf(this.baneLiveTime));
|
||||
|
||||
outStatement.setString(10, this.eventType.name());
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ import engine.objects.Bane;
|
||||
import engine.objects.Building;
|
||||
import engine.objects.City;
|
||||
import engine.objects.PlayerCharacter;
|
||||
import java.time.Instant;
|
||||
import java.time.LocalDateTime;
|
||||
import org.pmw.tinylog.Logger;
|
||||
|
||||
import java.sql.Connection;
|
||||
@@ -71,12 +71,12 @@ public class dbBaneHandler extends dbHandlerBase {
|
||||
}
|
||||
|
||||
|
||||
public boolean SET_BANE_TIME(Instant toSet, int cityUUID) {
|
||||
public boolean SET_BANE_TIME(LocalDateTime toSet, int cityUUID) {
|
||||
|
||||
try (Connection connection = DbManager.getConnection();
|
||||
PreparedStatement preparedStatement = connection.prepareStatement("UPDATE `dyn_banes` SET `liveDate`=? WHERE `cityUUID`=?")) {
|
||||
|
||||
preparedStatement.setTimestamp(1, java.sql.Timestamp.from(toSet));
|
||||
preparedStatement.setTimestamp(1, java.sql.Timestamp.valueOf(toSet));
|
||||
preparedStatement.setLong(2, cityUUID);
|
||||
|
||||
preparedStatement.execute();
|
||||
|
||||
@@ -308,7 +308,7 @@ public class dbNPCHandler extends dbHandlerBase {
|
||||
+ NPC._pirateNames.size() + " mobBases");
|
||||
}
|
||||
|
||||
public boolean ADD_TO_PRODUCTION_LIST(final long ID, final long npcUID, final long itemBaseID, Instant dateTime, String prefix, String suffix, String name, boolean isRandom, int playerID) {
|
||||
public boolean ADD_TO_PRODUCTION_LIST(final long ID, final long npcUID, final long itemBaseID, long dateTime, String prefix, String suffix, String name, boolean isRandom, int playerID) {
|
||||
|
||||
try (Connection connection = DbManager.getConnection();
|
||||
PreparedStatement preparedStatement = connection.prepareStatement("INSERT INTO `dyn_npc_production` (`ID`,`npcUID`, `itemBaseID`,`dateToUpgrade`, `isRandom`, `prefix`, `suffix`, `name`,`playerID`) VALUES (?,?,?,?,?,?,?,?,?)")) {
|
||||
@@ -316,7 +316,7 @@ public class dbNPCHandler extends dbHandlerBase {
|
||||
preparedStatement.setLong(1, ID);
|
||||
preparedStatement.setLong(2, npcUID);
|
||||
preparedStatement.setLong(3, itemBaseID);
|
||||
preparedStatement.setTimestamp(4, java.sql.Timestamp.from(dateTime));
|
||||
preparedStatement.setTimestamp(4, new java.sql.Timestamp(dateTime));
|
||||
preparedStatement.setBoolean(5, isRandom);
|
||||
preparedStatement.setString(6, prefix);
|
||||
preparedStatement.setString(7, suffix);
|
||||
|
||||
@@ -11,7 +11,7 @@ package engine.jobs;
|
||||
|
||||
import engine.job.AbstractScheduleJob;
|
||||
import engine.objects.Bane;
|
||||
import org.joda.time.DateTime;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
public class BaneDefaultTimeJob extends AbstractScheduleJob {
|
||||
|
||||
@@ -31,11 +31,8 @@ public class BaneDefaultTimeJob extends AbstractScheduleJob {
|
||||
return;
|
||||
}
|
||||
|
||||
DateTime defaultTime = new DateTime(this.bane.getPlacementDate());
|
||||
defaultTime = defaultTime.plusDays(2);
|
||||
defaultTime = defaultTime.hourOfDay().setCopy(22);
|
||||
defaultTime = defaultTime.minuteOfHour().setCopy(0);
|
||||
defaultTime = defaultTime.secondOfMinute().setCopy(0);
|
||||
LocalDateTime defaultTime = this.bane.getPlacementDate()
|
||||
.plusDays(2).withHour(22).withMinute(0).withSecond(0).withNano(0);
|
||||
this.bane.setLiveDate(defaultTime);
|
||||
|
||||
}
|
||||
|
||||
@@ -12,7 +12,7 @@ package engine.net;
|
||||
import engine.math.Vector3f;
|
||||
import engine.math.Vector3fImmutable;
|
||||
import engine.util.ByteBufferUtils;
|
||||
import org.joda.time.DateTime;
|
||||
import java.time.Instant;
|
||||
|
||||
import java.nio.ByteBuffer;
|
||||
import java.time.LocalDateTime;
|
||||
@@ -57,13 +57,13 @@ public class ByteBufferWriter {
|
||||
this.bb.putLong(x);
|
||||
}
|
||||
|
||||
public synchronized void putDateTime(DateTime dateTime) {
|
||||
this.put((byte) dateTime.getDayOfMonth());
|
||||
this.put((byte) ((byte) dateTime.getMonthOfYear() - 1));
|
||||
this.putInt(dateTime.getYear() - 1900);
|
||||
this.put((byte) dateTime.getHourOfDay());
|
||||
this.put((byte) dateTime.getMinuteOfHour());
|
||||
this.put((byte) dateTime.getSecondOfDay());
|
||||
public synchronized void putDateTime(Instant dateTime) {
|
||||
this.put((byte) dateTime.atZone(ZoneId.systemDefault()).toLocalDate().getDayOfMonth());
|
||||
this.put((byte) ((byte) dateTime.atZone(ZoneId.systemDefault()).toLocalDate().getMonthValue() - 1));
|
||||
this.putInt(dateTime.atZone(ZoneId.systemDefault()).toLocalDate().getYear() - 1900);
|
||||
this.put((byte) dateTime.atZone(ZoneId.systemDefault()).toLocalTime().getHour());
|
||||
this.put((byte) dateTime.atZone(ZoneId.systemDefault()).toLocalTime().getMinute());
|
||||
this.put((byte) dateTime.atZone(ZoneId.systemDefault()).toLocalTime().getSecond());
|
||||
}
|
||||
|
||||
public synchronized void putLocalDateTime(LocalDateTime dateTime) {
|
||||
|
||||
@@ -15,7 +15,7 @@ import engine.net.client.ClientConnection;
|
||||
import engine.net.client.Protocol;
|
||||
import engine.objects.PlayerCharacter;
|
||||
import engine.server.MBServerStatics;
|
||||
import org.joda.time.DateTime;
|
||||
import java.time.Instant;
|
||||
import org.pmw.tinylog.Logger;
|
||||
|
||||
import java.lang.reflect.Constructor;
|
||||
@@ -86,7 +86,7 @@ public class NetMsgFactory {
|
||||
|
||||
if (protocolMsg == Protocol.NONE) {
|
||||
|
||||
String errorString = DateTime.now().toString() + origin.lastProtocol.name();
|
||||
String errorString = Instant.now().toString() + origin.lastProtocol.name();
|
||||
|
||||
int errorCode = errorString.hashCode();
|
||||
|
||||
|
||||
@@ -27,7 +27,7 @@ import engine.net.client.msg.guild.GuildInfoMsg;
|
||||
import engine.objects.Guild;
|
||||
import engine.objects.GuildHistory;
|
||||
import engine.objects.PlayerCharacter;
|
||||
import org.joda.time.DateTime;
|
||||
import java.time.Instant;
|
||||
|
||||
public class AcceptInviteToGuildHandler extends AbstractClientMsgHandler {
|
||||
|
||||
@@ -95,8 +95,8 @@ public class AcceptInviteToGuildHandler extends AbstractClientMsgHandler {
|
||||
//Add to guild History
|
||||
|
||||
if (player.getGuild() != null) {
|
||||
if (DbManager.GuildQueries.ADD_TO_GUILDHISTORY(player.getGuildUUID(), player, DateTime.now(), GuildHistoryType.JOIN)) {
|
||||
GuildHistory guildHistory = new GuildHistory(player.getGuildUUID(), player.getGuild().getName(), DateTime.now(), GuildHistoryType.JOIN);
|
||||
if (DbManager.GuildQueries.ADD_TO_GUILDHISTORY(player.getGuildUUID(), player, Instant.now(), GuildHistoryType.JOIN)) {
|
||||
GuildHistory guildHistory = new GuildHistory(player.getGuildUUID(), player.getGuild().getName(), Instant.now(), GuildHistoryType.JOIN);
|
||||
player.getGuildHistory().add(guildHistory);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,7 +26,7 @@ import engine.objects.Guild;
|
||||
import engine.objects.GuildHistory;
|
||||
import engine.objects.GuildStatusController;
|
||||
import engine.objects.PlayerCharacter;
|
||||
import org.joda.time.DateTime;
|
||||
import java.time.Instant;
|
||||
|
||||
public class BanishUnbanishHandler extends AbstractClientMsgHandler {
|
||||
|
||||
@@ -96,8 +96,8 @@ public class BanishUnbanishHandler extends AbstractClientMsgHandler {
|
||||
|
||||
//Set guild history
|
||||
|
||||
if (DbManager.GuildQueries.ADD_TO_GUILDHISTORY(guild.getObjectUUID(), toBanish, DateTime.now(), GuildHistoryType.BANISHED)) {
|
||||
GuildHistory guildHistory = new GuildHistory(toBanish.getGuildUUID(), toBanish.getGuild().getName(), DateTime.now(), GuildHistoryType.BANISHED);
|
||||
if (DbManager.GuildQueries.ADD_TO_GUILDHISTORY(guild.getObjectUUID(), toBanish, Instant.now(), GuildHistoryType.BANISHED)) {
|
||||
GuildHistory guildHistory = new GuildHistory(toBanish.getGuildUUID(), toBanish.getGuild().getName(), Instant.now(), GuildHistoryType.BANISHED);
|
||||
toBanish.getGuildHistory().add(guildHistory);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,7 +16,7 @@ import engine.net.client.msg.ErrorPopupMsg;
|
||||
import engine.net.client.msg.ManageCityAssetsMsg;
|
||||
import engine.net.client.msg.PlaceAssetMsg;
|
||||
import engine.objects.*;
|
||||
import org.joda.time.DateTime;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/*
|
||||
* @Author:
|
||||
@@ -271,11 +271,10 @@ public class ManageCityAssetMsgHandler extends AbstractClientMsgHandler {
|
||||
return true;
|
||||
}
|
||||
|
||||
DateTime baneLive = new DateTime(bane.getPlacementDate());
|
||||
LocalDateTime baneLive = bane.getPlacementDate();
|
||||
baneLive = baneHour == 24 ? baneLive.plusDays(3) : baneLive.plusDays(2);
|
||||
baneLive = baneHour == 24 ? baneLive.hourOfDay().setCopy(0) : baneLive.hourOfDay().setCopy(baneHour);
|
||||
baneLive = baneLive.minuteOfHour().setCopy(0);
|
||||
baneLive = baneLive.secondOfMinute().setCopy(1);
|
||||
baneLive = baneHour == 24 ? baneLive.withHour(0) : baneLive.withHour(baneHour);
|
||||
baneLive = baneLive.withMinute(0).withSecond(1).withNano(0);
|
||||
bane.setLiveDate(baneLive);
|
||||
outMsg.actionType = 18;
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@ import engine.net.client.msg.PlaceAssetMsg;
|
||||
import engine.net.client.msg.PlaceAssetMsg.PlacementInfo;
|
||||
import engine.objects.*;
|
||||
import engine.server.MBServerStatics;
|
||||
import org.joda.time.DateTime;
|
||||
import java.time.Instant;
|
||||
import org.pmw.tinylog.Logger;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
@@ -1160,7 +1160,7 @@ public class PlaceAssetMsgHandler extends AbstractClientMsgHandler {
|
||||
|
||||
Blueprint blueprint;
|
||||
Building newMesh;
|
||||
DateTime completionDate;
|
||||
Instant completionDate;
|
||||
float vendorRotation;
|
||||
float buildingRotation;
|
||||
|
||||
@@ -1174,9 +1174,9 @@ public class PlaceAssetMsgHandler extends AbstractClientMsgHandler {
|
||||
// All siege buildings build in 15 minutes
|
||||
if ((blueprint.getBuildingGroup().equals(BuildingGroup.SIEGETENT))
|
||||
|| (blueprint.getBuildingGroup().equals(BuildingGroup.BULWARK)))
|
||||
completionDate = DateTime.now().plusMinutes(15);
|
||||
completionDate = Instant.now().plusSeconds(15 * 60);
|
||||
else
|
||||
completionDate = DateTime.now().plusHours(blueprint.getRankTime(1));
|
||||
completionDate = Instant.now().plusSeconds(blueprint.getRankTime(1) * 3600);
|
||||
|
||||
Vector3fImmutable localLoc = new Vector3fImmutable(ZoneManager.worldToLocal(buildingInfo.getLoc(), currentZone));
|
||||
|
||||
@@ -1244,7 +1244,7 @@ public class PlaceAssetMsgHandler extends AbstractClientMsgHandler {
|
||||
ArrayList<AbstractGameObject> shrineObjects = DbManager.ShrineQueries.CREATE_SHRINE(
|
||||
currentZone.getObjectUUID(), player.getObjectUUID(), blueprint.getName(), blueprint.getMeshForRank(0),
|
||||
localLoc, 1.0f, blueprint.getMaxHealth(0), ProtectionState.PROTECTED, 0, 0,
|
||||
DateTime.now().plusHours(blueprint.getRankTime(1)), blueprint.getMeshForRank(0), vendorRotation, buildingRotation, shrineType.name());
|
||||
Instant.now().plusSeconds(blueprint.getRankTime(1) * 3600), blueprint.getMeshForRank(0), vendorRotation, buildingRotation, shrineType.name());
|
||||
|
||||
if (shrineObjects == null) {
|
||||
PlaceAssetMsg.sendPlaceAssetError(player.getClientConnection(), 1, "A Serious error has occurred. Please post details for to ensure transaction integrity");
|
||||
@@ -1304,7 +1304,7 @@ public class PlaceAssetMsgHandler extends AbstractClientMsgHandler {
|
||||
|
||||
float buildingRotation = buildingInfo.getRot().y;
|
||||
float vendorRotation = buildingInfo.getW();
|
||||
DateTime completionDate = DateTime.now().plusHours(blueprint.getRankTime(1));
|
||||
Instant completionDate = Instant.now().plusSeconds(blueprint.getRankTime(1) * 3600);
|
||||
|
||||
|
||||
newMesh = DbManager.BuildingQueries.CREATE_BUILDING(
|
||||
@@ -1347,7 +1347,7 @@ public class PlaceAssetMsgHandler extends AbstractClientMsgHandler {
|
||||
warehouseObjects = DbManager.WarehouseQueries.CREATE_WAREHOUSE(
|
||||
currentZone.getObjectUUID(), player.getObjectUUID(), blueprint.getName(), blueprint.getMeshForRank(0),
|
||||
localLoc, 1.0f, blueprint.getMaxHealth(0), ProtectionState.NONE, 0, 0,
|
||||
DateTime.now().plusHours(blueprint.getRankTime(1)), blueprint.getMeshForRank(0), vendorRotation, buildingRotation);
|
||||
Instant.now().plusSeconds(blueprint.getRankTime(1) * 3600), blueprint.getMeshForRank(0), vendorRotation, buildingRotation);
|
||||
|
||||
if (warehouseObjects == null) {
|
||||
PlaceAssetMsg.sendPlaceAssetError(player.getClientConnection(), 1, "A Serious error has occurred. Please post details for to ensure transaction integrity");
|
||||
|
||||
@@ -18,9 +18,6 @@ import engine.net.ByteBufferReader;
|
||||
import engine.net.ByteBufferWriter;
|
||||
import engine.net.client.Protocol;
|
||||
import engine.objects.*;
|
||||
import org.joda.time.DateTime;
|
||||
import org.joda.time.Period;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.ZoneId;
|
||||
import java.util.Set;
|
||||
@@ -397,37 +394,33 @@ public class ManageCityAssetsMsg extends ClientNetMsg {
|
||||
else
|
||||
writer.put((byte) 0);
|
||||
|
||||
DateTime placedOn = bane.getLiveDate();
|
||||
LocalDateTime placedOn = bane.getLiveDate();
|
||||
|
||||
if (placedOn == null)
|
||||
placedOn = new DateTime(DateTime.now());
|
||||
placedOn = LocalDateTime.now();
|
||||
|
||||
//set Calander to date of bane live.
|
||||
DateTime now = DateTime.now();
|
||||
DateTime defaultTime = new DateTime(bane.getPlacementDate());
|
||||
DateTime playerEnterWorldTime = new DateTime(this.assetManager.getTimeStamp("EnterWorld"));
|
||||
Period period = new Period(playerEnterWorldTime.getMillis(), now.getMillis());
|
||||
int hoursLoggedIn = period.getHours();
|
||||
LocalDateTime now = LocalDateTime.now();
|
||||
LocalDateTime defaultTime = bane.getPlacementDate();
|
||||
LocalDateTime playerEnterWorldTime = LocalDateTime.ofInstant(java.time.Instant.ofEpochMilli(this.assetManager.getTimeStamp("EnterWorld")), ZoneId.systemDefault());
|
||||
int hoursLoggedIn = (int) java.time.Duration.between(playerEnterWorldTime, now).toHours();
|
||||
hoursLoggedIn = hoursLoggedIn < 0 ? 0 : hoursLoggedIn;
|
||||
|
||||
defaultTime = defaultTime.plusDays(2);
|
||||
defaultTime = defaultTime.hourOfDay().setCopy(22);
|
||||
defaultTime = defaultTime.minuteOfHour().setCopy(0);
|
||||
defaultTime = defaultTime.secondOfMinute().setCopy(0);
|
||||
defaultTime = defaultTime.plusDays(2).withHour(22).withMinute(0).withSecond(0).withNano(0);
|
||||
|
||||
long curTime = now.getMillis();
|
||||
long curTime = now.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli();
|
||||
long timeLeft = 0;
|
||||
|
||||
if (bane.getLiveDate() != null)
|
||||
timeLeft = bane.getLiveDate().getMillis() - curTime;
|
||||
timeLeft = bane.getLiveDate().atZone(ZoneId.systemDefault()).toInstant().toEpochMilli() - curTime;
|
||||
else
|
||||
timeLeft = defaultTime.getMillis() - curTime + 1000;
|
||||
timeLeft = defaultTime.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli() - curTime + 1000;
|
||||
|
||||
//DO not touch these. They are static formula's until i get the correct converter for SB Time.
|
||||
|
||||
writer.put((byte) placedOn.dayOfMonth().get());
|
||||
writer.put((byte) placedOn.monthOfYear().get());
|
||||
writer.putInt(placedOn.year().get() - 1900);
|
||||
writer.put((byte) placedOn.getDayOfMonth());
|
||||
writer.put((byte) placedOn.getMonthValue());
|
||||
writer.putInt(placedOn.getYear() - 1900);
|
||||
writer.put((byte) 0);
|
||||
writer.put((byte) 0);
|
||||
writer.put((byte) 0);
|
||||
|
||||
@@ -19,9 +19,6 @@ import engine.net.ByteBufferWriter;
|
||||
import engine.net.client.Protocol;
|
||||
import engine.objects.*;
|
||||
import engine.powers.EffectsBase;
|
||||
import org.joda.time.DateTime;
|
||||
import org.joda.time.Period;
|
||||
import org.joda.time.Seconds;
|
||||
import org.pmw.tinylog.Logger;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@@ -140,7 +137,7 @@ public class ManageNPCMsg extends ClientNetMsg {
|
||||
@Override
|
||||
protected void _serialize(ByteBufferWriter writer) {
|
||||
|
||||
Period upgradePeriod;
|
||||
java.time.Duration upgradePeriod;
|
||||
int upgradePeriodInSeconds;
|
||||
|
||||
try {
|
||||
@@ -202,21 +199,22 @@ public class ManageNPCMsg extends ClientNetMsg {
|
||||
|
||||
writer.putInt(npc.getUpgradeCost());
|
||||
|
||||
if (npc.isRanking() && npc.getUpgradeDateTime().isAfter(DateTime.now()))
|
||||
upgradePeriod = new Period(DateTime.now(), npc.getUpgradeDateTime());
|
||||
if (npc.isRanking() && npc.getUpgradeDateTime().isAfter(java.time.Instant.now()))
|
||||
upgradePeriod = java.time.Duration.between(java.time.Instant.now(), npc.getUpgradeDateTime());
|
||||
else
|
||||
upgradePeriod = new Period(0);
|
||||
upgradePeriod = java.time.Duration.ZERO;
|
||||
|
||||
writer.put((byte) upgradePeriod.getDays()); //for timer
|
||||
long npcUpgradeSec = Math.max(0L, upgradePeriod.getSeconds());
|
||||
writer.put((byte) (int) (npcUpgradeSec / 86400)); //for timer
|
||||
writer.put((byte) unknown26);//unknown
|
||||
writer.putInt(100); //unknown
|
||||
|
||||
writer.put((byte) upgradePeriod.getHours()); //for timer
|
||||
writer.put((byte) upgradePeriod.getMinutes()); //for timer
|
||||
writer.put((byte) upgradePeriod.getSeconds()); //for timer
|
||||
writer.put((byte) (int) ((npcUpgradeSec % 86400) / 3600)); //for timer
|
||||
writer.put((byte) (int) ((npcUpgradeSec % 3600) / 60)); //for timer
|
||||
writer.put((byte) (int) (npcUpgradeSec % 60); //for timer
|
||||
|
||||
if (npc.isRanking() && npc.getUpgradeDateTime().isAfter(DateTime.now()))
|
||||
upgradePeriodInSeconds = Seconds.secondsBetween(DateTime.now(), npc.getUpgradeDateTime()).getSeconds();
|
||||
if (npc.isRanking() && npc.getUpgradeDateTime().isAfter(java.time.Instant.now()))
|
||||
upgradePeriodInSeconds = (int) npcUpgradeSec;
|
||||
else
|
||||
upgradePeriodInSeconds = 0;
|
||||
|
||||
@@ -610,21 +608,22 @@ public class ManageNPCMsg extends ClientNetMsg {
|
||||
|
||||
writer.putInt(Mob.getUpgradeCost(mobA));
|
||||
|
||||
if (mobA.isRanking() && mobA.getUpgradeDateTime().isAfter(DateTime.now()))
|
||||
upgradePeriod = new Period(DateTime.now(), mobA.getUpgradeDateTime());
|
||||
if (mobA.isRanking() && mobA.getUpgradeDateTime().isAfter(java.time.Instant.now()))
|
||||
upgradePeriod = java.time.Duration.between(java.time.Instant.now(), mobA.getUpgradeDateTime());
|
||||
else
|
||||
upgradePeriod = new Period(0);
|
||||
upgradePeriod = java.time.Duration.ZERO;
|
||||
|
||||
writer.put((byte) upgradePeriod.getDays()); //for timer
|
||||
long mobUpgradeSec = Math.max(0L, upgradePeriod.getSeconds());
|
||||
writer.put((byte) (int) (mobUpgradeSec / 86400)); //for timer
|
||||
writer.put((byte) unknown26);//unknown
|
||||
writer.putInt(100); //unknown
|
||||
|
||||
writer.put((byte) upgradePeriod.getHours()); //for timer
|
||||
writer.put((byte) upgradePeriod.getMinutes()); //for timer
|
||||
writer.put((byte) upgradePeriod.getSeconds()); //for timer
|
||||
writer.put((byte) (int) ((mobUpgradeSec % 86400) / 3600)); //for timer
|
||||
writer.put((byte) (int) ((mobUpgradeSec % 3600) / 60)); //for timer
|
||||
writer.put((byte) (int) (mobUpgradeSec % 60); //for timer
|
||||
|
||||
if (mobA.isRanking() && mobA.getUpgradeDateTime().isAfter(DateTime.now()))
|
||||
upgradePeriodInSeconds = Seconds.secondsBetween(DateTime.now(), mobA.getUpgradeDateTime()).getSeconds();
|
||||
if (mobA.isRanking() && mobA.getUpgradeDateTime().isAfter(java.time.Instant.now()))
|
||||
upgradePeriodInSeconds = (int) mobUpgradeSec;
|
||||
else
|
||||
upgradePeriodInSeconds = 0;
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@ import engine.net.ByteBufferWriter;
|
||||
import engine.net.client.Protocol;
|
||||
import engine.net.client.msg.ClientNetMsg;
|
||||
import engine.objects.*;
|
||||
import org.joda.time.DateTime;
|
||||
import java.time.Instant;
|
||||
|
||||
|
||||
public class GuildInfoMsg extends ClientNetMsg {
|
||||
@@ -306,7 +306,7 @@ class GuildInfoMessageType4 extends GuildInfoMessageType {
|
||||
writer.putString(guildLeaderName);
|
||||
writer.putString(pc.getName());
|
||||
|
||||
writer.putDateTime(DateTime.now());
|
||||
writer.putDateTime(Instant.now());
|
||||
writer.put((byte) 1);
|
||||
writer.put((byte) 1);
|
||||
writer.put((byte) 1);
|
||||
@@ -401,7 +401,7 @@ class GuildInfoMessageType5 extends GuildInfoMessageType {
|
||||
writer.putString("Guild Leader");
|
||||
writer.putString(""); //Nation Leader - I believe
|
||||
|
||||
DateTime now = DateTime.now();
|
||||
Instant now = Instant.now();
|
||||
writer.putDateTime(now);
|
||||
|
||||
writer.put((byte) 1);
|
||||
|
||||
@@ -30,7 +30,8 @@ import engine.net.client.ClientConnection;
|
||||
import engine.net.client.msg.PlaceAssetMsg;
|
||||
import engine.net.client.msg.chat.ChatSystemMsg;
|
||||
import engine.server.MBServerStatics;
|
||||
import org.joda.time.DateTime;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.ZoneId;
|
||||
import org.pmw.tinylog.Logger;
|
||||
|
||||
import java.sql.ResultSet;
|
||||
@@ -45,8 +46,8 @@ public final class Bane {
|
||||
private final int cityUUID;
|
||||
private final int stoneUUID;
|
||||
private int ownerUUID;
|
||||
private DateTime placementDate = null;
|
||||
private DateTime liveDate = null;
|
||||
private LocalDateTime placementDate = null;
|
||||
private LocalDateTime liveDate = null;
|
||||
private BaneDefaultTimeJob defaultTimeJob;
|
||||
|
||||
// Internal cache for banes
|
||||
@@ -67,12 +68,12 @@ public final class Bane {
|
||||
sqlDateTime = rs.getTimestamp("placementDate");
|
||||
|
||||
if (sqlDateTime != null)
|
||||
this.placementDate = new DateTime(sqlDateTime);
|
||||
this.placementDate = sqlDateTime.toLocalDateTime();
|
||||
|
||||
sqlDateTime = rs.getTimestamp("liveDate");
|
||||
|
||||
if (sqlDateTime != null)
|
||||
this.liveDate = new DateTime(sqlDateTime);
|
||||
this.liveDate = sqlDateTime.toLocalDateTime();
|
||||
|
||||
switch (this.getSiegePhase()) {
|
||||
|
||||
@@ -86,7 +87,7 @@ public final class Bane {
|
||||
this.activateBaneJob.cancelJob();
|
||||
|
||||
abtj = new ActivateBaneJob(cityUUID);
|
||||
JobScheduler.getInstance().scheduleJob(abtj, this.liveDate.getMillis());
|
||||
JobScheduler.getInstance().scheduleJob(abtj, toEpochMillis(this.liveDate));
|
||||
this.activateBaneJob = abtj;
|
||||
|
||||
break;
|
||||
@@ -98,7 +99,7 @@ public final class Bane {
|
||||
this.activateBaneJob.cancelJob();
|
||||
|
||||
abtj = new ActivateBaneJob(cityUUID);
|
||||
JobScheduler.getInstance().scheduleJob(abtj, this.liveDate.getMillis());
|
||||
JobScheduler.getInstance().scheduleJob(abtj, toEpochMillis(this.liveDate));
|
||||
this.activateBaneJob = abtj;
|
||||
|
||||
break;
|
||||
@@ -356,7 +357,7 @@ public final class Bane {
|
||||
return phase;
|
||||
}
|
||||
|
||||
if (DateTime.now().isAfter(this.liveDate)) {
|
||||
if (LocalDateTime.now().isAfter(this.liveDate)) {
|
||||
phase = SiegePhase.WAR; //war
|
||||
return phase;
|
||||
}
|
||||
@@ -371,15 +372,10 @@ public final class Bane {
|
||||
|
||||
private void setDefaultTime() {
|
||||
|
||||
DateTime timeToSetDefault = new DateTime(this.placementDate);
|
||||
timeToSetDefault = timeToSetDefault.plusDays(1);
|
||||
|
||||
DateTime currentTime = DateTime.now();
|
||||
DateTime defaultTime = new DateTime(this.placementDate);
|
||||
defaultTime = defaultTime.plusDays(2);
|
||||
defaultTime = defaultTime.hourOfDay().setCopy(22);
|
||||
defaultTime = defaultTime.minuteOfHour().setCopy(0);
|
||||
defaultTime = defaultTime.secondOfMinute().setCopy(0);
|
||||
LocalDateTime timeToSetDefault = this.placementDate.plusDays(1);
|
||||
LocalDateTime currentTime = LocalDateTime.now();
|
||||
LocalDateTime defaultTime = this.placementDate.plusDays(2)
|
||||
.withHour(22).withMinute(0).withSecond(0).withNano(0);
|
||||
|
||||
if (currentTime.isAfter(timeToSetDefault))
|
||||
this.setLiveDate(defaultTime);
|
||||
@@ -389,7 +385,7 @@ public final class Bane {
|
||||
this.defaultTimeJob.cancelJob();
|
||||
|
||||
BaneDefaultTimeJob bdtj = new BaneDefaultTimeJob(this);
|
||||
JobScheduler.getInstance().scheduleJob(bdtj, timeToSetDefault.getMillis());
|
||||
JobScheduler.getInstance().scheduleJob(bdtj, toEpochMillis(timeToSetDefault));
|
||||
this.defaultTimeJob = bdtj;
|
||||
}
|
||||
}
|
||||
@@ -456,7 +452,7 @@ public final class Bane {
|
||||
return true;
|
||||
}
|
||||
|
||||
public final DateTime getPlacementDate() {
|
||||
public final LocalDateTime getPlacementDate() {
|
||||
return placementDate;
|
||||
}
|
||||
|
||||
@@ -465,14 +461,14 @@ public final class Bane {
|
||||
return (this.getSiegePhase() != SiegePhase.CHALLENGE);
|
||||
}
|
||||
|
||||
public final DateTime getLiveDate() {
|
||||
public final LocalDateTime getLiveDate() {
|
||||
return liveDate;
|
||||
}
|
||||
|
||||
public void setLiveDate(DateTime baneTime) {
|
||||
public void setLiveDate(LocalDateTime baneTime) {
|
||||
|
||||
if (DbManager.BaneQueries.SET_BANE_TIME(baneTime, this.getCity().getObjectUUID())) {
|
||||
this.liveDate = new DateTime(baneTime);
|
||||
this.liveDate = baneTime;
|
||||
|
||||
// Push event to warehouse
|
||||
|
||||
@@ -514,7 +510,7 @@ public final class Bane {
|
||||
|
||||
ActivateBaneJob abtj = new ActivateBaneJob(cityUUID);
|
||||
|
||||
JobScheduler.getInstance().scheduleJob(abtj, this.liveDate.getMillis());
|
||||
JobScheduler.getInstance().scheduleJob(abtj, toEpochMillis(this.liveDate));
|
||||
this.activateBaneJob = abtj;
|
||||
} else {
|
||||
Logger.debug("error with city " + this.getCity().getName());
|
||||
@@ -644,4 +640,8 @@ public final class Bane {
|
||||
return cityUUID;
|
||||
}
|
||||
|
||||
private static long toEpochMillis(LocalDateTime ldt) {
|
||||
return ldt.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@ import engine.net.client.msg.ErrorPopupMsg;
|
||||
import engine.net.client.msg.UpdateClientAlliancesMsg;
|
||||
import engine.net.client.msg.guild.GuildInfoMsg;
|
||||
import engine.server.world.WorldServer;
|
||||
import org.joda.time.DateTime;
|
||||
import java.time.Instant;
|
||||
import org.pmw.tinylog.Logger;
|
||||
|
||||
import java.sql.ResultSet;
|
||||
@@ -654,8 +654,8 @@ public class Guild extends AbstractWorldObject {
|
||||
|
||||
//Add to Guild History
|
||||
if (pc.getGuild() != null) {
|
||||
if (DbManager.GuildQueries.ADD_TO_GUILDHISTORY(pc.getGuildUUID(), pc, DateTime.now(), historyType)) {
|
||||
GuildHistory guildHistory = new GuildHistory(pc.getGuildUUID(), pc.getGuild().name, DateTime.now(), historyType);
|
||||
if (DbManager.GuildQueries.ADD_TO_GUILDHISTORY(pc.getGuildUUID(), pc, Instant.now(), historyType)) {
|
||||
GuildHistory guildHistory = new GuildHistory(pc.getGuildUUID(), pc.getGuild().name, Instant.now(), historyType);
|
||||
pc.getGuildHistory().add(guildHistory);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,10 +13,11 @@ package engine.objects;
|
||||
import engine.Enum.GameObjectType;
|
||||
import engine.Enum.GuildHistoryType;
|
||||
import engine.net.ByteBufferWriter;
|
||||
import org.joda.time.DateTime;
|
||||
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.time.Instant;
|
||||
import java.time.temporal.ChronoUnit;
|
||||
|
||||
|
||||
public class GuildHistory {
|
||||
@@ -24,12 +25,12 @@ public class GuildHistory {
|
||||
|
||||
private int guildID;
|
||||
private String guildName;
|
||||
private DateTime time;
|
||||
private Instant time;
|
||||
private GuildHistoryType historyType;
|
||||
|
||||
|
||||
public GuildHistory(int guildID, String guildName,
|
||||
DateTime dateTime, GuildHistoryType historyType) {
|
||||
Instant dateTime, GuildHistoryType historyType) {
|
||||
super();
|
||||
this.guildID = guildID;
|
||||
this.guildName = guildName;
|
||||
@@ -49,9 +50,9 @@ public class GuildHistory {
|
||||
|
||||
sqlDateTime = rs.getTimestamp("historyDate");
|
||||
if (sqlDateTime != null)
|
||||
this.time = new DateTime(sqlDateTime);
|
||||
this.time = sqlDateTime.toInstant();
|
||||
else
|
||||
this.time = DateTime.now().minusYears(1);
|
||||
this.time = Instant.now().minus(1, ChronoUnit.YEARS);
|
||||
this.historyType = GuildHistoryType.valueOf(rs.getString("historyType"));
|
||||
}
|
||||
|
||||
@@ -77,11 +78,11 @@ public class GuildHistory {
|
||||
writer.putDateTime(this.time);
|
||||
}
|
||||
|
||||
public DateTime getTime() {
|
||||
public Instant getTime() {
|
||||
return time;
|
||||
}
|
||||
|
||||
public void setTime(DateTime time) {
|
||||
public void setTime(Instant time) {
|
||||
this.time = time;
|
||||
}
|
||||
|
||||
|
||||
@@ -22,7 +22,6 @@ import engine.net.client.ClientConnection;
|
||||
import engine.net.client.msg.ErrorPopupMsg;
|
||||
import engine.powers.EffectsBase;
|
||||
import engine.server.MBServerStatics;
|
||||
import org.joda.time.DateTime;
|
||||
import org.pmw.tinylog.Logger;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@@ -199,8 +198,6 @@ public class ItemFactory {
|
||||
// to this, not when 'compelte' is pressed.
|
||||
long upgradeTime = System.currentTimeMillis() + (long) (time * Float.parseFloat(ConfigManager.MB_PRODUCTION_RATE.getValue()));
|
||||
|
||||
DateTime dateTime = new DateTime();
|
||||
dateTime = dateTime.withMillis(upgradeTime);
|
||||
ml.setDateToUpgrade(upgradeTime);
|
||||
|
||||
npc.addItemToForge(ml);
|
||||
@@ -209,8 +206,8 @@ public class ItemFactory {
|
||||
|
||||
if (pc != null)
|
||||
playerID = pc.getObjectUUID();
|
||||
DbManager.NPCQueries.ADD_TO_PRODUCTION_LIST(ml.getObjectUUID(), npc.getObjectUUID(), ml.getItemBaseID(), dateTime, "", "", "", false, playerID);
|
||||
ProducedItem pi = new ProducedItem(ml.getObjectUUID(), npc.getObjectUUID(), ml.getItemBaseID(), dateTime, false, "", "", "", playerID);
|
||||
DbManager.NPCQueries.ADD_TO_PRODUCTION_LIST(ml.getObjectUUID(), npc.getObjectUUID(), ml.getItemBaseID(), upgradeTime, "", "", "", false, playerID);
|
||||
ProducedItem pi = new ProducedItem(ml.getObjectUUID(), npc.getObjectUUID(), ml.getItemBaseID(), upgradeTime, false, "", "", "", playerID);
|
||||
pi.setProducedItemID(ml.getObjectUUID());
|
||||
pi.setAmount(itemsToRoll);
|
||||
pi.setRandom(false);
|
||||
@@ -616,8 +613,6 @@ public class ItemFactory {
|
||||
// to this, not when 'compelte' is pressed.
|
||||
long upgradeTime = System.currentTimeMillis() + (long) (time * Float.parseFloat(ConfigManager.MB_PRODUCTION_RATE.getValue()));
|
||||
|
||||
DateTime dateTime = new DateTime();
|
||||
dateTime = dateTime.withMillis(upgradeTime);
|
||||
ml.setDateToUpgrade(upgradeTime);
|
||||
|
||||
npc.addItemToForge(ml);
|
||||
@@ -626,8 +621,8 @@ public class ItemFactory {
|
||||
if (pc != null)
|
||||
playerID = pc.getObjectUUID();
|
||||
|
||||
DbManager.NPCQueries.ADD_TO_PRODUCTION_LIST(ml.getObjectUUID(), npc.getObjectUUID(), ml.getItemBaseID(), dateTime, prefixString, suffixString, ml.getCustomName(), false, playerID);
|
||||
ProducedItem pi = new ProducedItem(npc.getRolling().size(), npc.getObjectUUID(), ml.getItemBaseID(), dateTime, false, prefixString, suffixString, ml.getCustomName(), playerID);
|
||||
DbManager.NPCQueries.ADD_TO_PRODUCTION_LIST(ml.getObjectUUID(), npc.getObjectUUID(), ml.getItemBaseID(), upgradeTime, prefixString, suffixString, ml.getCustomName(), false, playerID);
|
||||
ProducedItem pi = new ProducedItem(npc.getRolling().size(), npc.getObjectUUID(), ml.getItemBaseID(), upgradeTime, false, prefixString, suffixString, ml.getCustomName(), playerID);
|
||||
pi.setProducedItemID(ml.getObjectUUID());
|
||||
pi.setAmount(itemsToRoll);
|
||||
|
||||
@@ -754,8 +749,6 @@ public class ItemFactory {
|
||||
|
||||
long upgradeTime = System.currentTimeMillis() + (long) (time * Float.parseFloat(ConfigManager.MB_PRODUCTION_RATE.getValue()));
|
||||
|
||||
DateTime dateTime = new DateTime();
|
||||
dateTime = dateTime.withMillis(upgradeTime);
|
||||
toRoll.setDateToUpgrade(upgradeTime);
|
||||
|
||||
int playerID = 0;
|
||||
@@ -763,9 +756,9 @@ public class ItemFactory {
|
||||
if (playerCharacter != null)
|
||||
playerID = playerCharacter.getObjectUUID();
|
||||
|
||||
DbManager.NPCQueries.ADD_TO_PRODUCTION_LIST(toRoll.getObjectUUID(), vendor.getObjectUUID(), toRoll.getItemBaseID(), dateTime, prefix, suffix, toRoll.getCustomName(), true, playerID);
|
||||
DbManager.NPCQueries.ADD_TO_PRODUCTION_LIST(toRoll.getObjectUUID(), vendor.getObjectUUID(), toRoll.getItemBaseID(), upgradeTime, prefix, suffix, toRoll.getCustomName(), true, playerID);
|
||||
|
||||
ProducedItem pi = new ProducedItem(toRoll.getObjectUUID(), vendor.getObjectUUID(), toRoll.getItemBaseID(), dateTime, true, prefix, suffix, toRoll.getCustomName(), playerID);
|
||||
ProducedItem pi = new ProducedItem(toRoll.getObjectUUID(), vendor.getObjectUUID(), toRoll.getItemBaseID(), upgradeTime, true, prefix, suffix, toRoll.getCustomName(), playerID);
|
||||
pi.setProducedItemID(toRoll.getObjectUUID());
|
||||
pi.setAmount(itemsToRoll);
|
||||
ItemQueue produced = ItemQueue.borrow(pi, (long) (time * Float.parseFloat(ConfigManager.MB_PRODUCTION_RATE.getValue())));
|
||||
|
||||
@@ -31,7 +31,7 @@ import engine.net.client.msg.PlaceAssetMsg;
|
||||
import engine.powers.EffectsBase;
|
||||
import engine.powers.MobPowerEntry;
|
||||
import engine.server.MBServerStatics;
|
||||
import org.joda.time.DateTime;
|
||||
import java.time.Instant;
|
||||
import org.pmw.tinylog.Logger;
|
||||
|
||||
import java.sql.ResultSet;
|
||||
@@ -98,7 +98,7 @@ public class Mob extends AbstractIntelligenceAgent {
|
||||
private int lastMobPowerToken = 0;
|
||||
private HashMap<Integer, MobEquipment> equip = null;
|
||||
private DeferredPowerJob weaponPower;
|
||||
private DateTime upgradeDateTime = null;
|
||||
private Instant upgradeDateTime = null;
|
||||
private boolean lootSync = false;
|
||||
|
||||
|
||||
@@ -240,7 +240,7 @@ public class Mob extends AbstractIntelligenceAgent {
|
||||
sqlDateTime = rs.getTimestamp("upgradeDate");
|
||||
|
||||
if (sqlDateTime != null)
|
||||
upgradeDateTime = new DateTime(sqlDateTime);
|
||||
upgradeDateTime = sqlDateTime.toInstant();
|
||||
else
|
||||
upgradeDateTime = null;
|
||||
|
||||
@@ -654,8 +654,8 @@ public class Mob extends AbstractIntelligenceAgent {
|
||||
|
||||
// Submit upgrade job for future date or current instant
|
||||
|
||||
if (mob.getUpgradeDateTime().isAfter(DateTime.now()))
|
||||
JobScheduler.getInstance().scheduleJob(new UpgradeNPCJob(mob), mob.getUpgradeDateTime().getMillis());
|
||||
if (mob.getUpgradeDateTime().isAfter(Instant.now()))
|
||||
JobScheduler.getInstance().scheduleJob(new UpgradeNPCJob(mob), mob.getUpgradeDateTime().toEpochMilli());
|
||||
else
|
||||
JobScheduler.getInstance().scheduleJob(new UpgradeNPCJob(mob), 0);
|
||||
|
||||
@@ -681,7 +681,7 @@ public class Mob extends AbstractIntelligenceAgent {
|
||||
return upgradeCost;
|
||||
}
|
||||
|
||||
public static void setUpgradeDateTime(Mob mob, DateTime upgradeDateTime) {
|
||||
public static void setUpgradeDateTime(Mob mob, Instant upgradeDateTime) {
|
||||
|
||||
if (!DbManager.MobQueries.updateUpgradeTime(mob, upgradeDateTime)) {
|
||||
Logger.error("Failed to set upgradeTime for building " + mob.currentID);
|
||||
@@ -2118,7 +2118,7 @@ public class Mob extends AbstractIntelligenceAgent {
|
||||
return siegeMinionMap;
|
||||
}
|
||||
|
||||
public DateTime getUpgradeDateTime() {
|
||||
public Instant getUpgradeDateTime() {
|
||||
|
||||
lock.readLock().lock();
|
||||
|
||||
@@ -2208,7 +2208,7 @@ public class Mob extends AbstractIntelligenceAgent {
|
||||
if (!building.transferGold(-rankCost, false))
|
||||
return;
|
||||
|
||||
DateTime dateToUpgrade = DateTime.now().plusHours(Mob.getUpgradeTime(this));
|
||||
Instant dateToUpgrade = Instant.now().plusSeconds(Mob.getUpgradeTime(this) * 3600);
|
||||
Mob.setUpgradeDateTime(this, dateToUpgrade);
|
||||
|
||||
// Schedule upgrade job
|
||||
|
||||
+12
-12
@@ -28,7 +28,7 @@ import engine.net.client.msg.ItemProductionMsg;
|
||||
import engine.net.client.msg.PetMsg;
|
||||
import engine.net.client.msg.PlaceAssetMsg;
|
||||
import engine.server.MBServerStatics;
|
||||
import org.joda.time.DateTime;
|
||||
import java.time.Instant;
|
||||
import org.pmw.tinylog.Logger;
|
||||
|
||||
import java.sql.ResultSet;
|
||||
@@ -75,7 +75,7 @@ public class NPC extends AbstractCharacter {
|
||||
protected int symbol;
|
||||
// Variables NOT to be stored in db
|
||||
protected boolean isStatic = false;
|
||||
private DateTime upgradeDateTime = null;
|
||||
private Instant upgradeDateTime = null;
|
||||
private HashSet<Integer> canRoll = null;
|
||||
public int parentZoneUUID;
|
||||
public int equipmentSetID = 0;
|
||||
@@ -132,13 +132,13 @@ public class NPC extends AbstractCharacter {
|
||||
|
||||
this.guildUUID = rs.getInt("npc_guildID");
|
||||
|
||||
// Set upgrade date JodaTime DateTime object
|
||||
// Set upgrade date (java.time.Instant) object
|
||||
// if one exists in the database.
|
||||
|
||||
sqlDateTime = rs.getTimestamp("upgradeDate");
|
||||
|
||||
if (sqlDateTime != null)
|
||||
upgradeDateTime = new DateTime(sqlDateTime);
|
||||
upgradeDateTime = sqlDateTime.toInstant();
|
||||
else
|
||||
upgradeDateTime = null;
|
||||
|
||||
@@ -554,9 +554,9 @@ public class NPC extends AbstractCharacter {
|
||||
|
||||
// Submit upgrade job for future date or current instant
|
||||
|
||||
if (this.getUpgradeDateTime().isAfter(DateTime.now()))
|
||||
if (this.getUpgradeDateTime().isAfter(Instant.now()))
|
||||
jc = JobScheduler.getInstance().scheduleJob(new UpgradeNPCJob(this),
|
||||
this.getUpgradeDateTime().getMillis());
|
||||
this.getUpgradeDateTime().toEpochMilli());
|
||||
else
|
||||
JobScheduler.getInstance().scheduleJob(new UpgradeNPCJob(this), 0);
|
||||
|
||||
@@ -939,7 +939,7 @@ public class NPC extends AbstractCharacter {
|
||||
ml.loadEnchantments();
|
||||
|
||||
ml.setValue(producedItem.getValue());
|
||||
ml.setDateToUpgrade(producedItem.getDateToUpgrade().getMillis());
|
||||
ml.setDateToUpgrade(producedItem.getDateToUpgrade());
|
||||
ml.containerType = Enum.ItemContainerType.FORGE;
|
||||
this.addItemToForge(ml);
|
||||
|
||||
@@ -955,7 +955,7 @@ public class NPC extends AbstractCharacter {
|
||||
ml.setSuffix(producedItem.getSuffix());
|
||||
}
|
||||
|
||||
ml.setDateToUpgrade(producedItem.getDateToUpgrade().getMillis());
|
||||
ml.setDateToUpgrade(producedItem.getDateToUpgrade());
|
||||
ml.containerType = Enum.ItemContainerType.INVENTORY;
|
||||
ml.setIsID(true);
|
||||
|
||||
@@ -982,7 +982,7 @@ public class NPC extends AbstractCharacter {
|
||||
return new ConcurrentHashMap<>(MBServerStatics.CHM_INIT_CAP, MBServerStatics.CHM_LOAD, MBServerStatics.CHM_THREAD_LOW);
|
||||
}
|
||||
|
||||
public DateTime getUpgradeDateTime() {
|
||||
public Instant getUpgradeDateTime() {
|
||||
lock.readLock().lock();
|
||||
try {
|
||||
return upgradeDateTime;
|
||||
@@ -991,7 +991,7 @@ public class NPC extends AbstractCharacter {
|
||||
}
|
||||
}
|
||||
|
||||
public void setUpgradeDateTime(DateTime upgradeDateTime) {
|
||||
public void setUpgradeDateTime(Instant upgradeDateTime) {
|
||||
|
||||
if (!DbManager.NPCQueries.updateUpgradeTime(this, upgradeDateTime)) {
|
||||
Logger.error("Failed to set upgradeTime for building " + currentID);
|
||||
@@ -1286,7 +1286,7 @@ public class NPC extends AbstractCharacter {
|
||||
|
||||
int rankCost;
|
||||
Building building;
|
||||
DateTime dateToUpgrade;
|
||||
Instant dateToUpgrade;
|
||||
|
||||
|
||||
this.lock.writeLock().lock();
|
||||
@@ -1329,7 +1329,7 @@ public class NPC extends AbstractCharacter {
|
||||
if (!building.transferGold(-rankCost, false))
|
||||
return;
|
||||
|
||||
dateToUpgrade = DateTime.now().plusHours(this.getUpgradeTime());
|
||||
dateToUpgrade = Instant.now().plusSeconds(this.getUpgradeTime() * 3600);
|
||||
|
||||
this.setUpgradeDateTime(dateToUpgrade);
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@ import engine.server.login.LoginServer;
|
||||
import engine.server.login.LoginServerMsgHandler;
|
||||
import engine.server.world.WorldServer;
|
||||
import engine.util.MiscUtils;
|
||||
import org.joda.time.DateTime;
|
||||
import java.time.Instant;
|
||||
import org.pmw.tinylog.Logger;
|
||||
|
||||
import java.sql.ResultSet;
|
||||
@@ -718,11 +718,11 @@ public class PlayerCharacter extends AbstractCharacter {
|
||||
writer.putInt(token);
|
||||
writer.putInt((int) timeLeft / 1000);
|
||||
}
|
||||
DateTime enterWorld = new DateTime(playerCharacter.timestamps.get("EnterWorld"));
|
||||
Instant enterWorld = playerCharacter.timestamps.get("EnterWorld").toInstant();
|
||||
writer.putDateTime(enterWorld);
|
||||
|
||||
writer.putInt(0x49EF1E98); //DUnno what playerCharacter is.
|
||||
writer.putFloat(DateTime.now().hourOfDay().get()); //daylight in float.
|
||||
writer.putFloat(Instant.now().atZone(ZoneId.systemDefault()).toLocalTime().getHour()); //daylight in float.
|
||||
writer.putFloat(6); //interval of light to change per game hour //float
|
||||
//writer.putInt(1637194901); //playerCharacter is actually an opcode taht is in recordings, no clue what it is, dumped it and it changes nothing
|
||||
} else {
|
||||
@@ -4872,7 +4872,7 @@ public class PlayerCharacter extends AbstractCharacter {
|
||||
}
|
||||
|
||||
if (count > 0) {
|
||||
this.timestamps.put("RealmClaim", DateTime.now().plusMinutes(3).getMillis());
|
||||
this.timestamps.put("RealmClaim", Instant.now().plusSeconds(180).toEpochMilli());
|
||||
for (PlayerCharacter toSend : SessionManager.getAllActivePlayerCharacters()) {
|
||||
ChatManager.chatSystemInfo(toSend, this.getCombinedName() + " is seeking to claim a realm and already has " + count + " blessngs!");
|
||||
}
|
||||
|
||||
@@ -14,7 +14,6 @@ import engine.gameManager.PowersManager;
|
||||
import engine.net.DispatchMessage;
|
||||
import engine.net.client.msg.ItemProductionMsg;
|
||||
import engine.powers.EffectsBase;
|
||||
import org.joda.time.DateTime;
|
||||
import org.pmw.tinylog.Logger;
|
||||
|
||||
import java.sql.ResultSet;
|
||||
@@ -26,7 +25,7 @@ public class ProducedItem {
|
||||
private int ID;
|
||||
private int npcUID;
|
||||
private int itemBaseID;
|
||||
private DateTime dateToUpgrade;
|
||||
private long dateToUpgrade;
|
||||
private boolean isRandom;
|
||||
|
||||
private String prefix;
|
||||
@@ -52,9 +51,9 @@ public class ProducedItem {
|
||||
Date sqlDateTime = rs.getTimestamp("dateToUpgrade");
|
||||
|
||||
if (sqlDateTime != null)
|
||||
this.dateToUpgrade = new DateTime(sqlDateTime);
|
||||
this.dateToUpgrade = sqlDateTime.getTime();
|
||||
else
|
||||
dateToUpgrade = null;
|
||||
dateToUpgrade = 0;
|
||||
this.isRandom = rs.getBoolean("isRandom");
|
||||
this.prefix = rs.getString("prefix");
|
||||
this.suffix = rs.getString("suffix");
|
||||
@@ -64,7 +63,7 @@ public class ProducedItem {
|
||||
this.playerID = rs.getInt("playerID");
|
||||
}
|
||||
|
||||
public ProducedItem(int ID, int npcUID, int itemBaseID, DateTime dateToUpgrade, boolean isRandom, String prefix, String suffix, String name, int playerID) {
|
||||
public ProducedItem(int ID, int npcUID, int itemBaseID, long dateToUpgrade, boolean isRandom, String prefix, String suffix, String name, int playerID) {
|
||||
super();
|
||||
this.ID = ID;
|
||||
this.npcUID = npcUID;
|
||||
@@ -84,7 +83,7 @@ public class ProducedItem {
|
||||
return npcUID;
|
||||
}
|
||||
|
||||
public DateTime getDateToUpgrade() {
|
||||
public long getDateToUpgrade() {
|
||||
return dateToUpgrade;
|
||||
}
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ package engine.objects;
|
||||
|
||||
import engine.Enum.GameObjectType;
|
||||
import engine.Enum.TransactionType;
|
||||
import org.joda.time.DateTime;
|
||||
import java.time.Instant;
|
||||
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
@@ -23,7 +23,7 @@ public class Transaction implements Comparable<Transaction> {
|
||||
private final int warehouseUUID;
|
||||
private final int targetUUID;
|
||||
private final Resource resource;
|
||||
private final DateTime date;
|
||||
private final Instant date;
|
||||
private final int amount;
|
||||
private final TransactionType transactionType;
|
||||
private GameObjectType targetType;
|
||||
@@ -40,15 +40,15 @@ public class Transaction implements Comparable<Transaction> {
|
||||
Date sqlDateTime = rs.getTimestamp("date");
|
||||
|
||||
if (sqlDateTime != null)
|
||||
this.date = new DateTime(sqlDateTime);
|
||||
this.date = sqlDateTime.toInstant();
|
||||
else
|
||||
this.date = DateTime.now();
|
||||
this.date = Instant.now();
|
||||
|
||||
}
|
||||
|
||||
|
||||
public Transaction(int warehouseUUID, GameObjectType targetType, int targetUUID, TransactionType transactionType, Resource resource, int amount,
|
||||
DateTime date) {
|
||||
Instant date) {
|
||||
this.warehouseUUID = warehouseUUID;
|
||||
this.targetUUID = targetUUID;
|
||||
this.resource = resource;
|
||||
@@ -74,7 +74,7 @@ public class Transaction implements Comparable<Transaction> {
|
||||
}
|
||||
|
||||
|
||||
public DateTime getDate() {
|
||||
public Instant getDate() {
|
||||
return date;
|
||||
}
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ import engine.net.DispatchMessage;
|
||||
import engine.net.client.ClientConnection;
|
||||
import engine.net.client.msg.*;
|
||||
import engine.server.MBServerStatics;
|
||||
import org.joda.time.DateTime;
|
||||
import java.time.Instant;
|
||||
import org.pmw.tinylog.Logger;
|
||||
|
||||
import java.sql.ResultSet;
|
||||
@@ -1308,10 +1308,10 @@ public class Warehouse extends AbstractWorldObject {
|
||||
public boolean AddTransactionToWarehouse(GameObjectType targetType, int targetUUID, TransactionType transactionType, Resource resource, int amount) {
|
||||
|
||||
|
||||
if (!DbManager.WarehouseQueries.CREATE_TRANSACTION(this.buildingUID, targetType, targetUUID, transactionType, resource, amount, DateTime.now()))
|
||||
if (!DbManager.WarehouseQueries.CREATE_TRANSACTION(this.buildingUID, targetType, targetUUID, transactionType, resource, amount, Instant.now()))
|
||||
return false;
|
||||
|
||||
Transaction transaction = new Transaction(this.buildingUID, targetType, targetUUID, transactionType, resource, amount, DateTime.now());
|
||||
Transaction transaction = new Transaction(this.buildingUID, targetType, targetUUID, transactionType, resource, amount, Instant.now());
|
||||
this.transactions.add(transaction);
|
||||
return true;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user