比良坂のBlogへようこそ!

2006 年 3 月 6 日 Comments off

名前とメールアドレスは入力しなくてもコメント投稿できるようにしましたが、名前くらいは入れてください。
名前のない投稿や、エントリーに関連性がないと思われるコメントやトラックバックは、管理人の判断で削除される場合があります。

尚、2つ以上の Link がコメントに含まれると、管理人の認証待ちになりますのでご了承ください。

コメントに “にょろ” を使うと、文字化けになっていましたが、数年越しに直すことができました。
MySQL の 「照合順序」 によるものらしいですがよくわかりません。
ご不便をおかけしました。

Twitter: @hiraweb

以下 自己紹介らしい
(さらに…)

カテゴリー: General タグ:

マインクラフト統合版セットアップ覚え書き

2024 年 1 月 16 日 コメントはありません
  • server.properties
/opt/app/mincraft-be/server.properties
server-name=Dedicated Server
gamemode=survival
force-gamemode=false
difficulty=easy
allow-cheats=false
max-players=10
online-mode=true
allow-list=false
server-port=19132
server-portv6=19133
enable-lan-visibility=false
view-distance=12
tick-distance=8
player-idle-timeout=0
max-threads=8
level-name=dmC2YpSuAgA_
level-seed=
default-player-permission-level=member
texturepack-required=false
content-log-file-enabled=true
compression-threshold=1
compression-algorithm=zlib
server-authoritative-movement=server-auth
player-movement-score-threshold=20
player-movement-action-direction-threshold=0.85
player-movement-distance-threshold=0.3
player-movement-duration-threshold-in-ms=500
correct-player-movement=false
server-authoritative-block-breaking=false
chat-restriction=None
disable-player-interaction=false
client-side-chunk-generation-enabled=true
block-network-ids-are-hashes=true
disable-persona=false
disable-custom-skins=false
server-build-radius-ratio=Disabled
allow-outbound-script-debugging=false
allow-inbound-script-debugging=false
script-debugger-auto-attach=disabled
  • script一覧
/opt/scripts/bedrock-start.sh
#!/usr/bin/bash

SERVICE_NAME=bedrock.service
SCREEN_NAME=minecraft

f_service_start(){
  screen -S ${SCREEN_NAME} -D -m /opt/app/mincraft-be/bedrock_server
}

f_service_start
sleep 10
/opt/scripts/bedrock-set-options.sh
/opt/scripts/bedrock-set-options.sh
#!/usr/bin/bash

SCREEN_NAME=minecraft
RULES_LIST=/opt/scripts/gamerule-be.list

f_set-options(){

  sed -e /"^\s*\t*\s*#\|^\s*\t*\s*$"/d ${RULES_LIST} > setruleslist
  while read RULES ; do
    screen -S ${SCREEN_NAME} -X eval "stuff \"gamerule ${RULES}\015\""
  done < setruleslist
  rm setruleslist
}

f_set-options
/opt/scripts/gamerule-be.list
pvp                       FALSE
showCoordinates           TRUE
#doFireTick                TRUE
#recipesunlock             TRUE
#dolimitedcrafting         FALSE
#tntExplodes               TRUE
#respawnBlocksExplode      TRUE
#doMobLoot                 TRUE
#naturalRegeneration       TRUE
#doTileDrops               TRUE
#doImmediateRespawn        FALSE
#spawnRadius               5

#drowningDamage            TRUE
#fallDamage                TRUE
#fireDamage                TRUE
#freezeDamage              TRUE

#doDaylightCycle           TRUE
#keepInventory             FALSE
#doMobSpawning             TRUE
#doInsomnia                TRUE
#mobGriefing               TRUE
#doEntityDrops             TRUE
#doWeatherCycle            TRUE
#randomTickSpeed           2

#commandBlocksEnabled      TRUE
#commandBlockOutput        TRUE
#sendCommandFeedback       TRUE
#maxCommandChainLength     65536

#functionCommandLimit      10000
#showDeathMessages         TRUE
#showTags                  TRUE

#showbordereffect          TRUE
#showrecipemessages        TRUE
#playerssleepingpercentage 100
#projectilescanbreakblocks TRUE
/opt/scripts/minecraft_backup.sh
#!/usr/bin/bash


