Skip to content

Commit 0366147

Browse files
kory33outductor
authored andcommitted
fix(build): org.bukkit.Material に対する match 式を if 式に置き換える
これでコンパイル時間が大幅に短縮される (2000秒 -> 110秒)。詳細は #2226 を参照のこと。
1 parent 4409f10 commit 0366147

File tree

4 files changed

+188
-216
lines changed

4 files changed

+188
-216
lines changed

src/main/scala/com/github/unchama/seichiassist/listener/invlistener/OnClickTitleMenu.scala

+139-161
Original file line numberDiff line numberDiff line change
@@ -76,187 +76,165 @@ object OnClickTitleMenu {
7676
view.getTitle match {
7777
case MenuType.HEAD.invName =>
7878
event.setCancelled(true)
79-
mat match {
80-
case Material.WATER_BUCKET =>
81-
clickedSound(player, Sound.BLOCK_STONE_BUTTON_CLICK_ON, 1.0f)
82-
83-
val id = current.getItemMeta.getDisplayName.toInt
84-
val length = Nicknames
85-
.getCombinedNicknameFor(id, pd.settings.nickname.id2, pd.settings.nickname.id3)
86-
.getOrElse("")
87-
.length
88-
if (length > MAX_LENGTH) {
89-
player.sendMessage(LENGTH_LIMIT_EXCEEDED)
90-
} else {
91-
pd.updateNickname(id1 = id)
92-
player.sendMessage(
93-
"前パーツ「" + Nicknames
94-
.getHeadPartFor(pd.settings.nickname.id1)
95-
.getOrElse("") + "」をセットしました。"
96-
)
97-
}
98-
99-
case Material.GRASS =>
100-
// unselect
101-
clickedSound(player, Sound.BLOCK_STONE_BUTTON_CLICK_ON, 1.0f)
102-
pd.updateNickname(id1 = 0)
103-
player.sendMessage("前パーツの選択を解除しました。")
104-
105-
case Material.BARRIER =>
106-
clickedSound(player, Sound.BLOCK_FENCE_GATE_OPEN, 0.1f)
107-
ioCanOpenNicknameMenu.open(NickNameMenu).apply(player).unsafeRunAsyncAndForget()
108-
109-
case _ if isSkull && isApplicableAsNextPageButton(current) =>
110-
// 次ページ
111-
clickedSound(player, Sound.BLOCK_FENCE_GATE_OPEN, 0.1f)
112-
val uuid = player.getUniqueId
113-
val menuType = MenuInventoryData.MenuType.HEAD
114-
MenuInventoryData.setHeadingIndex(
115-
uuid,
116-
menuType,
117-
MenuInventoryData.getHeadingIndex(uuid, menuType).get + PER_PAGE
79+
if (mat == Material.WATER_BUCKET) {
80+
clickedSound(player, Sound.BLOCK_STONE_BUTTON_CLICK_ON, 1.0f)
81+
82+
val id = current.getItemMeta.getDisplayName.toInt
83+
val length = Nicknames
84+
.getCombinedNicknameFor(id, pd.settings.nickname.id2, pd.settings.nickname.id3)
85+
.getOrElse("")
86+
.length
87+
if (length > MAX_LENGTH) {
88+
player.sendMessage(LENGTH_LIMIT_EXCEEDED)
89+
} else {
90+
pd.updateNickname(id1 = id)
91+
player.sendMessage(
92+
"前パーツ「" + Nicknames
93+
.getHeadPartFor(pd.settings.nickname.id1)
94+
.getOrElse("") + "」をセットしました。"
11895
)
119-
player.openInventory(MenuInventoryData.computeHeadPartCustomMenu(player))
120-
121-
case _ =>
96+
}
97+
} else if (mat == Material.GRASS) {
98+
// unselect
99+
clickedSound(player, Sound.BLOCK_STONE_BUTTON_CLICK_ON, 1.0f)
100+
pd.updateNickname(id1 = 0)
101+
player.sendMessage("前パーツの選択を解除しました。")
102+
} else if (mat == Material.BARRIER) {
103+
clickedSound(player, Sound.BLOCK_FENCE_GATE_OPEN, 0.1f)
104+
ioCanOpenNicknameMenu.open(NickNameMenu).apply(player).unsafeRunAsyncAndForget()
105+
} else if (isSkull && isApplicableAsNextPageButton(current)) {
106+
// 次ページ
107+
clickedSound(player, Sound.BLOCK_FENCE_GATE_OPEN, 0.1f)
108+
val uuid = player.getUniqueId
109+
val menuType = MenuInventoryData.MenuType.HEAD
110+
MenuInventoryData.setHeadingIndex(
111+
uuid,
112+
menuType,
113+
MenuInventoryData.getHeadingIndex(uuid, menuType).get + PER_PAGE
114+
)
115+
player.openInventory(MenuInventoryData.computeHeadPartCustomMenu(player))
122116
}
123117

124118
case MenuType.MIDDLE.invName =>
125119
event.setCancelled(true)
126-
mat match {
127-
case Material.MILK_BUCKET =>
128-
clickedSound(player, Sound.BLOCK_STONE_BUTTON_CLICK_ON, 1.0f)
129-
130-
val id = current.getItemMeta.getDisplayName.toInt
131-
val length = Nicknames
132-
.getCombinedNicknameFor(pd.settings.nickname.id1, id, pd.settings.nickname.id3)
133-
.getOrElse("")
134-
.length
135-
if (length > MAX_LENGTH) {
136-
player.sendMessage(LENGTH_LIMIT_EXCEEDED)
137-
} else {
138-
pd.updateNickname(id2 = id)
139-
player.sendMessage(
140-
"中パーツ「" + Nicknames
141-
.getMiddlePartFor(pd.settings.nickname.id2)
142-
.getOrElse("") + "」をセットしました。"
143-
)
144-
}
145120

146-
case Material.GRASS =>
147-
clickedSound(player, Sound.BLOCK_STONE_BUTTON_CLICK_ON, 1.0f)
148-
pd.updateNickname(id2 = 0)
149-
player.sendMessage("中パーツの選択を解除しました。")
150-
151-
case Material.BARRIER =>
152-
clickedSound(player, Sound.BLOCK_FENCE_GATE_OPEN, 0.1f)
153-
ioCanOpenNicknameMenu.open(NickNameMenu).apply(player).unsafeRunAsyncAndForget()
154-
155-
case _ if isSkull && isApplicableAsNextPageButton(current) =>
156-
clickedSound(player, Sound.BLOCK_FENCE_GATE_OPEN, 0.1f)
157-
val uuid = player.getUniqueId
158-
val menuType = MenuInventoryData.MenuType.MIDDLE
159-
MenuInventoryData.setHeadingIndex(
160-
uuid,
161-
menuType,
162-
MenuInventoryData.getHeadingIndex(uuid, menuType).get + PER_PAGE
121+
if (mat == Material.MILK_BUCKET) {
122+
clickedSound(player, Sound.BLOCK_STONE_BUTTON_CLICK_ON, 1.0f)
123+
124+
val id = current.getItemMeta.getDisplayName.toInt
125+
val length = Nicknames
126+
.getCombinedNicknameFor(pd.settings.nickname.id1, id, pd.settings.nickname.id3)
127+
.getOrElse("")
128+
.length
129+
if (length > MAX_LENGTH) {
130+
player.sendMessage(LENGTH_LIMIT_EXCEEDED)
131+
} else {
132+
pd.updateNickname(id2 = id)
133+
player.sendMessage(
134+
"中パーツ「" + Nicknames
135+
.getMiddlePartFor(pd.settings.nickname.id2)
136+
.getOrElse("") + "」をセットしました。"
163137
)
164-
player.openInventory(MenuInventoryData.computeMiddlePartCustomMenu(player))
165-
166-
case _ =>
138+
}
139+
} else if (mat == Material.GRASS) {
140+
clickedSound(player, Sound.BLOCK_STONE_BUTTON_CLICK_ON, 1.0f)
141+
pd.updateNickname(id2 = 0)
142+
player.sendMessage("中パーツの選択を解除しました。")
143+
} else if (mat == Material.BARRIER) {
144+
clickedSound(player, Sound.BLOCK_FENCE_GATE_OPEN, 0.1f)
145+
ioCanOpenNicknameMenu.open(NickNameMenu).apply(player).unsafeRunAsyncAndForget()
146+
} else if (isSkull && isApplicableAsNextPageButton(current)) {
147+
clickedSound(player, Sound.BLOCK_FENCE_GATE_OPEN, 0.1f)
148+
val uuid = player.getUniqueId
149+
val menuType = MenuInventoryData.MenuType.MIDDLE
150+
MenuInventoryData.setHeadingIndex(
151+
uuid,
152+
menuType,
153+
MenuInventoryData.getHeadingIndex(uuid, menuType).get + PER_PAGE
154+
)
155+
player.openInventory(MenuInventoryData.computeMiddlePartCustomMenu(player))
167156
}
168157

169158
case MenuType.TAIL.invName =>
170159
event.setCancelled(true)
171-
mat match {
172-
case Material.LAVA_BUCKET =>
173-
clickedSound(player, Sound.BLOCK_STONE_BUTTON_CLICK_ON, 1.0f)
174-
175-
val id = current.getItemMeta.getDisplayName.toInt
176-
val length = Nicknames
177-
.getCombinedNicknameFor(pd.settings.nickname.id1, pd.settings.nickname.id2, id)
178-
.getOrElse("")
179-
.length
180-
if (length > MAX_LENGTH) {
181-
player.sendMessage(LENGTH_LIMIT_EXCEEDED)
182-
} else {
183-
pd.updateNickname(id3 = id)
184-
player.sendMessage(
185-
"後パーツ「" + Nicknames
186-
.getTailPartFor(pd.settings.nickname.id3)
187-
.getOrElse("") + "」をセットしました。"
188-
)
189-
}
190-
191-
case Material.GRASS =>
192-
clickedSound(player, Sound.BLOCK_STONE_BUTTON_CLICK_ON, 1.0f)
193-
pd.updateNickname(id3 = 0)
194-
player.sendMessage("後パーツの選択を解除しました。")
195-
196-
case Material.BARRIER =>
197-
clickedSound(player, Sound.BLOCK_FENCE_GATE_OPEN, 0.1f)
198-
ioCanOpenNicknameMenu.open(NickNameMenu).apply(player).unsafeRunAsyncAndForget()
199160

200-
case _ if isSkull && isApplicableAsNextPageButton(current) =>
201-
clickedSound(player, Sound.BLOCK_FENCE_GATE_OPEN, 0.1f)
202-
val uuid = player.getUniqueId
203-
val menuType = MenuInventoryData.MenuType.TAIL
204-
MenuInventoryData.setHeadingIndex(
205-
uuid,
206-
menuType,
207-
MenuInventoryData.getHeadingIndex(uuid, menuType).get + PER_PAGE
161+
if (mat == Material.LAVA_BUCKET) {
162+
clickedSound(player, Sound.BLOCK_STONE_BUTTON_CLICK_ON, 1.0f)
163+
164+
val id = current.getItemMeta.getDisplayName.toInt
165+
val length = Nicknames
166+
.getCombinedNicknameFor(pd.settings.nickname.id1, pd.settings.nickname.id2, id)
167+
.getOrElse("")
168+
.length
169+
if (length > MAX_LENGTH) {
170+
player.sendMessage(LENGTH_LIMIT_EXCEEDED)
171+
} else {
172+
pd.updateNickname(id3 = id)
173+
player.sendMessage(
174+
"後パーツ「" + Nicknames
175+
.getTailPartFor(pd.settings.nickname.id3)
176+
.getOrElse("") + "」をセットしました。"
208177
)
209-
player.openInventory(MenuInventoryData.computeTailPartCustomMenu(player))
210-
211-
case _ =>
178+
}
179+
} else if (mat == Material.GRASS) {
180+
clickedSound(player, Sound.BLOCK_STONE_BUTTON_CLICK_ON, 1.0f)
181+
pd.updateNickname(id3 = 0)
182+
player.sendMessage("後パーツの選択を解除しました。")
183+
} else if (mat == Material.BARRIER) {
184+
clickedSound(player, Sound.BLOCK_FENCE_GATE_OPEN, 0.1f)
185+
ioCanOpenNicknameMenu.open(NickNameMenu).apply(player).unsafeRunAsyncAndForget()
186+
} else if (isSkull && isApplicableAsNextPageButton(current)) {
187+
clickedSound(player, Sound.BLOCK_FENCE_GATE_OPEN, 0.1f)
188+
val uuid = player.getUniqueId
189+
val menuType = MenuInventoryData.MenuType.TAIL
190+
MenuInventoryData.setHeadingIndex(
191+
uuid,
192+
menuType,
193+
MenuInventoryData.getHeadingIndex(uuid, menuType).get + PER_PAGE
194+
)
195+
player.openInventory(MenuInventoryData.computeTailPartCustomMenu(player))
212196
}
213197

214198
case MenuType.SHOP.invName =>
215199
event.setCancelled(true)
216-
mat match {
200+
if (mat == Material.EMERALD_ORE) {
217201
// 実績ポイント最新化
218-
case Material.EMERALD_ORE =>
219-
clickedSound(player, Sound.BLOCK_STONE_BUTTON_CLICK_ON, 1.0f)
220-
pd.recalculateAchievePoint()
221-
pd.samepageflag = true
222-
player.openInventory(MenuInventoryData.computePartsShopMenu(player))
223-
202+
clickedSound(player, Sound.BLOCK_STONE_BUTTON_CLICK_ON, 1.0f)
203+
pd.recalculateAchievePoint()
204+
pd.samepageflag = true
205+
player.openInventory(MenuInventoryData.computePartsShopMenu(player))
206+
} else if (mat == Material.BEDROCK) {
224207
// 購入処理
225-
case Material.BEDROCK =>
226-
clickedSound(player, Sound.BLOCK_STONE_BUTTON_CLICK_ON, 1.0f)
227-
228-
val num = current.getItemMeta.getDisplayName.toInt
229-
val isHead = num < 9900
230-
val required = if (isHead) 20 else 35
231-
val getPart = if (isHead) { num => Nicknames.getHeadPartFor(num) }
232-
else { num => Nicknames.getMiddlePartFor(num) }
233-
234-
if (pd.achievePoint.left >= required) {
235-
pd.TitleFlags.addOne(num)
236-
pd.consumeAchievePoint(required)
237-
player.sendMessage("パーツ「" + getPart(num).getOrElse("") + "」を購入しました。")
238-
pd.samepageflag = true
239-
player.openInventory(MenuInventoryData.computePartsShopMenu(player))
240-
} else {
241-
player.sendMessage("実績ポイントが不足しています。")
242-
}
243-
244-
case Material.BARRIER =>
245-
clickedSound(player, Sound.BLOCK_FENCE_GATE_OPEN, 0.1f)
246-
ioCanOpenNicknameMenu.open(NickNameMenu).apply(player).unsafeRunAsyncAndForget()
247-
248-
case _ if isSkull && isApplicableAsNextPageButton(current) =>
249-
clickedSound(player, Sound.BLOCK_FENCE_GATE_OPEN, 0.1f)
250-
val uuid = player.getUniqueId
251-
val menuType = MenuInventoryData.MenuType.SHOP
252-
MenuInventoryData.setHeadingIndex(
253-
uuid,
254-
menuType,
255-
MenuInventoryData.getHeadingIndex(uuid, menuType).get + PER_PAGE
256-
)
208+
clickedSound(player, Sound.BLOCK_STONE_BUTTON_CLICK_ON, 1.0f)
209+
210+
val num = current.getItemMeta.getDisplayName.toInt
211+
val isHead = num < 9900
212+
val required = if (isHead) 20 else 35
213+
val getPart = if (isHead) { num => Nicknames.getHeadPartFor(num) }
214+
else { num => Nicknames.getMiddlePartFor(num) }
215+
216+
if (pd.achievePoint.left >= required) {
217+
pd.TitleFlags.addOne(num)
218+
pd.consumeAchievePoint(required)
219+
player.sendMessage("パーツ「" + getPart(num).getOrElse("") + "」を購入しました。")
220+
pd.samepageflag = true
257221
player.openInventory(MenuInventoryData.computePartsShopMenu(player))
258-
259-
case _ =>
222+
} else {
223+
player.sendMessage("実績ポイントが不足しています。")
224+
}
225+
} else if (mat == Material.BARRIER) {
226+
clickedSound(player, Sound.BLOCK_FENCE_GATE_OPEN, 0.1f)
227+
ioCanOpenNicknameMenu.open(NickNameMenu).apply(player).unsafeRunAsyncAndForget()
228+
} else if (isSkull && isApplicableAsNextPageButton(current)) {
229+
clickedSound(player, Sound.BLOCK_FENCE_GATE_OPEN, 0.1f)
230+
val uuid = player.getUniqueId
231+
val menuType = MenuInventoryData.MenuType.SHOP
232+
MenuInventoryData.setHeadingIndex(
233+
uuid,
234+
menuType,
235+
MenuInventoryData.getHeadingIndex(uuid, menuType).get + PER_PAGE
236+
)
237+
player.openInventory(MenuInventoryData.computePartsShopMenu(player))
260238
}
261239

262240
// それ以外のインベントリの名前だった場合何もしない!

src/main/scala/com/github/unchama/seichiassist/seichiskill/BlockSearching.scala

+10-10
Original file line numberDiff line numberDiff line change
@@ -38,17 +38,17 @@ object BlockSearching {
3838
case XYZTuple(x, y, z) =>
3939
val targetBlock = referencePoint.getRelative(x, y, z)
4040

41-
if (BreakUtil.canBreakWithSkill(player, targetBlock, lockedBlocks))
42-
targetBlock.getType match {
43-
case Material.LAVA =>
44-
lavaBlocks.add(targetBlock)
45-
case Material.WATER =>
46-
waterBlocks.add(targetBlock)
47-
case _ =>
48-
MaterialSets
49-
.refineBlock(targetBlock, MaterialSets.materials)
50-
.foreach(b => solidBlocks.add(b))
41+
if (BreakUtil.canBreakWithSkill(player, targetBlock, lockedBlocks)) {
42+
if (targetBlock.getType == Material.LAVA) {
43+
lavaBlocks.add(targetBlock)
44+
} else if (targetBlock.getType == Material.WATER) {
45+
waterBlocks.add(targetBlock)
46+
} else {
47+
MaterialSets
48+
.refineBlock(targetBlock, MaterialSets.materials)
49+
.foreach(b => solidBlocks.add(b))
5150
}
51+
}
5252
}
5353

5454
Result(solidBlocks.toList, waterBlocks.toList, lavaBlocks.toList)

src/main/scala/com/github/unchama/seichiassist/seichiskill/SkillRange.scala

+8-10
Original file line numberDiff line numberDiff line change
@@ -41,24 +41,22 @@ object AssaultSkillRange {
4141
}
4242

4343
case class Water(effectChunkSize: XYZTuple) extends AssaultSkillRange {
44-
override val blockMaterialConversion: Material => Material = {
45-
case Material.WATER => Material.ICE
46-
case x => x
44+
override val blockMaterialConversion: Material => Material = { m =>
45+
if (m == Material.WATER) Material.ICE else m
4746
}
4847
}
4948

5049
case class Lava(effectChunkSize: XYZTuple) extends AssaultSkillRange {
51-
override val blockMaterialConversion: Material => Material = {
52-
case Material.LAVA => Material.MAGMA_BLOCK
53-
case x => x
50+
override val blockMaterialConversion: Material => Material = { m =>
51+
if (m == Material.LAVA) Material.MAGMA_BLOCK else m
5452
}
5553
}
5654

5755
case class Liquid(effectChunkSize: XYZTuple) extends AssaultSkillRange {
58-
override val blockMaterialConversion: Material => Material = {
59-
case Material.WATER => Material.ICE
60-
case Material.LAVA => Material.MAGMA_BLOCK
61-
case x => x
56+
override val blockMaterialConversion: Material => Material = { m =>
57+
if (m == Material.WATER) Material.ICE
58+
else if (m == Material.LAVA) Material.MAGMA_BLOCK
59+
else m
6260
}
6361
}
6462

0 commit comments

Comments
 (0)