12
12
import com .eternalcode .parcellockers .content .repository .ParcelContentRepository ;
13
13
import com .eternalcode .parcellockers .content .repository .ParcelContentRepositoryOrmLite ;
14
14
import com .eternalcode .parcellockers .database .DatabaseManager ;
15
+ import com .eternalcode .parcellockers .delivery .repository .DeliveryRepositoryOrmLite ;
15
16
import com .eternalcode .parcellockers .gui .implementation .locker .LockerMainGui ;
16
17
import com .eternalcode .parcellockers .gui .implementation .remote .MainGui ;
17
18
import com .eternalcode .parcellockers .gui .implementation .remote .ParcelListGui ;
27
28
import com .eternalcode .parcellockers .notification .NotificationAnnouncer ;
28
29
import com .eternalcode .parcellockers .parcel .Parcel ;
29
30
import com .eternalcode .parcellockers .parcel .ParcelManager ;
31
+ import com .eternalcode .parcellockers .parcel .ParcelStatus ;
30
32
import com .eternalcode .parcellockers .parcel .command .ParcelCommand ;
31
33
import com .eternalcode .parcellockers .parcel .command .argument .ParcelArgument ;
32
34
import com .eternalcode .parcellockers .parcel .repository .ParcelCache ;
33
35
import com .eternalcode .parcellockers .parcel .repository .ParcelRepositoryOrmLite ;
36
+ import com .eternalcode .parcellockers .parcel .task .ParcelSendTask ;
34
37
import com .eternalcode .parcellockers .updater .UpdaterService ;
35
38
import com .eternalcode .parcellockers .user .UserManager ;
36
39
import com .eternalcode .parcellockers .user .controller .LoadUserController ;
52
55
import io .sentry .Sentry ;
53
56
import net .kyori .adventure .platform .bukkit .BukkitAudiences ;
54
57
import net .kyori .adventure .text .minimessage .MiniMessage ;
55
- import net .milkbowl .vault .economy .Economy ;
56
58
import org .bstats .bukkit .Metrics ;
57
59
import org .bukkit .Server ;
58
60
import org .bukkit .command .CommandSender ;
59
- import org .bukkit .plugin .RegisteredServiceProvider ;
60
61
import org .bukkit .plugin .java .JavaPlugin ;
62
+ import org .slf4j .helpers .NOPLogger ;
61
63
62
64
import java .sql .SQLException ;
63
65
import java .time .Duration ;
66
+ import java .util .ArrayList ;
64
67
import java .util .Arrays ;
68
+ import java .util .List ;
65
69
import java .util .concurrent .TimeUnit ;
66
70
import java .util .logging .Level ;
67
71
import java .util .logging .Logger ;
68
72
import java .util .stream .Stream ;
69
- import org .slf4j .helpers .NOPLogger ;
70
73
71
74
public final class ParcelLockers extends JavaPlugin {
72
75
@@ -75,7 +78,7 @@ public final class ParcelLockers extends JavaPlugin {
75
78
private LiteCommands <CommandSender > liteCommands ;
76
79
private BukkitAudiences audiences ;
77
80
private SkullAPI skullAPI ;
78
- private Economy economy ;
81
+
79
82
private DatabaseManager databaseManager ;
80
83
81
84
@ Override
@@ -141,15 +144,16 @@ public void onEnable() {
141
144
ParcelRepositoryOrmLite parcelRepository = new ParcelRepositoryOrmLite (databaseManager , scheduler , parcelCache );
142
145
parcelRepository .updateCaches ();
143
146
147
+ DeliveryRepositoryOrmLite deliveryRepository = new DeliveryRepositoryOrmLite (databaseManager , scheduler );
148
+
144
149
ParcelContentRepository parcelContentRepository = new ParcelContentRepositoryOrmLite (databaseManager , scheduler );
145
- ParcelManager parcelManager = new ParcelManager (config , announcer , parcelRepository , parcelContentRepository , scheduler );
150
+ ParcelManager parcelManager = new ParcelManager (config , announcer , parcelRepository , deliveryRepository , parcelContentRepository , scheduler );
146
151
147
152
ItemStorageRepository itemStorageRepository = new ItemStorageRepositoryOrmLite (databaseManager , scheduler );
148
153
149
154
UserRepository userRepository = new UserRepositoryOrmLite (databaseManager , scheduler );
150
155
UserManager userManager = new UserManager (userRepository );
151
156
152
-
153
157
MainGui mainGUI = new MainGui (this , server , miniMessage , config , parcelRepository , lockerRepository , userManager );
154
158
ParcelListGui parcelListGUI = new ParcelListGui (this , server , miniMessage , config , parcelRepository , lockerRepository , userManager , mainGUI );
155
159
@@ -168,12 +172,6 @@ public void onEnable() {
168
172
.missingPermission (new PermissionMessage (announcer , config ))
169
173
.build ();
170
174
171
- /*if (!this.setupEconomy()) {
172
- this.getLogger().severe("Disabling due to no Vault dependency or its implementator(s) found!");
173
- server.getPluginManager().disablePlugin(this);
174
- return;
175
- }*/
176
-
177
175
LockerMainGui lockerMainGUI = new LockerMainGui (this , miniMessage , config , itemStorageRepository , parcelRepository , lockerRepository , announcer , parcelContentRepository , userRepository , this .skullAPI , parcelManager );
178
176
179
177
Stream .of (
@@ -187,6 +185,24 @@ public void onEnable() {
187
185
new Metrics (this , 17677 );
188
186
new UpdaterService (this .getDescription ());
189
187
188
+ parcelRepository .findAll ().thenAccept (optionalParcels -> {
189
+ List <Parcel > parcels = optionalParcels .orElseGet (ArrayList ::new ).stream ()
190
+ .filter (parcel -> parcel .status () != ParcelStatus .DELIVERED )
191
+ .toList ();
192
+
193
+ parcels .forEach (parcel ->
194
+ deliveryRepository .find (parcel .uuid ()).thenAccept (optionalDelivery ->
195
+ optionalDelivery .ifPresent (delivery -> {
196
+ long delay = Math .max (0 , delivery .deliveryTimestamp ().toEpochMilli () - System .currentTimeMillis ());
197
+ scheduler .runLaterAsync (
198
+ new ParcelSendTask (parcel , delivery , parcelRepository , deliveryRepository , config ),
199
+ Duration .ofMillis (delay )
200
+ );
201
+ })
202
+ )
203
+ );
204
+ });
205
+
190
206
long millis = started .elapsed (TimeUnit .MILLISECONDS );
191
207
this .getLogger ().log (Level .INFO , "Successfully enabled ParcelLockers in {0}ms" , millis );
192
208
}
@@ -227,24 +243,6 @@ private void softwareCheck() {
227
243
logger .info ("Your server is running on supported software, congratulations!" );
228
244
logger .info ("Server version: " + this .getServer ().getVersion ());
229
245
}
230
-
231
- private boolean setupEconomy () {
232
- if (this .getServer ().getPluginManager ().getPlugin ("Vault" ) == null ) {
233
- return false ;
234
- }
235
-
236
- RegisteredServiceProvider <Economy > rsp = this .getServer ().getServicesManager ().getRegistration (Economy .class );
237
- if (rsp == null ) {
238
- return false ; // Vault is installed but no economy plugin is registered (e.g. EssentialsX) - majk
239
- }
240
-
241
- this .economy = rsp .getProvider ();
242
- return true ;
243
- }
244
-
245
- public Economy getEconomy () {
246
- return this .economy ;
247
- }
248
246
}
249
247
250
248
0 commit comments