Skip to content

Commit

Permalink
Merge pull request #1315 from GiganticMinecraft/develop
Browse files Browse the repository at this point in the history
  • Loading branch information
KisaragiEffective authored Jan 16, 2022
2 parents ff5019f + daf041c commit 1c33932
Show file tree
Hide file tree
Showing 5 changed files with 33 additions and 117 deletions.
12 changes: 12 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,18 @@ DockerマシンのIPアドレス(Linux等なら`localhost`)を`DOCKER_IP`とし
- [gachadata.sql](https://redmine.seichi.click/attachments/download/895/gachadata.sql) -> import to "gachadata" table.
- [msgachadata.sql](https://redmine.seichi.click/attachments/download/894/msgachadata.sql) -> import to "msgachadata" table.

### どうしてもローカルにJavaとかsbtを入れたくない人のための救済策

VSCode + WSLで開発している場合や、純粋にビルドして立ち上げたいだけの場合はランタイムの導入のコストが高いので、以下の方法を使うと便利です。

```bash
$ rm -rf target/build # 再ビルドしたいなら既存のターゲットは削除
$ docker run --rm -it -v `pwd`:/app ghcr.io/giganticminecraft/seichiassist-builder:1a64049 sh -c "cd /app && sbt assembly"
$ sudo chown -R `whoami` target/build # docker上でsbtを実行するとrootになってしまうため権限を変える
$ cp -n docker/spigot/eula.txt docker/spigot/serverfiles/eula.txt || true
$ docker-compose up --build -d
```

## protocolディレクトリ以下のクローン
protocol以下のファイルは`git clone`では入手することができません。以下のどちらかのコマンドを実行してください:
* `git clone --recursive`
Expand Down
2 changes: 1 addition & 1 deletion build.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import java.io._
ThisBuild / scalaVersion := "2.13.1"
// ThisBuild / version はGitHub Actionsによって自動更新される。
// 次の行は ThisBuild / version := "(\d*)" の形式でなければならない。
ThisBuild / version := "23"
ThisBuild / version := "24"
ThisBuild / organization := "click.seichi"
ThisBuild / description := "ギガンティック☆整地鯖の独自要素を司るプラグイン"

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -577,61 +577,6 @@ class PlayerInventoryListener(implicit effectEnvironment: EffectEnvironment,
}

}

/**
* 名義除去システム
*/
@EventHandler
def onItemOwnerNameRemoveEvent(event: InventoryCloseEvent): Unit = {
val player = event.getPlayer match {
case p: Player => p
case _ => return
}
val inventory = event.getInventory

//インベントリサイズが36、あるいはインベントリのタイトルが予期したものでなければ処理を終了させる
if (inventory.row != 4 || inventory.getTitle != s"$GOLD${BOLD}所有者表記をなくしたいアイテムを投入してネ") return

val items: List[ItemStack] = inventory.getContents.toList
val shouldConvert = (item: ItemStack) => {
(item ne null) &&
item.hasItemMeta &&
item.getItemMeta.hasLore &&
Util.itemStackContainsOwnerName(item, player.getName)
}
val doConvert = (item: ItemStack) => {
val itemLore = item.getItemMeta.getLore.asScala.toList
//itemLoreのListの中から、"所有者"で始まるものを弾き、新しく「所有者:なし」を付け加えたLoreをアイテムにつける
val newItemLore = itemLore.map(lore =>
if (lore.startsWith("所有者")) "所有者:なし"
else lore
).asJava
val itemMeta = Bukkit.getItemFactory.getItemMeta(item.getType).tap { meta =>
import meta._
//所有者表記をなしにしたLoreを付与する
setLore(newItemLore)
}
new ItemStack(item.getType, item.getAmount).tap(_.setItemMeta(itemMeta))
}

val conversionResult = items.map { item =>
if (shouldConvert(item)) {
(doConvert(item), true)
} else {
(item, false)
}
}
val convertedCount = conversionResult.count(_._2)
val convertedItems = conversionResult.map(_._1)

SequentialEffect(
Util.grantItemStacksEffect(convertedItems: _*),
if (convertedCount == 0)
MessageEffect(s"${GREEN}所有者表記のされたアイテムが認識されませんでした。すべてのアイテムを返却します。")
else
MessageEffect(s"$GREEN${convertedCount}個のアイテムを認識し、所有者表記を「なし」に変更しました")
).run(player).unsafeRunSync()
}
}


Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,7 @@ object FirstPage extends Menu {
ChestSlotRef(1, 2) -> passiveSkillBookButton,
ChestSlotRef(1, 7) -> gachaPrizeExchangeButton,
ChestSlotRef(1, 8) -> oreExchangeButton,
ChestSlotRef(2, 0) -> homePointMenuButton,
ChestSlotRef(2, 5) -> fastCraftButton,
ChestSlotRef(3, 3) -> votePointMenuButton,
ChestSlotRef(3, 4) -> mapCommandButton,
Expand Down Expand Up @@ -638,6 +639,25 @@ object FirstPage extends Menu {
)
}

