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
a65823d2
Commit
a65823d2
authored
May 06, 2022
by
Magix
Committed by
GitHub
May 06, 2022
Browse files
Merge pull request #580 from Bwly999/development
Fix the problem that the reference of serverHook in Plugin object is null
parents
38fd7bb7
711ae2f5
Changes
2
Show whitespace changes
Inline
Side-by-side
src/main/java/emu/grasscutter/Grasscutter.java
View file @
a65823d2
...
...
@@ -96,14 +96,13 @@ public final class Grasscutter {
// Database
DatabaseManager
.
initialize
();
// Create plugin manager instance.
pluginManager
=
new
PluginManager
();
// Create server instances.
dispatchServer
=
new
DispatchServer
();
gameServer
=
new
GameServer
();
// Create a server hook instance with both servers.
new
ServerHook
(
gameServer
,
dispatchServer
);
// Create plugin manager instance.
pluginManager
=
new
PluginManager
();
// Start servers.
if
(
getConfig
().
RunMode
==
ServerRunMode
.
HYBRID
)
{
...
...
src/main/java/emu/grasscutter/server/game/GameServer.java
View file @
a65823d2
...
...
@@ -29,6 +29,9 @@ import java.net.InetSocketAddress;
import
java.time.OffsetDateTime
;
import
java.util.*
;
import
java.util.concurrent.ConcurrentHashMap
;
import
java.util.concurrent.Executors
;
import
java.util.concurrent.ScheduledExecutorService
;
import
java.util.concurrent.TimeUnit
;
import
static
emu
.
grasscutter
.
utils
.
Language
.
translate
;
...
...
@@ -80,19 +83,6 @@ public final class GameServer extends KcpServer {
this
.
expeditionManager
=
new
ExpeditionManager
(
this
);
this
.
combineManger
=
new
CombineManger
(
this
);
// Schedule game loop.
Timer
gameLoop
=
new
Timer
();
gameLoop
.
scheduleAtFixedRate
(
new
TimerTask
()
{
@Override
public
void
run
()
{
try
{
onTick
();
}
catch
(
Exception
e
)
{
Grasscutter
.
getLogger
().
error
(
translate
(
"messages.game.game_update_error"
),
e
);
}
}
},
new
Date
(),
1000L
);
// Hook into shutdown event.
Runtime
.
getRuntime
().
addShutdownHook
(
new
Thread
(
this
::
onServerShutdown
));
}
...
...
@@ -229,6 +219,24 @@ public final class GameServer extends KcpServer {
}
@Override
public
synchronized
void
start
()
{
// Schedule game loop.
Timer
gameLoop
=
new
Timer
();
gameLoop
.
scheduleAtFixedRate
(
new
TimerTask
()
{
@Override
public
void
run
()
{
try
{
onTick
();
}
catch
(
Exception
e
)
{
Grasscutter
.
getLogger
().
error
(
translate
(
"messages.game.game_update_error"
),
e
);
}
}
},
new
Date
(),
1000L
);
super
.
start
();
}
@Override
public
void
onStartFinish
()
{
Grasscutter
.
getLogger
().
info
(
translate
(
"messages.status.free_software"
));
...
...
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