MINECRAFT_DIR=/opt/app/mincraft-be
BACKUP_DIR=/home/shuhei/bedrock-backup
BACKUP_age=8
ANNOUNCE_TIME=30

SERVICE_NAME=bedrock.service
SCREEN_NAME=minecraft

LOG_DIR=/home/shuhei/logs/minecraft


DATETIME=$(date +%Y%m%d-%H%M%S)

WORLDNAME=$(cat ${MINECRAFT_DIR}/server.properties | egrep -v "^#" | egrep "level-name" | cut -d= -f 2)
WORLD_DIR=${MINECRAFT_DIR}/worlds/${WORLDNAME}/
ARCHIVE_NAME=${WORLDNAME}_${DATETIME}.tar


#SCREEN_NAME=$(screen -ls | grep minecraft | awk -F\  '{print $1}')

f_stopService(){
  sudo systemctl stop $SERVICE_NAME
}

f_startService(){
  sudo systemctl start $SERVICE_NAME

  sleep 10

  screen -S ${SCREEN_NAME} -X eval "stuff \"gamerule showcoordinates true\015\""
  screen -S ${SCREEN_NAME} -X eval "stuff \"gamerule pvp false\015\""
}

f_compressLog(){
  if [ ! -d ${LOG_DIR} ] ; then
    mkdir -p ${LOG_DIR}
  fi

  FILECOUNT=$(ls ${LOG_DIR} | wc -l)
  TARGET_FILE=$(ls -tr ${LOG_DIR} | tail -n +${FILECOUNT})
  gzip ${LOG_DIR}/${TARGET_FILE}
}

f_backup_be(){
  if [ ! -d ${BACKUP_DIR} ] ; then
    mkdir -p ${BACKUP_DIR}
  fi

  sudo tar -cf ${BACKUP_DIR}/${ARCHIVE_NAME} ${WORLD_DIR}
  gzip ${BACKUP_DIR}/${ARCHIVE_NAME}

  BACKUP_age=$((BACKUP_age+1))
  for REMOVE_FILE in $(ls -t ${BACKUP_DIR} | tail -n +${BACKUP_age}) ; do
    rm ${BACKUP_DIR}/${REMOVE_FILE}
  done
}

f_countdown(){
  while [ $ANNOUNCE_TIME -gt 1 ] ; do

    FLAG=$((ANNOUNCE_TIME%10))

    if   [ $ANNOUNCE_TIME -le 5 ] ; then
      screen -S ${SCREEN_NAME} -X eval "stuff \"say このサーバーはメンテナンスのため約 ${ANNOUNCE_TIME} 分後に再 起動します\015\""
      sleep 2
      screen -S ${SCREEN_NAME} -X eval "stuff \"say 作業を中断しサーバーからログアウトしてください\015\""
      sleep 2
      screen -S ${SCREEN_NAME} -X eval "stuff \"say メンテナンスは 5分 程度を見込んでいます\015\""
    elif [ $FLAG -eq 0 ] ; then
      screen -S ${SCREEN_NAME} -X eval "stuff \"say このサーバーはメンテナンスのため約 ${ANNOUNCE_TIME} 分後に再 起動します\015\""
    fi

    sleep 1m
    ANNOUNCE_TIME=$((ANNOUNCE_TIME-1))
  done

  ANNOUNCE_TIME=60
  while [ $ANNOUNCE_TIME -gt 0 ] ; do
    screen -S ${SCREEN_NAME} -X eval "stuff \"say このサーバーはメンテナンスのため ${ANNOUNCE_TIME} 秒後に再起動 します\015\""
    sleep 1
    ANNOUNCE_TIME=$((ANNOUNCE_TIME-1))
  done

}

f_countdown

f_stopService

f_backup_be
f_compressLog

f_startService

ネットワークインターフェイス

sudo cat /etc/netplan/51-installer-config.yaml
# This is the network config written by 'subiquity'
network:
  ethernets:
    eth0:
      dhcp4: false
      dhcp6: false
      addresses:
        - 172.16.1.51/24
      routes:
        - {to: default, via: 172.16.1.2}
      nameservers:
        addresses:
          - 8.8.8.8
          - 8.8.4.4
    eth1:
      dhcp4: false
    eth2:
      dhcp4: false
    eth3:
      dhcp4: false
      dhcp6: false
      addresses:
        - 192.168.1.151/24
  version: 2

