Compare commits

...

22 Commits

Author SHA1 Message Date
bd3a1e5b9c Merge pull request 'bug-88-fix-too-may-packets-kick' (#46) from bug-88 into develop
All checks were successful
/ build-docker (push) Successful in 21m40s
Reviewed-on: #46
Reviewed-by: oznobys <oznobys@noreply.localhost>
2025-08-24 11:04:46 +00:00
50fe02818d
increase packets per second limit from ~71 to 200 to avoid false positive kicks 2025-08-24 14:03:57 +03:00
1599a79b15 Merge pull request 'suggestion-76-files-migration' (#45) from suggestion-76 into develop
All checks were successful
/ build-docker (push) Successful in 17m2s
Reviewed-on: #45
Reviewed-by: oznobys <oznobys@noreply.localhost>
2025-08-22 20:45:20 +00:00
51f78f3ec0
add file migration commands to Dockerfile 2025-08-22 22:53:03 +03:00
733c2d7d26 Merge pull request 'suggestion-81' (#44) from suggestion-81 into develop
All checks were successful
/ build-docker (push) Successful in 11m6s
Reviewed-on: #44
Reviewed-by: oznobys <oznobys@noreply.localhost>
2025-08-21 14:35:09 +00:00
70056502dd
add plguin to ajust server render distance to clients' settings 2025-08-20 22:56:54 +03:00
5ae76be931
add xp obrs merging plugin 2025-08-20 22:55:55 +03:00
89b3cfe154
reduce view- and simulation distance to improve performance 2025-08-20 22:49:20 +03:00
ace4d01f1d
disable performance hungry anti-xray obfuscations
this allows cheaters to find chests and other entity-blocks but improves performance

https://github.com/Imprex-Development/Orebfuscator/wiki/Frequently-Asked-Questions#what-is-the-proximity-hider
2025-08-20 19:40:46 +03:00
d054a0d26a
optimize java GC startup flags according to https://github.com/Obydux/Minecraft-startup-flags.git to improve memory performace 2025-08-20 19:33:01 +03:00
11ae707a99 Merge pull request 'release-1.0.0' (#43) from develop into main
All checks were successful
/ build-docker (push) Successful in 19m16s
Reviewed-on: #43
2025-08-14 17:24:10 +00:00
32e0d8949e
rename docker image tag and add on tag push build condition to github action
Some checks failed
/ build-docker (push) Has been cancelled
2025-08-14 20:22:48 +03:00
06d0824f67 Merge pull request 'feature-23-imageframe-permissions' (#42) from feature-23 into develop
All checks were successful
/ build-docker (push) Successful in 11m15s
Reviewed-on: #42
2025-08-13 17:33:20 +00:00
e6247a2414
configure ImageFrame permissions 2025-08-13 20:32:15 +03:00
bd10980524 Merge pull request 'feature-42-image-size-optimization-and-uid-gid-selection' (#41) from feature-42 into develop
All checks were successful
/ build-docker (push) Successful in 11m27s
Reviewed-on: #41
2025-08-12 19:34:05 +00:00
260bdd7277
add uid/gid selection to run application as in Dockerfile 2025-08-12 19:11:19 +03:00
20f39cf22e
rearranged Dockerfile statements and add remove cache after locale installation 2025-08-12 18:41:29 +03:00
cae7ab9022 Merge pull request 'feature-55-bmm-permissions-and-limits' (#40) from feature-55 into develop
All checks were successful
/ build-docker (push) Successful in 10m27s
Reviewed-on: #40
2025-08-10 17:48:05 +00:00
c0cad02e1f
configure bmmarker sets and markers amount and permissions 2025-08-10 20:42:50 +03:00
cd1b05b42b Merge pull request 'feature-23-track-rename' (#39) from feature-23 into develop
All checks were successful
/ build-docker (push) Successful in 10m45s
Reviewed-on: #39
2025-08-10 16:56:07 +00:00
207521b638
rename track "staff" to "roles" 2025-08-07 00:23:27 +03:00
d240a44602 Merge pull request 'feature-32-change-DiscordSRV-storage-backend' (#38) from feature-32 into develop
All checks were successful
/ build-docker (push) Successful in 12m52s
Reviewed-on: #38
Reviewed-by: oznobys <oznobys@noreply.localhost>
2025-08-06 19:58:18 +00:00
14 changed files with 164 additions and 48 deletions

View File

@ -5,6 +5,8 @@ on:
branches: branches:
- main - main
- develop - develop
tags:
- '[0-9]+.[0-9]+.[0-9]+'
jobs: jobs:
build-docker: build-docker:
@ -42,5 +44,6 @@ jobs:
push: true push: true
# TODO: split tag names into multiple lines # TODO: split tag names into multiple lines
tags: | tags: |
${{env.registry}}/${{github.repository_owner}}/${{github.event.repository.name}}/${{github.ref_name}}:${{github.sha}} ${{env.registry}}/${{github.repository_owner}}/${{github.event.repository.name}}:${{github.sha}}
${{env.registry}}/${{github.repository_owner}}/${{github.event.repository.name}}/${{github.ref_name}}:latest ${{env.registry}}/${{github.repository_owner}}/${{github.event.repository.name}}:${{github.ref_name}}
${{env.registry}}/${{github.repository_owner}}/${{github.event.repository.name}}:latest

View File

@ -9,29 +9,31 @@ ADD ./src ${CONFIG_PATH}
RUN mkdir ${DATA_PATH} RUN mkdir ${DATA_PATH}
# Add symlinks to Minecraft default files # Add symlinks to Minecraft Vanilla files
RUN touch ${DATA_PATH}/banned-ips.json && \ RUN mkdir ${DATA_PATH}/Vanilla && \
ln -sf ${DATA_PATH}/banned-ips.json ${CONFIG_PATH} && \ touch ${DATA_PATH}/Vanilla/banned-ips.json && \
touch ${DATA_PATH}/banned-players.json && \ ln -sf ${DATA_PATH}/Vanilla/banned-ips.json ${CONFIG_PATH} && \
ln -sf ${DATA_PATH}/banned-players.json ${CONFIG_PATH} && \ touch ${DATA_PATH}/Vanilla/banned-players.json && \
mkdir ${DATA_PATH}/logs && \ ln -sf ${DATA_PATH}/Vanilla/banned-players.json ${CONFIG_PATH} && \
ln -sf ${DATA_PATH}/logs ${CONFIG_PATH} && \ mkdir ${DATA_PATH}/Vanilla/logs && \
touch ${DATA_PATH}/ops.json && \ ln -sf ${DATA_PATH}/Vanilla/logs ${CONFIG_PATH} && \
ln -sf ${DATA_PATH}/ops.json ${CONFIG_PATH} && \ touch ${DATA_PATH}/Vanilla/ops.json && \
touch ${DATA_PATH}/usercache.json && \ ln -sf ${DATA_PATH}/Vanilla/ops.json ${CONFIG_PATH} && \
ln -sf ${DATA_PATH}/usercache.json ${CONFIG_PATH} && \ touch ${DATA_PATH}/Vanilla/usercache.json && \
touch ${DATA_PATH}/whitelist.json && \ ln -sf ${DATA_PATH}/Vanilla/usercache.json ${CONFIG_PATH} && \
ln -sf ${DATA_PATH}/whitelist.json ${CONFIG_PATH} && \ touch ${DATA_PATH}/Vanilla/whitelist.json && \
mkdir ${DATA_PATH}/world && \ ln -sf ${DATA_PATH}/Vanilla/whitelist.json ${CONFIG_PATH} && \
ln -sf ${DATA_PATH}/world ${CONFIG_PATH} && \ mkdir ${DATA_PATH}/Vanilla/world && \
mkdir ${DATA_PATH}/world_nether && \ ln -sf ${DATA_PATH}/Vanilla/world ${CONFIG_PATH} && \
ln -sf ${DATA_PATH}/world_nether ${CONFIG_PATH} && \ mkdir ${DATA_PATH}/Vanilla/world_nether && \
mkdir ${DATA_PATH}/world_the_end && \ ln -sf ${DATA_PATH}/Vanilla/world_nether ${CONFIG_PATH} && \
ln -sf ${DATA_PATH}/world_the_end ${CONFIG_PATH} mkdir ${DATA_PATH}/Vanilla/world_the_end && \
ln -sf ${DATA_PATH}/Vanilla/world_the_end ${CONFIG_PATH}
# Add symlinks to PlasmoVoice files # Add symlinks to PlasmoVoice files
RUN touch ${DATA_PATH}/pv-voice_mutes.json && \ RUN mkdir ${DATA_PATH}/PlasmoVoice && \
ln -sf ${DATA_PATH}/pv-voice_mutes.json \ touch ${DATA_PATH}/PlasmoVoice/pv-voice_mutes.json && \
ln -sf ${DATA_PATH}/PlasmoVoice/pv-voice_mutes.json \
${CONFIG_PATH}/plugins/PlasmoVoice/voice_mutes.json ${CONFIG_PATH}/plugins/PlasmoVoice/voice_mutes.json
# Add symlinks to SuperVanish files # Add symlinks to SuperVanish files
@ -61,12 +63,6 @@ RUN mkdir -p ${DATA_PATH}/CustomizablePlayerModels && \
ln -sf ${DATA_PATH}/CustomizablePlayerModels/ \ ln -sf ${DATA_PATH}/CustomizablePlayerModels/ \
${CONFIG_PATH}/plugins/CustomizablePlayerModels ${CONFIG_PATH}/plugins/CustomizablePlayerModels
# Add symlinks to DiscordSRV files
RUN mkdir -p ${DATA_PATH}/DiscordSRV && \
touch ${DATA_PATH}/DiscordSRV/accounts.aof && \
ln -sf ${DATA_PATH}/DiscordSRV/accounts.aof \
${CONFIG_PATH}/plugins/DiscordSRV/accounts.aof
# Add symlinks to BlueMap files # Add symlinks to BlueMap files
RUN mkdir -p ${DATA_PATH}/BlueMap/maps && \ RUN mkdir -p ${DATA_PATH}/BlueMap/maps && \
mkdir -p ${DATA_PATH}/BlueMap/logs && \ mkdir -p ${DATA_PATH}/BlueMap/logs && \
@ -86,13 +82,23 @@ RUN mkdir -p ${DATA_PATH}/Chunky/tasks && \
# Generate unicode locale so that cyrillic characters display properly # Generate unicode locale so that cyrillic characters display properly
RUN apt-get update -y && apt-get install -y locales && \ RUN apt-get update -y && apt-get install -y locales && \
echo en_US.UTF-8 UTF-8 > /etc/locale.gen && \ echo en_US.UTF-8 UTF-8 > /etc/locale.gen && \
dpkg-reconfigure --frontend=noninteractive locales dpkg-reconfigure --frontend=noninteractive locales && \
rm -Rf var/lib/apt/lists/*
ENV LANG en_US.UTF-8 ENV LANG en_US.UTF-8
VOLUME ${DATA_PATH} VOLUME ${DATA_PATH}
# Minecraft
EXPOSE 25565/tcp
# BlueMap
EXPOSE 8100/tcp
ENV GID=988
ENV UID=999
ENV MEMORY=4G ENV MEMORY=4G
ENV PROXY_SECRET=00000000-0000-0000-0000-000000000000 ENV PROXY_SECRET=00000000-0000-0000-0000-000000000000
@ -136,14 +142,31 @@ ENV DISCORDSRV_DB_NAME=discordsrv_db
ENV DISCORDSRV_DB_USERNAME=discordsrv ENV DISCORDSRV_DB_USERNAME=discordsrv
ENV DISCORDSRV_DB_PASSWORD=0000 ENV DISCORDSRV_DB_PASSWORD=0000
WORKDIR ${WORKDIR_PATH}/config WORKDIR ${WORKDIR_PATH}/config
# Minecraft
EXPOSE 25565/tcp
# BlueMap
EXPOSE 8100/tcp
CMD \ CMD \
# Remove after migrated
mkdir -p ${DATA_PATH}/Vanilla && \
if [ -e ${DATA_PATH}/banned-ips.json ]; then mv ${DATA_PATH}/banned-ips.json ${DATA_PATH}/Vanilla; fi && \
if [ -e ${DATA_PATH}/banned-players.json ]; then mv ${DATA_PATH}/banned-players.json ${DATA_PATH}/Vanilla; fi && \
if [ -e ${DATA_PATH}/logs ]; then mv ${DATA_PATH}/logs ${DATA_PATH}/Vanilla; fi && \
if [ -e ${DATA_PATH}/ops.json ]; then mv ${DATA_PATH}/ops.json ${DATA_PATH}/Vanilla; fi && \
if [ -e ${DATA_PATH}/usercache.json ]; then mv ${DATA_PATH}/usercache.json ${DATA_PATH}/Vanilla; fi && \
if [ -e ${DATA_PATH}/whitelist.json ]; then mv ${DATA_PATH}/whitelist.json ${DATA_PATH}/Vanilla; fi && \
if [ -e ${DATA_PATH}/world ]; then mv ${DATA_PATH}/world ${DATA_PATH}/Vanilla; fi && \
if [ -e ${DATA_PATH}/world_nether ]; then mv ${DATA_PATH}/world_nether ${DATA_PATH}/Vanilla; fi && \
if [ -e ${DATA_PATH}/world_the_end ]; then mv ${DATA_PATH}/world_the_end ${DATA_PATH}/Vanilla; fi && \
mkdir -p ${DATA_PATH}/PlasmoVoice && \
if [ -e ${DATA_PATH}/pv-voice_mutes.json ]; then mv ${DATA_PATH}/pv-voice_mutes.json ${DATA_PATH}/PlasmoVoice; fi && \
# Create and switch to user with desired UID and GID.
# All processes that create/change files in ${DATA_PATH}
# must be run under this user.
groupadd -g ${GID} worker && \
useradd -M -g ${GID} -u ${UID} worker && \
chmod -R o-rwx ${WORKDIR_PATH} && \
# Add proxy secret # Add proxy secret
sed -i "s/_PROXY_SECRET_/${PROXY_SECRET}/g" config/paper-global.yml && \ sed -i "s/_PROXY_SECRET_/${PROXY_SECRET}/g" config/paper-global.yml && \
@ -187,6 +210,7 @@ CMD \
# Add DiscordSRV bot token # Add DiscordSRV bot token
sed -i "s/_DISCORDSRV_BOT_TOKEN_/${DISCORDSRV_BOT_TOKEN}/g" plugins/DiscordSRV/config.yml && \ sed -i "s/_DISCORDSRV_BOT_TOKEN_/${DISCORDSRV_BOT_TOKEN}/g" plugins/DiscordSRV/config.yml && \
# Add database info to DiscordSRV config # Add database info to DiscordSRV config
sed -i "s/_DISCORDSRV_DB_HOST_/${DISCORDSRV_DB_HOST}/g" plugins/DiscordSRV/config.yml && \ sed -i "s/_DISCORDSRV_DB_HOST_/${DISCORDSRV_DB_HOST}/g" plugins/DiscordSRV/config.yml && \
sed -i "s/_DISCORDSRV_DB_PORT_/${DISCORDSRV_DB_PORT}/g" plugins/DiscordSRV/config.yml && \ sed -i "s/_DISCORDSRV_DB_PORT_/${DISCORDSRV_DB_PORT}/g" plugins/DiscordSRV/config.yml && \
@ -194,5 +218,8 @@ CMD \
sed -i "s/_DISCORDSRV_DB_USERNAME_/${DISCORDSRV_DB_USERNAME}/g" plugins/DiscordSRV/config.yml && \ sed -i "s/_DISCORDSRV_DB_USERNAME_/${DISCORDSRV_DB_USERNAME}/g" plugins/DiscordSRV/config.yml && \
sed -i "s/_DISCORDSRV_DB_PASSWORD_/${DISCORDSRV_DB_PASSWORD}/g" plugins/DiscordSRV/config.yml && \ sed -i "s/_DISCORDSRV_DB_PASSWORD_/${DISCORDSRV_DB_PASSWORD}/g" plugins/DiscordSRV/config.yml && \
# Change UID and GID of used files to desired values.
chown -R worker:worker ${WORKDIR_PATH} && \
# Launch # Launch
java -Xms${MEMORY} -Xmx${MEMORY} -jar *.jar -nogui su worker -c "java -Xms${MEMORY} -Xmx${MEMORY} -XX:+UseZGC -XX:+ZGenerational -XX:+AlwaysPreTouch -XX:+UseStringDeduplication -jar *.jar -nogui"

View File

@ -79,8 +79,8 @@ misc:
packet-limiter: packet-limiter:
all-packets: all-packets:
action: KICK action: KICK
interval: 7.0 interval: 1.0
max-packet-rate: 500.0 max-packet-rate: 200.0
kick-message: <red><lang:disconnect.exceeded_packet_rate> kick-message: <red><lang:disconnect.exceeded_packet_rate>
overrides: overrides:
ServerboundPlaceRecipePacket: ServerboundPlaceRecipePacket:

View File

@ -1,5 +1,5 @@
{ {
"language": "en", "language": "en",
"maxUserSets": 1, "maxUserSets": 100,
"maxUserMarker": 5 "maxUserMarker": 1000
} }

BIN
src/plugins/Clumps-5.0.jar (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,55 @@
# XP Clumps Plugin Configuration
# The radius within which XP orbs will merge (in blocks)
merge-radius: 2.0
# Minimum XP amount required in an orb for it to be merged with others
min-xp-to-merge: 5
# How often (in seconds) the plugin checks and merges XP orbs in each world
merge-interval-seconds: 10
# The radius within which XP orbs will be instantly collected by players
instant-collect-radius: 1
# Enable or disable the instant collection of XP orbs by players within the defined radius
enable-instant-collect: true
# Enable or disable the merging of XP orbs across the server
enable-merging: true
# The XP boost multiplier for players collecting XP near merged XP orbs (percentage as a multiplier)
xp-boost-multiplier: 1.1 # 10% XP boost
# Enable or disable the XP boost feature for players near merging XP orbs
enable-xp-boost: false
# Enable or disable particle effects when XP orbs merge (visual animations)
enable-merge-animations: true
# Prevent duplication of XP orbs (to avoid excessive orb spawning)
prevent-orb-duplication: true
# World-specific settings (if you want different settings for different worlds)
world-settings:
# Example of how to configure world-specific settings for merging XP orbs
# These settings will override the global settings for specific worlds
overworld:
merge-radius: 2.0
min-xp-to-merge: 5
merge-interval-seconds: 10
enable-instant-collect: true
enable-merging: true
xp-boost-multiplier: 1.1
enable-xp-boost: true
enable-merge-animations: true
nether:
merge-radius: 3.0 # Different radius for the Nether
min-xp-to-merge: 10
merge-interval-seconds: 15 # Longer interval for Nether
enable-instant-collect: false # Disabled instant collect in the Nether
enable-merging: true
xp-boost-multiplier: 1.2 # Higher XP boost in the Nether
enable-xp-boost: true
enable-merge-animations: false # Disable animations in the Nether

View File

@ -27,6 +27,7 @@ groups:
- ignore - ignore
- unignore - unignore
- discord - discord
- imageframe
subcommands: subcommands:
- discord ? - discord ?
- discord help - discord help
@ -74,4 +75,7 @@ groups:
- searchender - searchender
- searchenchant - searchenchant
- searchcontainer - searchcontainer
- bmarker
- bmarker-setup
- bmarker-setup-set
subcommands: [] subcommands: []

View File

@ -121,7 +121,8 @@ Settings:
# For example "imageframe.createlimit.vip" # For example "imageframe.createlimit.vip"
# Players with no groups will be treated as "default" unless they have "imageframe.createlimit.unlimited" # Players with no groups will be treated as "default" unless they have "imageframe.createlimit.unlimited"
PlayerCreationLimit: PlayerCreationLimit:
default: 10 default: 3
role_elder: 10
vip: 15 vip: 15
moderator: 20 moderator: 20
# Max amount of markers on an individual map # Max amount of markers on an individual map

View File

@ -404,7 +404,7 @@ auto-install-translations: true
meta-formatting: meta-formatting:
prefix: prefix:
format: format:
- highest_on_track_staff - highest_on_track_roles
- highest_on_track_clans - highest_on_track_clans
duplicates: first-only duplicates: first-only

View File

@ -220,11 +220,11 @@ proximity:
- world - world
distance: 24 distance: 24
frustumCulling: frustumCulling:
enabled: true enabled: false
minDistance: 3.0 minDistance: 3.0
fov: 80.0 fov: 80.0
rayCastCheck: rayCastCheck:
enabled: true enabled: false
onlyCheckCenter: true onlyCheckCenter: true
useBlockBelow: true useBlockBelow: true
hiddenBlocks: hiddenBlocks:

BIN
src/plugins/SeeMore-1.0.2.jar (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,20 @@
# Configuration for SeeMore.
# Please don't change this!
version: 2
# The delay (in ticks) before a player's view distance is lowered after their client settings change.
# * This stops players overloading the server by constantly changing their view distance.
update-delay: 600
# Whether the plugin should log to the console when it changes a player's view distance.
log-changes: true
# These settings can be specified per world.
# * Note: If a world is not listed here or if a setting is missing, it will use the settings listed under the default
# section.
world-settings:
default:
# The maximum view distance a player in this world can have.
# Set to -1 to use the server's configured view distance for this world.
maximum-view-distance: -1

View File

@ -41,7 +41,7 @@ suppress-text-component-conversion-warnings: true
# #
# What is the maximum per second a client can send (Use %pps to display their pps) # What is the maximum per second a client can send (Use %pps to display their pps)
# Use -1 to disable. # Use -1 to disable.
max-pps: 800 max-pps: -1
max-pps-kick-msg: You are sending too many packets! max-pps-kick-msg: You are sending too many packets!
# #
# We can also kick them if over a period they send over a threshold a certain amount of times. # We can also kick them if over a period they send over a threshold a certain amount of times.

View File

@ -53,7 +53,7 @@ resource-pack-sha1=
server-ip= server-ip=
server-name=Unknown Server server-name=Unknown Server
server-port=25565 server-port=25565
simulation-distance=10 simulation-distance=8
spawn-animals=true spawn-animals=true
spawn-monsters=true spawn-monsters=true
spawn-npcs=true spawn-npcs=true
@ -61,5 +61,5 @@ spawn-protection=0
sync-chunk-writes=true sync-chunk-writes=true
text-filtering-config= text-filtering-config=
use-native-transport=true use-native-transport=true
view-distance=10 view-distance=8
white-list=false white-list=false