def homePointMenuButton(implicit ioCanOpenHomeMenu: IO CanOpen HomeMenu.type): Button = {
val iconItemStack =
new IconItemStackBuilder(Material.BED)
.title(s"$YELLOW$UNDERLINE${BOLD}ホームメニューを開く")
.lore(List(
s"$RESET${GRAY}ホームポイントに関するメニュー",
s"$RESET$DARK_RED${UNDERLINE}クリックで開く"
))
.build()

Button(
iconItemStack,
LeftClickButtonEffect(
FocusedSoundEffect(Sound.BLOCK_CHEST_OPEN, 1.0f, 1.5f),
ioCanOpenHomeMenu.open(HomeMenu)
)
)
}

val fastCraftButton: Button = {
val iconItemStack =
new IconItemStackBuilder(Material.WORKBENCH)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,6 @@ object SecondPage extends Menu {
ChestSlotRef(0, 8) -> hubCommandButton,
ChestSlotRef(3, 0) -> CommonButtons.openStickMenu,
ChestSlotRef(3, 3) -> recycleBinButton,
ChestSlotRef(3, 6) -> removeItemOwnerNameButton,
ChestSlotRef(3, 8) -> appleConversionButton
)

Expand Down Expand Up @@ -446,66 +445,6 @@ object SecondPage extends Menu {
)
}

val titanConversionButton: Button = {
val iconItemStack = new IconItemStackBuilder(Material.DIAMOND_AXE, durability = 1)
.title(s"$YELLOW$UNDERLINE${BOLD}限定タイタン修繕システム")
.lore(List(
s"$RESET${GREEN}不具合によりテクスチャが反映されなくなってしまった",
s"$RESET${GOLD}ホワイトデーイベント限定タイタン$RESET${GREEN}を修繕できます",
s"$RESET${GREEN}出てきたインベントリに",
s"$RESET${GREEN}修繕したいタイタンを入れて",
s"$RESET${GREEN}escキーを押してください",
s"$RESET${DARK_GRAY}たまにアイテムが消失しますが",
s"$RESET${DARK_GRAY}補償はしていません(ごめんなさい)",
s"$RESET${DARK_GRAY}神に祈りながら交換しよう",
s"$RESET$DARK_RED${UNDERLINE}クリックで開く"
))
.unbreakable()
.build()

Button(
iconItemStack,
action.FilteredButtonEffect(ClickEventFilter.LEFT_CLICK) { _ =>
SequentialEffect(
FocusedSoundEffect(Sound.BLOCK_CHEST_OPEN, 1.0f, 0.5f),
// TODO メニューインベントリに差し替える
openInventoryEffect(
createInventory(size = 4.chestRows, title = Some(s"$GOLD${BOLD}修繕したい限定タイタンを入れてネ"))
)
)
}
)
}

val removeItemOwnerNameButton: Button = {
val iconItemStack = new IconItemStackBuilder(Material.DIAMOND_BARDING)
.title(s"$YELLOW$UNDERLINE${BOLD}所有者表記削除システム")
.lore(
s"$RESET${GREEN}所有者表記のあるアイテムの所有者を",
s"$RESET${GOLD}「所有者:なし」$RESET${GREEN}に変更します",
s"$RESET${GREEN}出てきたインベントリに",
s"$RESET${GREEN}表記を削除したいアイテムを入れて",
s"$RESET${GREEN}escキーを押してください",
s"$RESET${DARK_GRAY}たまにアイテムが消失しますが",
s"$RESET${DARK_GRAY}補償はしていません(ごめんなさい)",
s"$RESET${DARK_GRAY}神に祈りながら交換しよう",
s"$RESET$DARK_RED${UNDERLINE}クリックで開く"
)
.unbreakable()
.build()
Button(
iconItemStack,
action.FilteredButtonEffect(ClickEventFilter.LEFT_CLICK) { _ =>
SequentialEffect(
FocusedSoundEffect(Sound.BLOCK_CHEST_OPEN, 1.0f, 0.5f),
openInventoryEffect(
createInventory(size = 4.chestRows, title = Some(s"$GOLD${BOLD}所有者表記をなくしたいアイテムを投入してネ"))
)
)
}
)
}

val recycleBinButton: Button = {
val iconItemStack = new IconItemStackBuilder(Material.BUCKET)
.title(s"$YELLOW$UNDERLINE${BOLD}ゴミ箱を開く")
Expand Down

0 comments on commit 1c33932

Please sign in to comment.