1212import com .eternalcode .parcellockers .content .repository .ParcelContentRepository ;
1313import com .eternalcode .parcellockers .content .repository .ParcelContentRepositoryOrmLite ;
1414import com .eternalcode .parcellockers .database .DatabaseManager ;
15+ import com .eternalcode .parcellockers .delivery .repository .DeliveryRepositoryOrmLite ;
1516import com .eternalcode .parcellockers .gui .implementation .locker .LockerMainGui ;
1617import com .eternalcode .parcellockers .gui .implementation .remote .MainGui ;
1718import com .eternalcode .parcellockers .gui .implementation .remote .ParcelListGui ;
2728import com .eternalcode .parcellockers .notification .NotificationAnnouncer ;
2829import com .eternalcode .parcellockers .parcel .Parcel ;
2930import com .eternalcode .parcellockers .parcel .ParcelManager ;
31+ import com .eternalcode .parcellockers .parcel .ParcelStatus ;
3032import com .eternalcode .parcellockers .parcel .command .ParcelCommand ;
3133import com .eternalcode .parcellockers .parcel .command .argument .ParcelArgument ;
3234import com .eternalcode .parcellockers .parcel .repository .ParcelCache ;
3335import com .eternalcode .parcellockers .parcel .repository .ParcelRepositoryOrmLite ;
36+ import com .eternalcode .parcellockers .parcel .task .ParcelSendTask ;
3437import com .eternalcode .parcellockers .updater .UpdaterService ;
3538import com .eternalcode .parcellockers .user .UserManager ;
3639import com .eternalcode .parcellockers .user .controller .LoadUserController ;
5255import io .sentry .Sentry ;
5356import net .kyori .adventure .platform .bukkit .BukkitAudiences ;
5457import net .kyori .adventure .text .minimessage .MiniMessage ;
55- import net .milkbowl .vault .economy .Economy ;
5658import org .bstats .bukkit .Metrics ;
5759import org .bukkit .Server ;
5860import org .bukkit .command .CommandSender ;
59- import org .bukkit .plugin .RegisteredServiceProvider ;
6061import org .bukkit .plugin .java .JavaPlugin ;
62+ import org .slf4j .helpers .NOPLogger ;
6163
6264import java .sql .SQLException ;
6365import java .time .Duration ;
66+ import java .util .ArrayList ;
6467import java .util .Arrays ;
68+ import java .util .List ;
6569import java .util .concurrent .TimeUnit ;
6670import java .util .logging .Level ;
6771import java .util .logging .Logger ;
6872import java .util .stream .Stream ;
69- import org .slf4j .helpers .NOPLogger ;
7073
7174public final class ParcelLockers extends JavaPlugin {
7275
@@ -75,7 +78,7 @@ public final class ParcelLockers extends JavaPlugin {
7578 private LiteCommands <CommandSender > liteCommands ;
7679 private BukkitAudiences audiences ;
7780 private SkullAPI skullAPI ;
78- private Economy economy ;
81+
7982 private DatabaseManager databaseManager ;
8083
8184 @ Override
@@ -141,15 +144,16 @@ public void onEnable() {
141144 ParcelRepositoryOrmLite parcelRepository = new ParcelRepositoryOrmLite (databaseManager , scheduler , parcelCache );
142145 parcelRepository .updateCaches ();
143146
147+ DeliveryRepositoryOrmLite deliveryRepository = new DeliveryRepositoryOrmLite (databaseManager , scheduler );
148+
144149 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 );
146151
147152 ItemStorageRepository itemStorageRepository = new ItemStorageRepositoryOrmLite (databaseManager , scheduler );
148153
149154 UserRepository userRepository = new UserRepositoryOrmLite (databaseManager , scheduler );
150155 UserManager userManager = new UserManager (userRepository );
151156
152-
153157 MainGui mainGUI = new MainGui (this , server , miniMessage , config , parcelRepository , lockerRepository , userManager );
154158 ParcelListGui parcelListGUI = new ParcelListGui (this , server , miniMessage , config , parcelRepository , lockerRepository , userManager , mainGUI );
155159
@@ -168,12 +172,6 @@ public void onEnable() {
168172 .missingPermission (new PermissionMessage (announcer , config ))
169173 .build ();
170174
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-
177175 LockerMainGui lockerMainGUI = new LockerMainGui (this , miniMessage , config , itemStorageRepository , parcelRepository , lockerRepository , announcer , parcelContentRepository , userRepository , this .skullAPI , parcelManager );
178176
179177 Stream .of (
@@ -187,6 +185,24 @@ public void onEnable() {
187185 new Metrics (this , 17677 );
188186 new UpdaterService (this .getDescription ());
189187
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+
190206 long millis = started .elapsed (TimeUnit .MILLISECONDS );
191207 this .getLogger ().log (Level .INFO , "Successfully enabled ParcelLockers in {0}ms" , millis );
192208 }
@@ -227,24 +243,6 @@ private void softwareCheck() {
227243 logger .info ("Your server is running on supported software, congratulations!" );
228244 logger .info ("Server version: " + this .getServer ().getVersion ());
229245 }
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- }
248246}
249247
250248
0 commit comments