Skip to content

Commit 2045275

Browse files
authored
Merge pull request #667 from Multiverse/fix/offline-modify
Fix modified inventory with gui for offline player not updating
2 parents 3c9ad47 + dc38329 commit 2045275

1 file changed

Lines changed: 9 additions & 0 deletions

File tree

src/main/java/org/mvplugins/multiverse/inventories/view/InventoryDataProvider.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,12 @@
1616
import org.mvplugins.multiverse.inventories.config.InventoriesConfig;
1717
import org.mvplugins.multiverse.inventories.handleshare.SingleShareReader;
1818
import org.mvplugins.multiverse.inventories.handleshare.SingleShareWriter;
19+
import org.mvplugins.multiverse.inventories.profile.ProfileDataSource;
1920
import org.mvplugins.multiverse.inventories.profile.container.ProfileContainer;
2021
import org.mvplugins.multiverse.inventories.profile.container.ProfileContainerStoreProvider;
2122
import org.mvplugins.multiverse.inventories.profile.data.PlayerProfile;
2223
import org.mvplugins.multiverse.inventories.profile.key.ContainerType;
24+
import org.mvplugins.multiverse.inventories.profile.key.GlobalProfileKey;
2325
import org.mvplugins.multiverse.inventories.profile.key.ProfileType;
2426
import org.mvplugins.multiverse.inventories.profile.key.ProfileTypes;
2527
import org.mvplugins.multiverse.inventories.share.Sharable;
@@ -39,16 +41,19 @@
3941
@Service
4042
public final class InventoryDataProvider {
4143

44+
private final ProfileDataSource profileDataSource;
4245
private final ProfileContainerStoreProvider profileContainerStoreProvider;
4346
private final MultiverseInventories inventories;
4447
private final InventoriesConfig inventoriesConfig;
4548

4649
@Inject
4750
InventoryDataProvider(
51+
@NotNull ProfileDataSource profileDataSource,
4852
@NotNull ProfileContainerStoreProvider profileContainerStoreProvider,
4953
@NotNull MultiverseInventories inventories,
5054
@NotNull InventoriesConfig inventoriesConfig
5155
) {
56+
this.profileDataSource = profileDataSource;
5257
this.profileContainerStoreProvider = profileContainerStoreProvider;
5358
this.inventories = inventories;
5459
this.inventoriesConfig = inventoriesConfig;
@@ -274,11 +279,15 @@ private void updateOnlinePlayerInventoryData(
274279
) {
275280
// If the target player is online, update their live inventory
276281
if (!targetPlayer.isOnline()) {
282+
// force appy inv data on join
283+
profileDataSource.getGlobalProfile(GlobalProfileKey.of(targetPlayer))
284+
.thenAccept(globalProfile -> globalProfile.setLoadOnLogin(true));
277285
return;
278286
}
279287

280288
Player onlinePlayer = targetPlayer.getPlayer();
281289
if (onlinePlayer == null) {
290+
// this should never happen as we already check if player is online
282291
return;
283292
}
284293

0 commit comments

Comments
 (0)