обновление README
This commit is contained in:
35
README.MD
Normal file
35
README.MD
Normal file
@@ -0,0 +1,35 @@
|
||||
# MC-CORE
|
||||
|
||||

|
||||

|
||||
|
||||
Модульный **Minecraft** сервер.
|
||||
|
||||
## Модули
|
||||
|
||||
* **Core** - ядро сервера
|
||||
* **Proto 1.12.2** - описание протокола версии [1.12.2 (340)](https://wiki.vg/index.php?title=Protocol&oldid=14204)
|
||||
* **Proto 1.12.2 Netty** - реализация протокола на сетевом движке [Netty.IO](https://netty.io/)
|
||||
* **H2 Player manager** - хранение данных игроков в [H2 Database](http://www.h2database.com/)
|
||||
* **Simple world** - реализация простго генератора плоского (flat) мира
|
||||
* **Anvil loader** - загрузчик "ванильных" (vanilla, ["Anvil"](https://minecraft.gamepedia.com/Anvil_file_format)) карт Minecraft
|
||||
|
||||
## Сборка
|
||||
|
||||
```
|
||||
gradle jar
|
||||
```
|
||||
|
||||
Так же можно собрать все необходимые библиотеки в "кучу":
|
||||
|
||||
```
|
||||
gradle copyDep
|
||||
```
|
||||
|
||||
Или сразу развернув сервер где надо:
|
||||
|
||||
```
|
||||
gradle deploy -Ddeploy=path/to/folder -DcreateRunScript=true
|
||||
```
|
||||
|
||||
`createRunScript` - указание этого параметра создаст скрипт-запускатор
|
||||
5
anvil-loader/README.MD
Normal file
5
anvil-loader/README.MD
Normal file
@@ -0,0 +1,5 @@
|
||||
# Anvil loader
|
||||
|
||||
Загрузчик "ванильных" (vanilla, ["Anvil"](https://minecraft.gamepedia.com/Anvil_file_format)) карт Minecraft.
|
||||
|
||||
Пример настройки можно посмотреть в файле `sample-config.xml`
|
||||
28
anvil-loader/sample-config.xml
Normal file
28
anvil-loader/sample-config.xml
Normal file
@@ -0,0 +1,28 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns:context="http://www.springframework.org/schema/context"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
||||
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
|
||||
http://www.springframework.org/schema/context
|
||||
http://www.springframework.org/schema/context/spring-context.xsd">
|
||||
<context:annotation-config />
|
||||
|
||||
<bean id="spawnLocation" class="mc.core.EntityLocation">
|
||||
<constructor-arg index="0" type="double" value="8"/>
|
||||
<constructor-arg index="1" type="double" value="64"/>
|
||||
<constructor-arg index="2" type="double" value="8"/>
|
||||
<constructor-arg index="3" type="float" value="0"/>
|
||||
<constructor-arg index="4" type="float" value="0"/>
|
||||
</bean>
|
||||
|
||||
<!-- В качестве хранилища, используется модуль Simple world -->
|
||||
<bean id="simpleWorld" class="mc.world.simple.SimpleWorld">
|
||||
<property name="spawn" ref="spawnLocation"/>
|
||||
<property name="chunkProvider">
|
||||
<bean class="mc.world.anvil.AnvilChunkProvider">
|
||||
<constructor-arg index="0" type="java.lang.String" value="path/to/minecraft/maps/New world"/>
|
||||
</bean>
|
||||
</property>
|
||||
</bean>
|
||||
</beans>
|
||||
104
core/README.MD
104
core/README.MD
@@ -1,42 +1,100 @@
|
||||
# Core
|
||||
|
||||
Ядро сервера
|
||||
Ядро сервера.
|
||||
|
||||
Пример настройки можно посмотреть в файле `sample-config.xml`.
|
||||
|
||||
## Spring beans
|
||||
|
||||
### ConfigFromSpring
|
||||
### Разное
|
||||
|
||||
Implements: `mc.core.Config`
|
||||
#### CoreEventListener
|
||||
|
||||
Bean:
|
||||
Стандартный обработчик системных событий.
|
||||
|
||||
**Bean example:**
|
||||
|
||||
```xml
|
||||
<bean class="mc.core.CoreEventListener"/>
|
||||
```
|
||||
|
||||
#### ConfigFromSpring
|
||||
|
||||
Настройка параметров сервера через конфигурацию "спринга".
|
||||
|
||||
Имеются следующие настройки:
|
||||
* `descriptionServer` - описание сервера (aka "Motd")
|
||||
* `favicon` - файл с иконкой сервера
|
||||
* `maxPlayers` - максимальная вместимость сервера
|
||||
|
||||
**Implements:** `mc.core.Config`
|
||||
|
||||
**Bean example:**
|
||||
|
||||
```xml
|
||||
<bean id="config" class="mc.core.embedded.ConfigFromSpring">
|
||||
<property name="descriptionServer" value="MC Core"/>
|
||||
<property name="maxPlayers" value="100"/>
|
||||
<property name="faviconBase64" value="icon.png"/>
|
||||
<property name="favicon" value="icon.png"/>
|
||||
</bean>
|
||||
```
|
||||
|
||||
### IdleTime
|
||||
#### GameLoop
|
||||
|
||||
Implements: `mc.core.time.TimeProcessor`
|
||||
**Bean example:**
|
||||
|
||||
Bean:
|
||||
Доступные параметры:
|
||||
* `gameTimer` - бин, управляющий ходом времени
|
||||
* `percentWarnLowTps` - порог "низкого" значения TPS, в процентах
|
||||
|
||||
```xml
|
||||
<bean id="gameLoop" class="mc.core.GameLoop">
|
||||
<property name="gameTimer" ref="timeProcessor"/>
|
||||
<property name="percentWarnLowTps" value="15"/>
|
||||
</bean>
|
||||
```
|
||||
|
||||
#### SimpleChatProcessor
|
||||
|
||||
Простой обработчик чата.
|
||||
|
||||
**Implements:** `mc.core.chat.ChatProcessor`
|
||||
|
||||
**Bean example:**
|
||||
|
||||
```xml
|
||||
<bean id="chatProcessor" class="mc.core.chat.SimpleChatProcessor" />
|
||||
```
|
||||
|
||||
### Время
|
||||
|
||||
#### IdleTime
|
||||
|
||||
Игровое время суток застывает на указанной отметке.
|
||||
|
||||
Доступные параметры:
|
||||
* `gameTime` - отметка времени (long)
|
||||
|
||||
**Implements:** `mc.core.time.TimeProcessor`
|
||||
|
||||
**Bean example:**
|
||||
|
||||
```xml
|
||||
<bean id="idleTime" class="mc.core.time.IdleTime">
|
||||
<constructor-arg index="0" type="long" value="1000"/>
|
||||
<property name="gameTime" value="1000"/>
|
||||
</bean>
|
||||
```
|
||||
|
||||
в качестве параметра конструктора указывается стартовое время.
|
||||
#### TimePerTick
|
||||
|
||||
### TimePerTick
|
||||
Игровое время суток соответствует игровым тикам (20 tps)
|
||||
|
||||
Implements: `mc.core.time.TimeProcessor`
|
||||
Доступные параметры:
|
||||
* `startGameTime` - стартовое время (long)
|
||||
|
||||
Bean:
|
||||
**Implements:** `mc.core.time.TimeProcessor`
|
||||
|
||||
**Bean example:**
|
||||
|
||||
```xml
|
||||
<bean id="timePerTick" class="mc.core.time.TimePerTick">
|
||||
@@ -44,26 +102,14 @@ Bean:
|
||||
</bean>
|
||||
```
|
||||
|
||||
в качестве параметра указывается стартовое время.
|
||||
#### RealTime
|
||||
|
||||
### RealTime
|
||||
Игровое время суток соответствует реальному времени
|
||||
|
||||
Implements: `mc.core.time.TimeProcessor`
|
||||
**Implements:** `mc.core.time.TimeProcessor`
|
||||
|
||||
Bean:
|
||||
**Bean example:**
|
||||
|
||||
```xml
|
||||
<bean id="realTime" class="mc.core.time.RealTime"/>
|
||||
```
|
||||
|
||||
### GameLoop
|
||||
|
||||
Bean:
|
||||
|
||||
```xml
|
||||
<bean id="gameLoop" class="mc.core.GameLoop">
|
||||
<property name="gameTimer" ref="timeProcessor"/>
|
||||
</bean>
|
||||
```
|
||||
|
||||
`gameTimer` - бин, управляющий ходом времени
|
||||
|
||||
28
core/sample-config.xml
Normal file
28
core/sample-config.xml
Normal file
@@ -0,0 +1,28 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns:context="http://www.springframework.org/schema/context"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
||||
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
|
||||
http://www.springframework.org/schema/context
|
||||
http://www.springframework.org/schema/context/spring-context.xsd">
|
||||
<context:annotation-config />
|
||||
|
||||
<bean id="config" class="mc.core.embedded.ConfigFromSpring">
|
||||
<property name="descriptionServer" value="MC Core - LIMBO"/>
|
||||
<property name="maxPlayers" value="1"/>
|
||||
</bean>
|
||||
|
||||
<bean id="timer" class="mc.core.time.IdleTime">
|
||||
<constructor-arg index="0" type="long" value="1000"/>
|
||||
</bean>
|
||||
|
||||
<bean class="mc.core.CoreEventListener"/>
|
||||
|
||||
<bean id="gameLoop" class="mc.core.GameLoop">
|
||||
<property name="gameTimer" ref="timer"/>
|
||||
<property name="percentWarnLowTps" value="15"/>
|
||||
</bean>
|
||||
|
||||
<bean id="chatProcessor" class="mc.core.chat.SimpleChatProcessor" />
|
||||
</beans>
|
||||
5
h2_playermanager/README.MD
Normal file
5
h2_playermanager/README.MD
Normal file
@@ -0,0 +1,5 @@
|
||||
# H2 Player manager
|
||||
|
||||
Хранилище данных игроков на базе [H2 Database](http://www.h2database.com/).
|
||||
|
||||
Пример настройки можно посмотреть в файле `sample-config.xml`
|
||||
39
h2_playermanager/sample-config.xml
Normal file
39
h2_playermanager/sample-config.xml
Normal file
@@ -0,0 +1,39 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns:context="http://www.springframework.org/schema/context"
|
||||
xmlns:jpa="http://www.springframework.org/schema/data/jpa"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
||||
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
|
||||
http://www.springframework.org/schema/context
|
||||
http://www.springframework.org/schema/context/spring-context.xsd
|
||||
http://www.springframework.org/schema/data/jpa
|
||||
http://www.springframework.org/schema/data/jpa/spring-jpa.xsd">
|
||||
<context:annotation-config />
|
||||
<context:component-scan base-package="mc.core.h2db"/>
|
||||
<jpa:repositories base-package="mc.core.h2db.repository"/>
|
||||
|
||||
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
|
||||
<property name="driverClassName" value="org.h2.Driver"/>
|
||||
<property name="url" value="jdbc:h2:mem:test;DB_CLOSE_DELAY=-1"/>
|
||||
<property name="username" value="sa"/>
|
||||
<property name="password" value="s3cReT"/>
|
||||
</bean>
|
||||
|
||||
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
|
||||
<property name="dataSource" ref="dataSource"/>
|
||||
<property name="persistenceProviderClass" value="org.hibernate.jpa.HibernatePersistenceProvider"/>
|
||||
<property name="packagesToScan" value="mc.core.h2db.entity"/>
|
||||
<property name="jpaProperties">
|
||||
<props>
|
||||
<prop key="hibernate.dialect">org.hibernate.dialect.H2Dialect</prop>
|
||||
<prop key="hibernate.show_sql">false</prop>
|
||||
<prop key="hibernate.hbm2ddl.auto">update</prop>
|
||||
</props>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
|
||||
<property name="entityManagerFactory" ref="entityManagerFactory"/>
|
||||
</bean>
|
||||
</beans>
|
||||
3
proto_1.12.2/README.MD
Normal file
3
proto_1.12.2/README.MD
Normal file
@@ -0,0 +1,3 @@
|
||||
# Protocol 1.12.2
|
||||
|
||||
Описание протокола версии [1.12.2 (340)](https://wiki.vg/index.php?title=Protocol&oldid=14204)
|
||||
7
proto_1.12.2_netty/README.MD
Normal file
7
proto_1.12.2_netty/README.MD
Normal file
@@ -0,0 +1,7 @@
|
||||
# Protocol 1.12.2: Netty impl.
|
||||
|
||||
Реализация протокола на сетевом движке [Netty.IO](https://netty.io/).
|
||||
|
||||
Пример настройки можно посмотреть в файле `sample-config.xml`
|
||||
|
||||
|
||||
24
proto_1.12.2_netty/sample-config.xml
Normal file
24
proto_1.12.2_netty/sample-config.xml
Normal file
@@ -0,0 +1,24 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns:context="http://www.springframework.org/schema/context"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
||||
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
|
||||
http://www.springframework.org/schema/context
|
||||
http://www.springframework.org/schema/context/spring-context.xsd">
|
||||
<context:annotation-config />
|
||||
<context:component-scan base-package="mc.core.network.proto_1_12_2.netty" />
|
||||
|
||||
<!-- Для логирования сетевых пакетов, можно добавить нижезакомментированный бин -->
|
||||
<!-- <bean id="pipeline.log" class="io.netty.handler.logging.LoggingHandler" scope="prototype"/> -->
|
||||
<bean id="pipeline.decoder" class="mc.core.network.proto_1_12_2.netty.PacketDecoder" scope="prototype"/>
|
||||
<bean id="pipeline.postencoder" class="mc.core.network.proto_1_12_2.netty.PacketPostEncoder" scope="prototype"/>
|
||||
<bean id="pipeline.encoder" class="mc.core.network.proto_1_12_2.netty.PacketEncoder" scope="prototype"/>
|
||||
<bean id="pipeline.handler" class="mc.core.network.proto_1_12_2.netty.PacketHandler" scope="prototype"/>
|
||||
|
||||
<bean id="server" class="mc.core.network.proto_1_12_2.netty.NettyServer">
|
||||
<property name="host" value="127.0.0.1"/>
|
||||
<property name="port" value="25565"/>
|
||||
<property name="workerGroupCount" value="2"/>
|
||||
</bean>
|
||||
</beans>
|
||||
Reference in New Issue
Block a user