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
95a06212
Commit
95a06212
authored
May 14, 2022
by
Yazawazi
Committed by
Melledy
May 13, 2022
Browse files
feature(serenitea pot): Implementation of enter
Ugly hard code
parent
19ee983c
Changes
7
Hide whitespace changes
Inline
Side-by-side
src/main/java/emu/grasscutter/game/player/Player.java
View file @
95a06212
...
...
@@ -87,6 +87,9 @@ public class Player {
private
Integer
widgetId
;
private
Set
<
Integer
>
realmList
;
private
Integer
currentRealmId
;
@Transient
private
long
nextGuid
=
0
;
@Transient
private
int
peerId
;
@Transient
private
World
world
;
...
...
@@ -313,6 +316,31 @@ public class Player {
this
.
widgetId
=
widgetId
;
}
public
Set
<
Integer
>
getRealmList
()
{
return
realmList
;
}
public
void
setRealmList
(
Set
<
Integer
>
realmList
)
{
this
.
realmList
=
realmList
;
}
public
void
addRealmList
(
int
realmId
)
{
if
(
this
.
realmList
==
null
)
{
this
.
realmList
=
new
HashSet
<>();
}
else
if
(
this
.
realmList
.
contains
(
realmId
))
{
return
;
}
this
.
realmList
.
add
(
realmId
);
}
public
Integer
getCurrentRealmId
()
{
return
currentRealmId
;
}
public
void
setCurrentRealmId
(
Integer
currentRealmId
)
{
this
.
currentRealmId
=
currentRealmId
;
}
public
Position
getPos
()
{
return
pos
;
}
...
...
@@ -1187,6 +1215,8 @@ public class Player {
session
.
send
(
new
PacketServerCondMeetQuestListUpdateNotify
(
this
));
session
.
send
(
new
PacketAllWidgetDataNotify
(
this
));
session
.
send
(
new
PacketWidgetGadgetAllDataNotify
());
session
.
send
(
new
PacketPlayerHomeCompInfoNotify
(
this
));
session
.
send
(
new
PacketHomeComfortInfoNotify
(
this
));
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.
...
...
src/main/java/emu/grasscutter/server/packet/recv/HandlerHomeChooseModuleReq.java
0 → 100644
View file @
95a06212
package
emu.grasscutter.server.packet.recv
;
import
emu.grasscutter.net.packet.Opcodes
;
import
emu.grasscutter.net.packet.PacketHandler
;
import
emu.grasscutter.net.packet.PacketOpcodes
;
import
emu.grasscutter.net.proto.HomeChooseModuleReqOuterClass
;
import
emu.grasscutter.server.game.GameSession
;
import
emu.grasscutter.server.packet.send.PacketHomeChooseModuleRsp
;
import
emu.grasscutter.server.packet.send.PacketHomeComfortInfoNotify
;
import
emu.grasscutter.server.packet.send.PacketPlayerHomeCompInfoNotify
;
@Opcodes
(
PacketOpcodes
.
HomeChooseModuleReq
)
public
class
HandlerHomeChooseModuleReq
extends
PacketHandler
{
@Override
public
void
handle
(
GameSession
session
,
byte
[]
header
,
byte
[]
payload
)
throws
Exception
{
HomeChooseModuleReqOuterClass
.
HomeChooseModuleReq
req
=
HomeChooseModuleReqOuterClass
.
HomeChooseModuleReq
.
parseFrom
(
payload
);
session
.
getPlayer
().
addRealmList
(
req
.
getModuleId
());
session
.
getPlayer
().
setCurrentRealmId
(
req
.
getModuleId
());
session
.
send
(
new
PacketHomeChooseModuleRsp
(
req
.
getModuleId
()));
session
.
send
(
new
PacketPlayerHomeCompInfoNotify
(
session
.
getPlayer
()));
session
.
send
(
new
PacketHomeComfortInfoNotify
(
session
.
getPlayer
()));
}
}
src/main/java/emu/grasscutter/server/packet/recv/HandlerTryEnterHomeReq.java
0 → 100644
View file @
95a06212
package
emu.grasscutter.server.packet.recv
;
import
emu.grasscutter.Grasscutter
;
import
emu.grasscutter.net.packet.Opcodes
;
import
emu.grasscutter.net.packet.PacketHandler
;
import
emu.grasscutter.net.packet.PacketOpcodes
;
import
emu.grasscutter.net.proto.TryEnterHomeReqOuterClass
;
import
emu.grasscutter.server.game.GameSession
;
import
emu.grasscutter.server.packet.send.PacketTryEnterHomeRsp
;
import
emu.grasscutter.utils.Position
;
@Opcodes
(
PacketOpcodes
.
TryEnterHomeReq
)
public
class
HandlerTryEnterHomeReq
extends
PacketHandler
{
@Override
public
void
handle
(
GameSession
session
,
byte
[]
header
,
byte
[]
payload
)
throws
Exception
{
TryEnterHomeReqOuterClass
.
TryEnterHomeReq
req
=
TryEnterHomeReqOuterClass
.
TryEnterHomeReq
.
parseFrom
(
payload
);
if
(
req
.
getTargetUid
()
!=
session
.
getPlayer
().
getUid
())
{
// I hope that tomorrow there will be a hero who can support multiplayer mode and write code like a poem
session
.
send
(
new
PacketTryEnterHomeRsp
());
return
;
}
// Hardcoded for now
switch
(
session
.
getPlayer
().
getCurrentRealmId
())
{
case
1
:
session
.
getPlayer
().
getWorld
().
transferPlayerToScene
(
session
.
getPlayer
(),
2001
,
new
Position
(
839
,
319
,
137
)
);
break
;
case
2
:
session
.
getPlayer
().
getWorld
().
transferPlayerToScene
(
session
.
getPlayer
(),
2002
,
new
Position
(
605
,
444
,
554
)
);
break
;
case
3
:
session
.
getPlayer
().
getWorld
().
transferPlayerToScene
(
session
.
getPlayer
(),
2003
,
new
Position
(
511
,
229
,
605
)
);
break
;
case
4
:
session
.
getPlayer
().
getWorld
().
transferPlayerToScene
(
session
.
getPlayer
(),
2004
,
new
Position
(
239
,
187
,
536
)
);
break
;
default
:
session
.
send
(
new
PacketTryEnterHomeRsp
());
return
;
}
session
.
send
(
new
PacketTryEnterHomeRsp
(
req
.
getTargetUid
()));
}
}
src/main/java/emu/grasscutter/server/packet/send/PacketHomeChooseModuleRsp.java
0 → 100644
View file @
95a06212
package
emu.grasscutter.server.packet.send
;
import
emu.grasscutter.net.packet.BasePacket
;
import
emu.grasscutter.net.packet.PacketOpcodes
;
import
emu.grasscutter.net.proto.HomeChooseModuleRspOuterClass
;
public
class
PacketHomeChooseModuleRsp
extends
BasePacket
{
public
PacketHomeChooseModuleRsp
(
int
moduleId
)
{
super
(
PacketOpcodes
.
HomeChooseModuleRsp
);
HomeChooseModuleRspOuterClass
.
HomeChooseModuleRsp
proto
=
HomeChooseModuleRspOuterClass
.
HomeChooseModuleRsp
.
newBuilder
()
.
setRetcode
(
0
)
.
setModuleId
(
moduleId
)
.
build
();
this
.
setData
(
proto
);
}
}
src/main/java/emu/grasscutter/server/packet/send/PacketHomeComfortInfoNotify.java
0 → 100644
View file @
95a06212
package
emu.grasscutter.server.packet.send
;
import
emu.grasscutter.game.player.Player
;
import
emu.grasscutter.net.packet.BasePacket
;
import
emu.grasscutter.net.packet.PacketOpcodes
;
import
emu.grasscutter.net.proto.HomeComfortInfoNotifyOuterClass
;
import
emu.grasscutter.net.proto.HomeModuleComfortInfoOuterClass
;
import
java.util.ArrayList
;
import
java.util.List
;
public
class
PacketHomeComfortInfoNotify
extends
BasePacket
{
public
PacketHomeComfortInfoNotify
(
Player
player
)
{
super
(
PacketOpcodes
.
HomeComfortInfoNotify
);
if
(
player
.
getRealmList
()
==
null
)
{
// Do not send
return
;
}
List
<
HomeModuleComfortInfoOuterClass
.
HomeModuleComfortInfo
>
comfortInfoList
=
new
ArrayList
<>();
for
(
int
moduleId
:
player
.
getRealmList
())
{
comfortInfoList
.
add
(
HomeModuleComfortInfoOuterClass
.
HomeModuleComfortInfo
.
newBuilder
()
.
setModuleId
(
moduleId
)
.
build
()
);
}
HomeComfortInfoNotifyOuterClass
.
HomeComfortInfoNotify
proto
=
HomeComfortInfoNotifyOuterClass
.
HomeComfortInfoNotify
.
newBuilder
()
.
addAllModuleInfoList
(
comfortInfoList
)
.
build
();
this
.
setData
(
proto
);
}
}
src/main/java/emu/grasscutter/server/packet/send/PacketPlayerHomeCompInfoNotify.java
0 → 100644
View file @
95a06212
package
emu.grasscutter.server.packet.send
;
import
emu.grasscutter.game.player.Player
;
import
emu.grasscutter.net.packet.BasePacket
;
import
emu.grasscutter.net.packet.PacketOpcodes
;
import
emu.grasscutter.net.proto.PlayerHomeCompInfoNotifyOuterClass
;
import
emu.grasscutter.net.proto.PlayerHomeCompInfoOuterClass
;
import
java.util.List
;
public
class
PacketPlayerHomeCompInfoNotify
extends
BasePacket
{
public
PacketPlayerHomeCompInfoNotify
(
Player
player
)
{
super
(
PacketOpcodes
.
PlayerHomeCompInfoNotify
);
if
(
player
.
getRealmList
()
==
null
)
{
// Do not send
return
;
}
PlayerHomeCompInfoNotifyOuterClass
.
PlayerHomeCompInfoNotify
proto
=
PlayerHomeCompInfoNotifyOuterClass
.
PlayerHomeCompInfoNotify
.
newBuilder
()
.
setCompInfo
(
PlayerHomeCompInfoOuterClass
.
PlayerHomeCompInfo
.
newBuilder
()
.
addAllUnlockedModuleIdList
(
player
.
getRealmList
())
.
addAllLevelupRewardGotLevelList
(
List
.
of
(
1
))
// Hardcoded
.
build
()
)
.
build
();
this
.
setData
(
proto
);
}
}
src/main/java/emu/grasscutter/server/packet/send/PacketTryEnterHomeRsp.java
0 → 100644
View file @
95a06212
package
emu.grasscutter.server.packet.send
;
import
emu.grasscutter.net.packet.BasePacket
;
import
emu.grasscutter.net.packet.PacketOpcodes
;
import
emu.grasscutter.net.proto.RetcodeOuterClass
;
import
emu.grasscutter.net.proto.TryEnterHomeRspOuterClass
;
public
class
PacketTryEnterHomeRsp
extends
BasePacket
{
public
PacketTryEnterHomeRsp
()
{
super
(
PacketOpcodes
.
TryEnterHomeRsp
);
TryEnterHomeRspOuterClass
.
TryEnterHomeRsp
proto
=
TryEnterHomeRspOuterClass
.
TryEnterHomeRsp
.
newBuilder
()
.
setRetcode
(
RetcodeOuterClass
.
Retcode
.
RET_SVR_ERROR_VALUE
)
.
build
();
this
.
setData
(
proto
);
}
public
PacketTryEnterHomeRsp
(
int
uid
)
{
super
(
PacketOpcodes
.
TryEnterHomeRsp
);
TryEnterHomeRspOuterClass
.
TryEnterHomeRsp
proto
=
TryEnterHomeRspOuterClass
.
TryEnterHomeRsp
.
newBuilder
()
.
setRetcode
(
0
)
.
setTargetUid
(
uid
)
.
build
();
this
.
setData
(
proto
);
}
}
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