ファイアウォール ルール

sudo ufw status
状態: アクティブ

To                         Action      From
--                         ------      ----
22                         ALLOW       192.168.0.0/16
Apache Full                ALLOW       Anywhere
19132                      ALLOW       Anywhere
19133                      ALLOW       Anywhere
161/udp                    ALLOW       Anywhere
Apache Full (v6)           ALLOW       Anywhere (v6)
19132 (v6)                 ALLOW       Anywhere (v6)
19133 (v6)                 ALLOW       Anywhere (v6)
161/udp (v6)               ALLOW       Anywhere (v6)
  • Systemd登録
/etc/systemd/system/bedrock.service
[Unit]
Description=Minecraft Bedrock Server
After=network.target local-fs.target

[Service]
Type=simple
User=shuhei
Group=shuhei
WorkingDirectory=/opt/app/mincraft-be/
Environment=LD_LIBRARY_PATH=.
ExecStart=screen -S minecraft -D -m /opt/app/mincraft-be/bedrock_server
ExecStop=screen -S minecraft -X eval "stuff \"stop\015\""
Restart=always

[Install]
WantedBy=multi-user.target

ユニットを作成したら systemctl をリロードして登録、開始する

$ sudo systemctl daemon-reload
$ sudo systemctl enable bedrock
$ sudo systemctl start bedrock
カテゴリー: computer, Games タグ:

Hirasaka’s tweet for 2023-05-15

2023 年 5 月 15 日 Comments off
カテゴリー: twitter-archive タグ:

Hirasaka’s tweet for 2023-05-11

2023 年 5 月 11 日 Comments off
  • 最大震度5+
    びっくりしたー。。。 04:18:53
  • 津波の心配なしとのこと 04:20:29
カテゴリー: twitter-archive タグ:

Hirasaka’s tweet for 2023-05-10

2023 年 5 月 10 日 Comments off
  • 最近、銀座の高級腕時計店に強盗が入ったって事件があって「(特に店舗経営者が)犯罪から身を守るためには性善説をもとに行動しない」みたいなコメント見聞きしたんだけど、性善説って言葉の使われ方に違和感がありすぎて話が入ってこない…みたいな事象に名前をつけたい 05:07:37
カテゴリー: twitter-archive タグ:

Hirasaka’s tweet for 2023-05-09

2023 年 5 月 9 日 Comments off
  • 社給PCのスクリーンセイバー開始時間が短すぎて手元の資料をちょっと読んでるだけでロックされるから、15分くらいの無音動画を作って再生し続けるっていうハッキング← 12:09:19
カテゴリー: twitter-archive タグ:

Hirasaka’s tweet for 2023-05-08

2023 年 5 月 8 日 Comments off
カテゴリー: twitter-archive タグ:

Hirasaka’s tweet for 2023-05-06

2023 年 5 月 6 日 Comments off
カテゴリー: twitter-archive タグ:

Hirasaka’s tweet for 2023-04-22

2023 年 4 月 22 日 Comments off
カテゴリー: twitter-archive タグ:

Hirasaka’s tweet for 2023-04-10

2023 年 4 月 10 日 Comments off
  • 抽選販売で買ったPlayStation5が届いたけど、最近の有名ゲームはSteamでも出てるし何に使えばいいか思いつかないっていう 12:08:04
カテゴリー: twitter-archive タグ:

Hirasaka’s tweet for 2023-04-03

2023 年 4 月 3 日 Comments off
  • Amazonからプレステ5の購入抽選に当選した連絡きたけど、今となっては何をやりたくて欲しかったのか思い出せないんだが 01:49:06
カテゴリー: twitter-archive タグ:

Hirasaka’s tweet for 2023-04-02

2023 年 4 月 2 日 Comments off
  • 寝れなかったから Splatoon3サーモンラン 少しやったら物足りなくなってフェス始めちゃって思わず えいえん まで続けてしまった。。。 05:21:00
カテゴリー: twitter-archive タグ:

Hirasaka’s tweet for 2023-04-01

2023 年 4 月 1 日 Comments off
カテゴリー: twitter-archive タグ:

Hirasaka’s tweet for 2023-03-31

2023 年 3 月 31 日 Comments off
  • ああぁぁぁ給料日なのに財布忘れておろせない 12:41:05
カテゴリー: twitter-archive タグ: