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
f73a713f
Commit
f73a713f
authored
Apr 30, 2022
by
KingRainbow44
Browse files
Create player creation event & move join event to player
parent
4db1724d
Changes
3
Hide whitespace changes
Inline
Side-by-side
src/main/java/emu/grasscutter/game/player/Player.java
View file @
f73a713f
...
...
@@ -37,6 +37,7 @@ import emu.grasscutter.net.proto.PlayerWorldLocationInfoOuterClass;
import
emu.grasscutter.net.proto.ProfilePictureOuterClass.ProfilePicture
;
import
emu.grasscutter.net.proto.SocialDetailOuterClass.SocialDetail
;
import
emu.grasscutter.net.proto.SocialShowAvatarInfoOuterClass
;
import
emu.grasscutter.server.event.game.PlayerJoinEvent
;
import
emu.grasscutter.server.event.game.PlayerQuitEvent
;
import
emu.grasscutter.server.event.player.PlayerReceiveMailEvent
;
import
emu.grasscutter.server.game.GameServer
;
...
...
@@ -1014,6 +1015,11 @@ public class Player {
// First notify packets sent
this
.
setHasSentAvatarDataNotify
(
true
);
// Call join event.
PlayerJoinEvent
event
=
new
PlayerJoinEvent
(
this
);
event
.
call
();
if
(
event
.
isCanceled
())
// If event is not cancelled, continue.
session
.
close
();
}
public
void
onLogout
()
{
...
...
src/main/java/emu/grasscutter/server/event/game/PlayerCreationEvent.java
0 → 100644
View file @
f73a713f
package
emu.grasscutter.server.event.game
;
import
emu.grasscutter.game.player.Player
;
import
emu.grasscutter.server.event.types.GameEvent
;
import
emu.grasscutter.server.game.GameSession
;
public
final
class
PlayerCreationEvent
extends
GameEvent
{
private
final
GameSession
session
;
private
Class
<?
extends
Player
>
playerClass
;
public
PlayerCreationEvent
(
GameSession
session
,
Class
<?
extends
Player
>
playerClass
)
{
this
.
session
=
session
;
this
.
playerClass
=
playerClass
;
}
public
GameSession
getSession
()
{
return
this
.
session
;
}
public
void
setPlayerClass
(
Class
<?
extends
Player
>
playerClass
)
{
this
.
playerClass
=
playerClass
;
}
public
Class
<?
extends
Player
>
getPlayerClass
()
{
return
this
.
playerClass
;
}
}
src/main/java/emu/grasscutter/server/packet/recv/HandlerSetPlayerBornDataReq.java
View file @
f73a713f
...
...
@@ -13,7 +13,7 @@ import emu.grasscutter.net.packet.Opcodes;
import
emu.grasscutter.net.packet.PacketOpcodes
;
import
emu.grasscutter.net.proto.SetPlayerBornDataReqOuterClass.SetPlayerBornDataReq
;
import
emu.grasscutter.net.packet.PacketHandler
;
import
emu.grasscutter.server.event.game.Player
Joi
nEvent
;
import
emu.grasscutter.server.event.game.Player
Creatio
nEvent
;
import
emu.grasscutter.server.game.GameSession
;
import
emu.grasscutter.server.game.GameSession.SessionState
;
...
...
@@ -40,8 +40,10 @@ public class HandlerSetPlayerBornDataReq extends PacketHandler {
nickname
=
"Traveler"
;
}
// Create character
Player
player
=
new
Player
(
session
);
// Call creation event.
PlayerCreationEvent
event
=
new
PlayerCreationEvent
(
session
,
Player
.
class
);
event
.
call
();
// Create player instance from event.
Player
player
=
event
.
getPlayerClass
().
getDeclaredConstructor
(
GameSession
.
class
).
newInstance
(
session
);
player
.
setNickname
(
nickname
);
try
{
...
...
@@ -92,10 +94,5 @@ public class HandlerSetPlayerBornDataReq extends PacketHandler {
Grasscutter
.
getLogger
().
error
(
"Error creating player object: "
,
e
);
session
.
close
();
}
// Call join event.
PlayerJoinEvent
event
=
new
PlayerJoinEvent
(
player
);
event
.
call
();
if
(
event
.
isCanceled
())
// If event is not cancelled, continue.
session
.
close
();
}
}
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