From 0ef964657b438ee9a93a8f33730decc9af89e17a Mon Sep 17 00:00:00 2001 From: Mick930 <71865901+Mick930@users.noreply.github.com> Date: Tue, 2 Dec 2025 16:58:05 +0700 Subject: [PATCH 1/7] add functions $getRegionMemberNames(regionName), $getTeamMemberNames(teamName) --- .../junon-io/server/entities/event_handler.js | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/packages/junon-io/server/entities/event_handler.js b/packages/junon-io/server/entities/event_handler.js index fe4bf423..2cbc9a7f 100644 --- a/packages/junon-io/server/entities/event_handler.js +++ b/packages/junon-io/server/entities/event_handler.js @@ -386,6 +386,20 @@ class EventHandler { return this.getAlivePlayerCountForRole(roleName) } + getTeamMemberNames(teamName) { + let team = this.game.getTeamByName(teamName) + if (!team) return + + return team.getMemberNamesJson(); + } + + getRegionPlayerNames(regionName) { + let region = this.sector.getRegion(regionName) + if (!region) return 0 + + return region.getMemberNamesJson() + } + getHunger(playerId) { let player = this.getPlayer(playerId) if (!player) return 0 @@ -1215,7 +1229,9 @@ class EventHandler { "$getTotalMobCount": true, "$getAngle": true, "$getUsage": true, - "$getCapacity": true + "$getCapacity": true, + "$getRegionMemberNames": true, + "$getTeamMemberNames": true } } From 675ca8c88cef386e68d9fbe5ab34ac255c2f9c7a Mon Sep 17 00:00:00 2001 From: Mick930 <71865901+Mick930@users.noreply.github.com> Date: Tue, 2 Dec 2025 17:28:08 +0700 Subject: [PATCH 2/7] Update main.ejs --- packages/junon-io/client/main.ejs | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/packages/junon-io/client/main.ejs b/packages/junon-io/client/main.ejs index a84f27b3..b819e2aa 100644 --- a/packages/junon-io/client/main.ejs +++ b/packages/junon-io/client/main.ejs @@ -1004,7 +1004,7 @@
/caption title $player has bought the rocket launcher!
At the end of the timer 'healthreset', loop and reset everyone's health (Timer:healthreset:end):
/timer start healthreset 10
-/sethealth @a 100
+/sethealth @a 100
+At the end of the timer 'arenatimer', start the intermission and congratulate them. (Timer:arenatimer:end)
+/chat @a Congrats to $getRegionMemberNames(arena) for winning the grand prize of a bajil-
+/give @a[region=arena] gold 100
+/tp @a[region=arena] (spawn coordinates)
+/timer start intermission 30
From cca35bceff1e60590ce774d9866caac5df63491e Mon Sep 17 00:00:00 2001 From: Mick930 <71865901+Mick930@users.noreply.github.com> Date: Tue, 2 Dec 2025 17:29:24 +0700 Subject: [PATCH 3/7] Update region.js --- packages/junon-io/server/entities/region.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/packages/junon-io/server/entities/region.js b/packages/junon-io/server/entities/region.js index d304133b..32e09d8d 100644 --- a/packages/junon-io/server/entities/region.js +++ b/packages/junon-io/server/entities/region.js @@ -224,6 +224,11 @@ class Region extends BaseTransientEntity { return players.length } + getMemberNamesJson() { + let players = this.sector.playerTree.search(this.getBoundingBox()) + return players.length + } + getBuildings() { return this.sector.buildingTree.search(this.getBoundingBox()) } From 6f9cdfd3326b5717d011f62fc2e87ee893e6907d Mon Sep 17 00:00:00 2001 From: Mick930 <71865901+Mick930@users.noreply.github.com> Date: Wed, 3 Dec 2025 10:45:20 +0700 Subject: [PATCH 4/7] Update mountable.js --- packages/junon-io/server/interfaces/mountable.js | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/packages/junon-io/server/interfaces/mountable.js b/packages/junon-io/server/interfaces/mountable.js index 5914f98d..2ad67548 100644 --- a/packages/junon-io/server/interfaces/mountable.js +++ b/packages/junon-io/server/interfaces/mountable.js @@ -9,7 +9,7 @@ Mountable.prototype = { mount(user) { if (this.passenger) return - if (this.game.distanceBetween(this, user) >= this.getInteractDistance()) { + if (isTooFar(user)) { if (user.isPlayer()) { user.showError("Too far", { isWarning: true }) } @@ -31,9 +31,21 @@ Mountable.prototype = { }, shouldUpdatePosition() { + return true + }, + + isMountable(user) { + if (this.passenger) return false + if (!isTooFar(user)) return false + return true } + isTooFar(user) { + if (this.game.distanceBetween(this, user) >= this.getInteractDistance()) { + return true + } + } } module.exports = Mountable From 089b625600f7afafc5d3fa48b0ca5fc4e5f6ea4f Mon Sep 17 00:00:00 2001 From: Mick930 <71865901+Mick930@users.noreply.github.com> Date: Wed, 3 Dec 2025 10:45:43 +0700 Subject: [PATCH 5/7] Update mountable.js --- packages/junon-io/server/interfaces/mountable.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/junon-io/server/interfaces/mountable.js b/packages/junon-io/server/interfaces/mountable.js index 2ad67548..19ae2603 100644 --- a/packages/junon-io/server/interfaces/mountable.js +++ b/packages/junon-io/server/interfaces/mountable.js @@ -39,7 +39,7 @@ Mountable.prototype = { if (!isTooFar(user)) return false return true - } + }, isTooFar(user) { if (this.game.distanceBetween(this, user) >= this.getInteractDistance()) { From a77f151d3453c9d4c5493fd2446228cc748c11f5 Mon Sep 17 00:00:00 2001 From: Mick930 <71865901+Mick930@users.noreply.github.com> Date: Wed, 3 Dec 2025 10:48:56 +0700 Subject: [PATCH 6/7] fix bug where MobMount triggered even though not mounted --- packages/junon-io/server/entities/mobs/base_mob.js | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/packages/junon-io/server/entities/mobs/base_mob.js b/packages/junon-io/server/entities/mobs/base_mob.js index 20cfc496..58c6be5e 100644 --- a/packages/junon-io/server/entities/mobs/base_mob.js +++ b/packages/junon-io/server/entities/mobs/base_mob.js @@ -824,12 +824,14 @@ class BaseMob extends BaseEntity { } mobMount(user) { - this.game.triggerEvent("MobMount", { - entityId: this.getId(), - entityType: this.getTypeName(), - playerId: user.getId(), - player: user.getName() - }) + if (this.isMountable(user)) { + this.game.triggerEvent("MobMount", { + entityId: this.getId(), + entityType: this.getTypeName(), + playerId: user.getId(), + player: user.getName() + }) + } this.mount(user) if (user.isPlayer()) { From 9ec2219f2dd8c769eef3874ae128416320269322 Mon Sep 17 00:00:00 2001 From: Mick930 <71865901+Mick930@users.noreply.github.com> Date: Wed, 3 Dec 2025 11:12:53 +0700 Subject: [PATCH 7/7] Update region.js --- packages/junon-io/server/entities/region.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/junon-io/server/entities/region.js b/packages/junon-io/server/entities/region.js index 32e09d8d..ef9bf7b1 100644 --- a/packages/junon-io/server/entities/region.js +++ b/packages/junon-io/server/entities/region.js @@ -226,7 +226,11 @@ class Region extends BaseTransientEntity { getMemberNamesJson() { let players = this.sector.playerTree.search(this.getBoundingBox()) - return players.length + let playerNames = [] + + Object.values(players).forEach(player => playerNames.push(player.name)); + + return playerNames.join(' ') } getBuildings() {