Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
ziqian zhang
Grasscutter
Commits
b266854c
Commit
b266854c
authored
Jul 18, 2022
by
GanyusLeftHorn
Committed by
Melledy
Jul 18, 2022
Browse files
Handle existing players who might already have passed a level.
parent
af7bbdaa
Changes
2
Hide whitespace changes
Inline
Side-by-side
src/main/java/emu/grasscutter/game/player/Player.java
View file @
b266854c
...
...
@@ -463,7 +463,7 @@ public class Player {
this
.
updateProfile
();
// Handle OpenState unlocks from level-up.
this
.
getOpenStateManager
().
onPlayerLevelUp
();
this
.
getOpenStateManager
().
unlockLevelDependentStates
();
return
true
;
}
...
...
@@ -1535,7 +1535,11 @@ public class Player {
this
.
forgingManager
.
sendForgeDataNotify
();
this
.
resinManager
.
onPlayerLogin
();
this
.
cookingManager
.
sendCookDataNofity
();
// Unlock in case this is an existing user that reached a level before we implemented unlocking.
this
.
openStateManager
.
unlockLevelDependentStates
();
this
.
openStateManager
.
onPlayerLogin
();
getTodayMoonCard
();
// The timer works at 0:0, some users log in after that, use this method to check if they have received a reward today or not. If not, send the reward.
// Battle Pass trigger
...
...
src/main/java/emu/grasscutter/game/player/PlayerOpenStateManager.java
View file @
b266854c
...
...
@@ -55,11 +55,9 @@ public class PlayerOpenStateManager {
public
void
setOpenState
(
OpenState
openState
,
Integer
value
)
{
Integer
previousValue
=
this
.
map
.
getOrDefault
(
openState
.
getValue
(),
0
);
if
(
!(
value
=
=
previousValue
)
)
{
if
(
value
!
=
previousValue
)
{
this
.
map
.
put
(
openState
.
getValue
(),
value
);
player
.
getSession
().
send
(
new
PacketOpenStateChangeNotify
(
openState
.
getValue
(),
value
));
}
else
{
Grasscutter
.
getLogger
().
debug
(
"Warning: OpenState {} is already set to {}!"
,
openState
,
value
);
}
}
...
...
@@ -73,9 +71,9 @@ public class PlayerOpenStateManager {
player
.
getSession
().
send
(
new
PacketOpenStateUpdateNotify
(
this
));
}
public
void
onPlayerLevelUp
()
{
public
void
unlockLevelDependentStates
()
{
Stream
.
of
(
OpenState
.
values
())
.
filter
(
s
->
s
.
getUnlockLevel
()
=
=
this
.
player
.
getLevel
())
.
filter
(
s
->
s
.
getUnlockLevel
()
>
1
&&
s
.
getUnlockLevel
()
<
=
this
.
player
.
getLevel
())
.
forEach
(
s
->
this
.
setOpenState
(
s
,
1
));
}
}
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment