UMUX Reference_10 - HonestSquare/UMUX GitHub Wiki

๊ฐœ์š”

  • ๋ณธ ๋ฌธ์„œ๋Š” API ๋ ˆ๋ฒจ 10(4.0 Dodoma)๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ž‘์„ฑ๋œ UMUX ๋ ˆํผ๋Ÿฐ์Šค์ž…๋‹ˆ๋‹ค.
  • Ctrl + F ๋˜๋Š” F3์„ ํ†ตํ•ด ๊ฐœ๋ณ„ ์—ด๋žŒ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๋ณ€์ˆ˜ ๋ฐ ํ•จ์ˆ˜ ์œ„์น˜

  • ๋ณ€์ˆ˜ ๋ฐ ํ•จ์ˆ˜ ์œ„์น˜๋Š” ์ด๋ฆ„์˜ ์ ‘๋‘์‚ฌ๋ฅผ ์šฐ์„ ํ•˜๋˜ ๋กœ๋งˆ์ž(A-Z) ์ˆœ๋Œ€๋กœ ์ •๋ ฌํ•˜์˜€์Šต๋‹ˆ๋‹ค.
์ ‘๋‘์‚ฌ ๋ชฉ๋ก
  • on
  • init
  • is(has), get(find)
  • set
  • add
  • update, check
  • clear, delete, reset
  • show
  • ์ƒ๊ธฐ ๋ชฉ๋ก์—์„œ ์ผ์น˜ํ•˜๋Š” ์ ‘๋‘์‚ฌ๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ, show ์ ‘๋‘์‚ฌ๋ณด๋‹ค๋„ ์•„๋ž˜์— ์œ„์น˜ํ•ด ๋‘์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๋‹ค๋งŒ ์ผ๋ถ€๋Š” ํŽธ์˜์ƒ์„ ์ด์œ ๋กœ ์˜ˆ์™ธ ์ •๋ ฌํ•œ ๊ณณ๋„ ์žˆ์–ด, ์†Œ์Šค ์ฝ”๋“œ์˜ ๋ชจ๋“  ๊ฐ์ฒด๊ฐ€ ์œ„์น˜๋ฅผ ์ด ๊ทœ์น™์— ๋”ฐ๋ผ ์ •๋ ฌ๋œ ๊ฑด ์•„๋‹™๋‹ˆ๋‹ค.

๋ชฉ์ฐจ

์ดˆ๊ธฐ ์„ค์ •

โ“˜โ–ฝ

const ROOMNAME

ROOMNAME: String

  • ์„œ๋ฒ„ ์ด๋ฆ„์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

const DESCRIPTION

DESCRIPTION: String

  • ์„œ๋ฒ„ ์„ค๋ช…์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

const MAXLIMIT

MAXLIMIT: Int

  • ์ตœ๋Œ€ ์ธ์›์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

const HOSTNAME

HOSTNAME: String

  • ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์„ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค

const PUBLIC

PUBLIC: Bool

  • ์„œ๋ฒ„ ๊ณต๊ฐœ ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค

const TOKEN

TOKEN: String

  • ๋งŒ๋ฃŒ๋˜์ง€ ์•Š์€ ๊ฐ’์„ ์ง€์ •ํ•˜๋ฉด ์„œ๋ฒ„ ์ดˆ๊ธฐํ™” ์งํ›„ recaptcha ์ธ์ฆ์„ ๊ฑด๋„ˆ๋œ๋‹ˆ๋‹ค
  • token์€ ์—ฌ๊ธฐ์„œ ๋ฐœ๊ธ‰ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

const NOPLAYER

NOPLAYER: Int

  • ํ˜ธ์ŠคํŠธ ๊ณต๊ฐœ ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค

const REGION_CODE

REGION_CODE: String

  • ์ง€์—ญ ์ฝ”๋“œ๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค

const LAT

LAT: Float

  • ์‹œ์Šคํ…œ์˜ ์œ„๋„๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค

const LON

LON: Float

  • ์‹œ์Šคํ…œ์˜ ๊ฒฝ๋„๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค

let PASSWORD

PASSWORD: String

  • ์‹œ์Šคํ…œ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

const MAXPLAYERS

MAXPLAYERS: Int

  • ์ตœ๋Œ€ ์ธ์›์„ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค

const INITSERVER

INITSERVER(str: String)

  • ์„œ๋ฒ„๋ฅผ ์ดˆ๊ธฐํ™” ํ•ฉ๋‹ˆ๋‹ค

const ROOM

ROOM: RoomObject

  • ์„œ๋ฒ„๋ฅผ ์ดˆ๊ธฐํ™” ํ•œ ๋’ค RoomObject๋ฅผ ์ƒ์ˆ˜์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค
  • ์„œ๋ฒ„ ์ดˆ๊ธฐํ™”๋ฅผ ์œ„ํ•ด HBInit(INITSERVER(PASSWORD))๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

๊ฒฝ๊ธฐ์žฅ ์ดˆ๊ธฐํ™”

โ“˜โ–ณโ–ฝ

let initStadiums

initStadiums(links: Array<String>)

  • ๊ฒฝ๊ธฐ์žฅ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ดˆ๊ธฐํ™” ํ•ฉ๋‹ˆ๋‹ค
  • ์™ธ๋ถ€ ๋งํฌ ์ ‘๊ทผ์ด ํ•„์š”ํ•˜๋ฉด requestStadium()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

let requestStadium

requestStadium(ln: String)

  • ๊ฒฝ๊ธฐ์žฅ์„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค
  • initStadiums()์—์„œ ๊ฒฝ๊ธฐ์žฅ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ดˆ๊ธฐํ™”๋ฅผ ์œ„ํ•ด ์ด ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

class GameManager

โ“˜โ–ณโ–ฝ

  • ๊ฒŒ์ž„์„ ์ „๋ฐ˜์ ์œผ๋กœ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค

constructor

constructor(afkLimitTime: Int, rptLimitTime: Int, timeLimit: Int)

  • _afkLimitTime: Int: ์žฅ๊ธฐ ๋ฌด์‘๋‹ต ํ”Œ๋ ˆ์ด์–ด ํŒ์ • ์ตœ์†Œ ์‹œ๊ฐ„์„ ์ดˆ ๋‹จ์œ„๋กœ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค
  • _repeatedLimitTim: Int: ๋ฐ˜๋ณต ์ฑ„ํŒ… ํŒ์ • ์ตœ๋Œ€ ์‹œ๊ฐ„์„ ๋ฐ€๋ฆฌ์ดˆ ๋‹จ์œ„๋กœ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค
  • _countMatch: Int: ๋ˆ„์  ๊ฒฝ๊ธฐ ํšŸ์ˆ˜๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค
  • _gameLink: String: ์„œ๋ฒ„ ๋งํฌ๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค
  • _gameEventStats: Int: ๊ฒฝ๊ธฐ ์ง„ํ–‰ ์ƒํƒœ๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค
  • _isRecording: Bool: ๋…นํ™” ์—ฌ๋ถ€๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค
  • _firstTimeNotifie: Float: ์ตœ์ดˆ ๋„๋‹ฌ ์‹œ๊ฐ„์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค
  • _lastTimeNotified: Float: ์ตœ๊ทผ ๋„๋‹ฌ ์‹œ๊ฐ„์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค
  • _timeLimit: Int: ๋„๋‹ฌ ๊ธฐ์ค€ ์‹œ๊ฐ„์„ ์ดˆ ๋‹จ์œ„๋กœ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค
  • _timeLimitReached: Bool: ์‹œ๊ฐ„ ๋„๋‹ฌ ์—ฌ๋ถ€๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

onGamePause

onGamePause(player: PlayerObject)

  • ๊ฒฝ๊ธฐ๊ฐ€ ์ค‘์ง€๋˜๋ฉด ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • _gameEventStats์˜ ๊ฐ’์„ c_GAME_STATS.PAUSE์œผ๋กœ ๊ฐฑ์‹ ํ•ฉ๋‹ˆ๋‹ค
  • ํ”Œ๋ ˆ์ด์–ด์˜ ๋™์ž‘์œผ๋กœ ํ˜ธ์ถœ๋œ ๊ฒฝ์šฐ, ํ™œ๋™ ์‹œ๊ฐ„์„ ๊ฐฑ์‹ ํ•˜๊ธฐ ์œ„ํ•ด PlayerManager ํด๋ž˜์Šค์˜ updateTime()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • goal ํƒ€์ด๋จธ๋ฅผ ์ง€์šฐ๊ธฐ ์œ„ํ•ด TimeManager ํด๋ž˜์Šค์˜ clearTimerByName()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • GUI ๊ฐฑ์‹ ์„ ์œ„ํ•ด GameSystem ํด๋ž˜์Šค์˜ updateWebGUI()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

onGameStart

onGameStart(player: PlayerObject)

  • ๊ฒฝ๊ธฐ๊ฐ€ ์‹œ์ž‘๋˜๋ฉด ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ๊ฒฝ๊ธฐ ์ œ์–ด ์ค€๋น„๋ฅผ ์œ„ํ•ด handleGameStart()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ์ฝ˜์†”์ฐฝ์— ๋ˆ„์  ๊ฒฝ๊ธฐ ํšŸ์ˆ˜๋ฅผ ๋ฉ”์‹œ์ง€๋กœ ๋„์›๋‹ˆ๋‹ค

onGameStop

onGameStop(player: PlayerObject)

  • ๊ฒฝ๊ธฐ๊ฐ€ ์ข…๋ฃŒ๋˜๋ฉด ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • _gameEventStats์˜ ๊ฐ’์„ c_GAME_STATS.STOP์œผ๋กœ ๊ฐฑ์‹ ํ•ฉ๋‹ˆ๋‹ค
  • ์„ ๋‘์ž ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ง€์šฐ๊ธฐ ์œ„ํ•ด ScoreManager ํด๋ž˜์Šค์˜ clearTouchedList()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • goal ํƒ€์ด๋จธ๋ฅผ ์ง€์šฐ๊ธฐ ์œ„ํ•ด TimeManager ํด๋ž˜์Šค์˜ clearTimerByName()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ํ”Œ๋ ˆ์ด์–ด์˜ ๋™์ž‘์œผ๋กœ ํ˜ธ์ถœ๋œ ๊ฒฝ์šฐ, ํ™œ๋™ ์‹œ๊ฐ„์„ ๊ฐฑ์‹ ํ•˜๊ธฐ ์œ„ํ•ด PlayerManager ํด๋ž˜์Šค์˜ updateTime()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • GUI ๊ฐฑ์‹ ์„ ์œ„ํ•ด GameSystem ํด๋ž˜์Šค์˜ updateWebGUI()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

onGameTick

onGameTick(void)

  • ๊ฒฝ๊ธฐ๊ฐ€ ์ง„ํ–‰๋˜๋Š” ๋™์•ˆ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ํ˜„์žฌ ์‹œ๊ฐ„ โ‰ฅ_firstTimeNotified + 100์„ ๋งŒ์กฑํ•˜๋ฉด _firstTimeNotified์˜ ๊ฐ’์„ ํ˜„์žฌ ์‹œ๊ฐ„์œผ๋กœ ๊ฐฑ์‹ ํ•ฉ๋‹ˆ๋‹ค
  • ๊ฒฝ๊ธฐ ์ œ์–ด๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด handleGameTick()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

onGameUnpause

onGameUnpause(player: PlayerObject)

  • ๊ฒฝ๊ธฐ๊ฐ€ ์žฌ๊ฐœ๋˜๋ฉด ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • _gameEventStats์˜ ๊ฐ’์„ c_GAME_STATS.TICK์œผ๋กœ ๊ฐฑ์‹ ํ•ฉ๋‹ˆ๋‹ค
  • ํ”Œ๋ ˆ์ด์–ด์˜ ๋™์ž‘์œผ๋กœ ํ˜ธ์ถœ๋œ ๊ฒฝ์šฐ, ํ™œ๋™ ์‹œ๊ฐ„์„ ๊ฐฑ์‹ ํ•˜๊ธฐ ์œ„ํ•ด PlayerManager ํด๋ž˜์Šค์˜ updateTime()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • GUI ๊ฐฑ์‹ ์„ ์œ„ํ•ด GameSystem ํด๋ž˜์Šค์˜ updateWebGUI()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

onKickRateLimitSet

onKickRateLimitSet(min: Int, rate: Int, burst: Int, player: PlayerObject)

  • ํ‚ฅ ์ œํ•œ์ด ์„ค์ •๋˜๋ฉด ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • min ๊ฐ’์€ ๋‘ ํ‚ฅ ๊ฐ„์˜ ์ตœ์†Œ ๋กœ์งํ”„๋ ˆ์ž„์ž…๋‹ˆ๋‹ค.
  • rate ๊ฐ’์€ burst์— ๋”ฐ๋ฅธ ์ถ”๊ฐ€ ํ‚ฅ์„ ์“ฐ๋Š” ๊ฐ’์ž…๋‹ˆ๋‹ค.
  • burst ๊ฐ’์€ ์ถ”๊ฐ€ ํ‚ฅ์„ ์ ˆ์•ฝํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ’์ž…๋‹ˆ๋‹ค.

onPlayerBallKick

onPlayerBallKick(player: PlayerObject)

  • ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ๊ณต์„ ์ฐจ๋ฉด ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ์„ ๋‘์ž ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ถ”๊ฐ€๋ฅผ ์œ„ํ•ด ScoreManager ํด๋ž˜์Šค์˜ addTouchedList()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

onPlayerJoin

onPlayerJoin(player: PlayerObject)

  • ์‹ ๊ทœ ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ์ ‘์†ํ•˜๋ฉด ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ํ”Œ๋ ˆ์ด์–ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ดˆ๊ธฐํ™”๋ฅผ ์œ„ํ•ด PlayerManager ํด๋ž˜์Šค์˜ initPlayerList()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • GUI์— ๋ช…๋‹จ์„ ์ถ”๊ฐ€ํ•˜๊ธฐ ์œ„ํ•ด GameSystem ํด๋ž˜์Šค์˜ addListIndex()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
	let hasVisitRecord = PM.updateAccount(player.id);	//	๊ณ„์ • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐฑ์‹ 
  • ๊ณ„์ • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐฑ์‹ ์„ ์œ„ํ•ด PlayerManager ํด๋ž˜์Šค์˜ updateAccount()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ๋ธ”๋ž™๋ฆฌ์ŠคํŠธ ์—ฌ๋ถ€๋ฅผ ํŒ์ •ํ•˜๊ธฐ ์œ„ํ•ด Administration ํด๋ž˜์Šค์˜ isBlacklist()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ์ค‘๋ณต ๋ฐ ๋‹ค์ค‘ ์ ‘์† ๊ฐ์ง€๋ฅผ ์œ„ํ•ด Administration ํด๋ž˜์Šค์˜ hasMatchedConnection()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ์ ‘์†์ž๊ฐ€ 2์ธ ๋ฏธ๋งŒ์ด๋ฉด ๋ ˆ๋“œํŒ€์œผ๋กœ ํˆฌ์ž…ํ•ฉ๋‹ˆ๋‹ค
  • ๊ถŒํ•œ ๊ฐฑ์‹ ์„ ์œ„ํ•ด Administration ํด๋ž˜์Šค์˜ updateAdmins()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ๋…นํ™” ์ค‘์ด๋ฉด ํ”Œ๋ ˆ์ด์–ด์—๊ฒŒ ๋ณ„๋„์˜ ๋ฉ”์‹œ์ง€๋ฅผ ์ „์†กํ•ฉ๋‹ˆ๋‹ค
  • ๋ชจ๋“  ๊ตฌ๋ฌธ์ด ์˜จ์ „ํ•˜๊ฒŒ ์ง„ํ–‰๋˜์—ˆ์œผ๋ฉด hasVisitRecord ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

onPlayerLeave

onPlayerLeave(player: PlayerSystem)

  • ์ ‘์†์ž๊ฐ€ ํ‡ด์žฅํ•˜๋ฉด ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ํ”Œ๋ ˆ์ด์–ด์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ง€์šฐ๊ธฐ ์œ„ํ•ด PlayerSystem ํด๋ž˜์Šค์˜ clearPlayer()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ์ ‘์†์ž๊ฐ€ ์žˆ์œผ๋ฉด ๊ถŒํ•œ ๊ฐฑ์‹ ์„ ์œ„ํ•ด Administration ํด๋ž˜์Šค์˜ updateAdmins()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ์ ‘์†์ž๊ฐ€ ์—†์œผ๋ฉด ๋น„๋ฐ€๋ฒˆํ˜ธ ๊ฐฑ์‹ ์„ ์œ„ํ•ด Administration ํด๋ž˜์Šค์˜ updatePassword()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ์ฝ˜์†”์ฐฝ์— ์ ‘์† ์ธ์›์„ ๋ฉ”์‹œ์ง€๋กœ ๋„์›๋‹ˆ๋‹ค

onPositionsReset

onPositionsReset(void)

  • ๊ณจ ํŒ์ • ์งํ›„ ํฌ์ง€์…˜์ด ์ดˆ๊ธฐํ™”๋˜๋ฉด ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

onRoomLink

onRoomLink(address: String)

  • ์‹œ์Šคํ…œ์—์„œ ๋งํฌ๊ฐ€ ์ƒ์„ฑ๋˜๋ฉด ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ์„œ๋ฒ„ ์ดˆ๊ธฐํ™”๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ GameSystem ํด๋ž˜์Šค์˜ initServer() ๋ฐ initWebGUI()๋ฅผ ํ˜ธ์ถœํ•˜๊ณ  ๊ตฌ๋ฌธ์„ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค
  • ์„œ๋ฒ„ ์•ˆ์ •์„ ์œ„ํ•ด GameSystem ํด๋ž˜์Šค์˜ enableRecaptcha()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

onStadiumChange

onStadiumChange(newMap: String, byPlayer: PlayerObject)

  • ๊ฒฝ๊ธฐ์žฅ์ด ๊ต์ฒด๋˜๋ฉด ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ํ”Œ๋ ˆ์ด์–ด์˜ ๋™์ž‘์œผ๋กœ ํ˜ธ์ถœ๋œ ๊ฒฝ์šฐ, ํ™œ๋™ ์‹œ๊ฐ„์„ ๊ฐฑ์‹ ํ•˜๊ธฐ ์œ„ํ•ด PlayerManager ํด๋ž˜์Šค์˜ updateTime()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ๊ฒฝ๊ธฐ์žฅ ๋ธ”๋ž™๋ฆฌ์ŠคํŠธ์— ํฌํ•จ๋œ ๊ฒฝ์šฐ, 0๋ฒˆ์งธ ๊ฒฝ๊ธฐ์žฅ์œผ๋กœ ๊ต์ฒดํ•˜๊ณ  Administration ํด๋ž˜์Šค์˜ addBlacklistByPlayer()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

onTeamGoal

onTeamGoal(team: TeamID)

  • ๊ณจ์ด ํŒ์ •๋˜๋ฉด ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ์„ ๋‘์ž ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด ScoreManager ํด๋ž˜์Šค์˜ lastTouchedPlayer๋ฅผ ๋ถˆ๋Ÿฌ์˜ต๋‹ˆ๋‹ค
  • ์–ด์‹œ์ŠคํŠธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด ScoreManager ํด๋ž˜์Šค์˜ findAssist()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ํ”Œ๋ ˆ์ด์–ด์˜ ์ „์  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด ScoreManager ํด๋ž˜์Šค์˜ findRankListByPlayer()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ๋“์  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐฑ์‹ ์„ ์œ„ํ•ด ScoreManager ํด๋ž˜์Šค์˜ updateGoals()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • GUI ๊ฐฑ์‹ ์„ ์œ„ํ•ด GameSystem ํด๋ž˜์Šค์˜ updateWebGUI()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ์งง์€ ์‹œ๊ฐ„ ๋™์•ˆ ๋“์ ์ž๋ฅผ ๋“ฑ๋ฒˆํ˜ธ๋กœ ๊ฐ•์กฐํ•˜๋Š” goal ํƒ€์ด๋จธ๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด TimeManager ํด๋ž˜์Šค์˜ addTimer()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

onTeamVictory

onTeamVictory(scores: ScoresObject)

  • ๊ฒฝ๊ธฐ ์ŠนํŒจ๊ฐ€ ๊ฒฐ์ •๋˜๋ฉด ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ์Šน๋ฆฌํ•œ ํŒ€์„ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด ScoreManager ํด๋ž˜์Šค์˜ findWinner() ๋ฐ findTeamName()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ์ „์  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ฐฑ์‹ ํ•˜๊ธฐ ์œ„ํ•ด ScoreManager ํด๋ž˜์Šค์˜ findRankListByPlayer()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

handleGameStart

handleGameStart(void)

  • ๊ฒฝ๊ธฐ ์ œ์–ด๋ฅผ ์ค€๋น„ํ•ฉ๋‹ˆ๋‹ค
  • _gameEventStats์˜ ๊ฐ’์„ c_GAME_STATS.START์œผ๋กœ ๊ฐฑ์‹ ํ•ฉ๋‹ˆ๋‹ค
  • _countMatch์˜ ๊ฐ’์„ 1 ์ฆ๊ฐํ•ฉ๋‹ˆ๋‹ค
  • _firstTimeNotified์˜ ๊ฐ’์„ ํ˜„์žฌ ์‹œ๊ฐ„์œผ๋กœ ๊ฐฑ์‹ ํ•ฉ๋‹ˆ๋‹ค
  • _lastTimeNotified์˜ ๊ฐ’์„ ํ˜„์žฌ ์‹œ๊ฐ„์œผ๋กœ ๊ฐฑ์‹ ํ•ฉ๋‹ˆ๋‹ค
  • _timeLimitReached์˜ ๊ฐ’์„ false์œผ๋กœ ์ดˆ๊ธฐํ™” ํ•ฉ๋‹ˆ๋‹ค
  • ์„ ๋‘์ž ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋ชจ๋‘ ์ง€์šฐ๊ธฐ ์œ„ํ•ด ScoreManager ํด๋ž˜์Šค์˜ clearTouchedList()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ํ”Œ๋ ˆ์ด์–ด์˜ ํ™œ๋™ ์‹œ๊ฐ„์„ ๊ฐฑ์‹ ํ•˜๊ธฐ ์œ„ํ•ด PlayerManager ํด๋ž˜์Šค์˜ updateTime()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

handleGameTick

handleGameTick(currentTime: Float)

  • ๊ฒฝ๊ธฐ ์ œ์–ด๋ฅผ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค
  • ์„ ๋‘์ž ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐฑ์‹ ์„ ์œ„ํ•ด ScoreManager ํด๋ž˜์Šค์˜ updateTouchedList()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • _timeLimit ๏ผœ 1์„ ๋งŒ์กฑํ•˜๋ฉด false์˜ ๊ฐ’์œผ๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค
  • ์ตœ๊ทผ ๊ธฐ๋ก ์‹œ๊ฐ„์—์„œ ๋„๋‹ฌ ๊ธฐ์ค€ ์‹œ๊ฐ„ ์ดํ›„๋กœ ๊ฒฝ๊ณผ๋œ ๊ฒฝ์šฐ, _lastTimeNotified์˜ ๊ฐ’์„ ํ˜„์žฌ ์‹œ๊ฐ„์œผ๋กœ ๊ฐฑ์‹ ํ•˜๊ณ  true์˜ ๊ฐ’์œผ๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค
  • 0์ดˆ์—์„œ ๋„๋‹ฌ ๊ธฐ์ค€ ์‹œ๊ฐ„ ์ดํ›„๋กœ ๊ฒฝ๊ณผ๋˜๋ฉด _timeLimitReached์˜ ๊ฐ’์„ true๋กœ ๊ฐฑ์‹ ํ•˜๊ณ  true์˜ ๊ฐ’์œผ๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค
  • ๋ชจ๋“  ๊ตฌ๋ฌธ์ด ์˜จ์ „ํ•˜๊ฒŒ ์ง„ํ–‰๋˜์—ˆ์œผ๋ฉด false์˜ ๊ฐ’์œผ๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get afkTime

  • 10~10800 ์‚ฌ์ด์˜ ๊ฐ’์ด๋ฉด _afkLimitTime๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get gameLink

  • _gameLink๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get gameStats

  • _gameEventStats๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get recStats

  • _isRecording๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get rptTime

  • _repeatedLimitTime๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get totalMatch

  • _countMatch๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

set afkTime

set afkTime(v: Int)

  • ์žฅ๊ธฐ ๋ฌด์‘๋‹ต ํŒ์ • ์ตœ์†Œ ์‹œ๊ฐ„์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค
  • v์˜ ๊ฐ’์€ 10~10800 ๋ฒ”์œ„ ์•ˆ์ด๋ฉฐ _afkLimitTime์˜ ๊ฐ’๊ณผ ๋‹ฌ๋ผ์•ผ ํ•ฉ๋‹ˆ๋‹ค
  • ์žฅ๊ธฐ ๋ฌด์‘๋‹ต ํ”Œ๋ ˆ์ด์–ด๋ฅผ ๋ณ€๊ฒฝ๋œ ์‹œ๊ฐ„์œผ๋กœ ํŒ์ •ํ•˜๊ธฐ ์œ„ํ•ด ๋ชจ๋“  ํ”Œ๋ ˆ์ด์–ด์˜ ํ™œ๋™ ์‹œ๊ฐ„์„ ๊ฐฑ์‹ ํ•ด์•ผ ํ•˜๋ฏ€๋กœ, PlayerManager ํด๋ž˜์Šค์˜ updateTime()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • _afkLimitTime์˜ ๊ฐ’์„ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค

set gameLink

set gameLink(v: String)

  • ์„œ๋ฒ„ ๋งํฌ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค
  • ์„œ๋ฒ„๋ฅผ ์ดˆ๊ธฐํ™” ํ•  ๋•Œ ํ•œ ๋ฒˆ๋งŒ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค
  • _gameLink์˜ ๊ฐ’์„ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค

set gameStats

set gameStats(v: Int)

  • ๊ฒฝ๊ธฐ ์ง„ํ–‰ ์ƒํƒœ๋ฅผ ๊ฐฑ์‹ ํ•ฉ๋‹ˆ๋‹ค
  • _gameEventStats์˜ ๊ฐ’์„ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค

set recStats

set recStats(v: Bool)

  • ๋…นํ™” ์ƒํƒœ๋ฅผ ๊ฐฑ์‹ ํ•ฉ๋‹ˆ๋‹ค
  • _isRecording์˜ ๊ฐ’์„ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค

findStadiumNameList

findStadiumNameList(target: Int)

  • ๊ฒฝ๊ธฐ์žฅ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ด๋ฆ„์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค
  • target์˜ ๊ฐ’์ด ์œ ํšจํ•œ ๊ฒฝ์šฐ ํŠน์ • ์ธ๋ฑ์Šค๋ฅผ ๊ฐ€์ง„ ๊ฒฝ๊ธฐ์žฅ์˜ ์ด๋ฆ„์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

findTeamName

findTeamName(value: teamID)

  • ํŒ€ ID๋ฅผ ๋ฌธ์ž์—ด๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

checkPublicId

checkPublicId(msg: String, player: Int, hasAllRange: Bool)

  • #ID๋ฅผ ํŒ๋ณ„ํ•˜์—ฌ ์ง€๋ชฉํ•œ ๋Œ€์ƒ์˜ ID๋ฅผ ๋ฌธ์ž์—ด์—์„œ ์ •์ˆ˜ํ˜•์œผ๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค
  • hasAllRange๊ฐ€ true์˜ ๊ฐ’์„ ๊ฐ€์ง€๋ฉด ๋ฏธ์ ‘์†์ž์˜ ID๋„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค

loadMap

loadMap(target: Int, player: Int)

  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋‚ด์—์„œ ๊ฒฝ๊ธฐ์žฅ์„ ๊ต์ฒดํ•ฉ๋‹ˆ๋‹ค
  • ์‹œ์Šคํ…œ์ด ๊ธˆ์ง€ํ•œ ๊ฒฝ์šฐ, ๊ฒฝ๊ธฐ์žฅ์„ ๊ต์ฒดํ•˜์ง€ ์•Š๊ณ  ๊ตฌ๋ฌธ์„ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค

reorderPlayers

reorderPlayers(playerIdList: Array<Int>, moveToTop: Bool)

  • ํ”Œ๋ ˆ์ด์–ด์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ง€์ • ์ˆœ๋ฒˆ์— ๋”ฐ๋ผ ์žฌ์ •๋ ฌํ•ฉ๋‹ˆ๋‹ค
  • ์ •๋ ฌํ•  ๋ช…๋‹จ์„ ์ง€์ •ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ, ๋ชจ๋“  ํ”Œ๋ ˆ์ด์–ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ •๋ ฌํ•ฉ๋‹ˆ๋‹ค
  • moveToTop์˜ ๊ฐ’์ด true์ธ ๊ฒฝ์šฐ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•ฉ๋‹ˆ๋‹ค
  • GUI ๊ฐฑ์‹ ์„ ์œ„ํ•ด GameSystem ํด๋ž˜์Šค์˜ updateWebGUI()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

runCommand

runCommand(src: Array<String>, type: Array<String>, player: PlayerObject)

  • ๋ช…๋ น์–ด๋กœ๋ถ€ํ„ฐ ๊ธฐ๋Šฅ์„ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค
  • ์ž…๋ ฅ์ž๊ฐ€ ์ ‘์†ํ•ด ์žˆ์ง€ ์•Š๋Š” ๊ฒฝ์šฐ false์˜ ๊ฐ’์œผ๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค
	let fn = Function('"use strict";return (' + src + ')')();	//	์‹คํ–‰ ๊ตฌ๋ฌธ
  • fn()์„ ํ†ตํ•ด ๊ธฐ๋Šฅ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค
  • type[2]์˜ ๊ฐ’์ด ๋ถ€์ ์ ˆํ•œ ๊ฒฝ์šฐ -1๋ฅผ fn()์˜ ์ธ์ž๊ฐ’์œผ๋กœ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค
  • ๋ชจ๋“  ๊ตฌ๋ฌธ์ด ์˜จ์ „ํ•˜๊ฒŒ ์ง„ํ–‰๋˜์—ˆ์œผ๋ฉด true์˜ ๊ฐ’์œผ๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

startRecording

startRecording(hideAnchor: Bool)

  • ์‹œ์Šคํ…œ ๋…นํ™”๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค
  • ์ด๋ฏธ ์ง„ํ–‰ํ•˜๊ณ  ์žˆ๋Š” ๋…นํ™”๊ฐ€ ์žˆ์œผ๋ฉด stopRecording()๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค
  • ๋…นํ™” ์ƒํƒœ๋ฅผ ๊ฐฑ์‹ ํ•˜๊ธฐ ์œ„ํ•ด _isRecording์˜ ๊ฐ’์„ ๊ฐฑ์‹ ํ•ฉ๋‹ˆ๋‹ค

stopRecording

stopRecording(void)

  • ์‹œ์Šคํ…œ ๋…นํ™”๋ฅผ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค
  • ๋…นํ™” ์ƒํƒœ๋ฅผ ๊ฐฑ์‹ ํ•˜๊ธฐ ์œ„ํ•ด _isRecording์˜ ๊ฐ’์„ ๊ฐฑ์‹ ํ•ฉ๋‹ˆ๋‹ค
	let file = room.stopRecording();
  • ๋ชจ๋“  ๊ตฌ๋ฌธ์ด ์˜จ์ „ํ•˜๊ฒŒ ์ง„ํ–‰๋˜์—ˆ์œผ๋ฉด file์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

class Administration

โ“˜โ–ณโ–ฝ

  • ์‹œ์Šคํ…œ์˜ ์ „๋ฐ˜์ ์ธ ๊ถŒํ•œ์„ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค

constructor

constructor(dynamicAdmin: Bool, isAllowJoin: Bool, isLockStadium: Bool, defaultStadium: Int, maxAdmin: Int, pinHost: Bool)

  • _blacklist: Array<BlacklistSystem>: ๋ธ”๋ž™๋ฆฌ์ŠคํŠธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค
  • _enableDynamicAdmin: Bool: ๊ถŒํ•œ ํ• ๋‹น ๋ฐฉ์‹์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค
  • _isAllowTeamSwitch: Bool: ํ”Œ๋ ˆ์ด์–ด ํŒ€ ์ž์œจ ๊ต์ฒด๊ถŒ์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค
  • _isLockStadium: Bool: ๊ฒฝ๊ธฐ์žฅ ๊ณ ์ • ์—ฌ๋ถ€๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค
  • _defaultStadium: String: ๊ณ ์ • ๊ฒฝ๊ธฐ์žฅ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋””
  • _maxAdminLimit: Int: ์ตœ๊ณ  ๊ด€๋ฆฌ์ž ์ƒํ•œ ์ธ์›์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค
  • _pinHost: Bool: ํ˜ธ์ŠคํŠธ ํŒ€ ์ด๋™ ์—ฌ๋ถ€๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

onPlayerAdminChange

onPlayerAdminChange(givenPlayer: PlayerObject, byPlayer: PlayerObject)

  • ํ”Œ๋ ˆ์ด์–ด์˜ ๊ถŒํ•œ์ด ๋ณ€๊ฒฝ๋˜๋ฉด ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
	let target = PM.findPlayerById(givenPlayer.id);
  • ๊ถŒํ•œ ๋ณ€๊ฒฝ ๋Œ€์ƒ์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐฑ์‹ ์„ ์œ„ํ•ด PlayerManager ํด๋ž˜์Šค์˜ findPlayerById()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ํ”Œ๋ ˆ์ด์–ด์˜ ๋™์ž‘์œผ๋กœ ํ˜ธ์ถœ๋œ ๊ฒฝ์šฐ, ํ™œ๋™ ์‹œ๊ฐ„์„ ๊ฐฑ์‹ ํ•˜๊ธฐ ์œ„ํ•ด PlayerManager ํด๋ž˜์Šค์˜ updateTime()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • givenPlayer.admin์˜ ๊ฐ’์ด true์ธ ๊ฒฝ์šฐ
    • ๋ณด์กฐ ๊ถŒํ•œ์„ ๊ฐ€์ง„ ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ๋งˆ์šฐ์Šค ํด๋ฆญ์„ ํ†ตํ•œ ๊ฒŒ์ž„ ๋‚ด ๊ธฐ๋Šฅ์œผ๋กœ ๊ถŒํ•œ์ด ๋ณ€๊ฒฝ๋˜๋Š” ๊ฒฝ์šฐ, ๋ณด์กฐ ๊ถŒํ•œ์„ ํ•ด์ œํ•ฉ๋‹ˆ๋‹ค
  • givenPlayer.admin์˜ ๊ฐ’์ด false์ธ ๊ฒฝ์šฐ
    • ์ตœ๊ณ  ๊ถŒํ•œ์„ ๊ฐ€์ง„ ํ”Œ๋ ˆ์ด์–ด๋Š” ๊ถŒํ•œ์ด ํ•ด์ œ๋œ ์งํ›„ ๋ณด์กฐ ๊ถŒํ•œ์ด ๋ถ€์—ฌ๋ฉ๋‹ˆ๋‹ค
  • GUI์— ๋ช…๋‹จ์„ ๊ฐฑ์‹ ํ•˜๊ธฐ ์œ„ํ•ด GameSystem ํด๋ž˜์Šค์˜ addListIndex()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

onPlayerKicked

onPlayerKicked(kickedPlayer: PlayerObject, reason: String, ban: Bool, byPlayer: PlayerObject)

  • ์ ‘์†์ž๊ฐ€ ๊ฐ•์ œ ํ‡ด์žฅ๋˜๋ฉด ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ๊ฐ•์ œ ํ‡ด์žฅ์ž์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐฑ์‹ ์„ ์œ„ํ•ด PlayerManager ํด๋ž˜์Šค์˜ findPlayerById()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • reason์˜ ๊ฐ’์ด Bad actor๋กœ ๊ฐ์ง€๋˜๋ฉด ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋ฅผ ์ „์†กํ•˜๊ณ  ๊ตฌ๋ฌธ์„ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค
  • ํ”Œ๋ ˆ์ด์–ด์˜ ๋™์ž‘์œผ๋กœ ํ˜ธ์ถœ๋œ ๊ฒฝ์šฐ, ํ™œ๋™ ์‹œ๊ฐ„์„ ๊ฐฑ์‹ ํ•˜๊ธฐ ์œ„ํ•ด PlayerManager ํด๋ž˜์Šค์˜ updateTime()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

get allowJoin

  • _isAllowTeamSwitch์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get dynmcAdmin

  • _enableDynamicAdmin์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get lockStadium

  • _isLockStadium์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get maxAdmin

  • 1~MAXPLAYERS ์‚ฌ์ด์˜ ๊ฐ’์ด๋ฉด _maxAdminLimit๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get password

  • PASSWORD์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get rstrStadium

  • _defaultStadium์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

set allowJoin

set allowJoin(bool: Bool)

  • ํ”Œ๋ ˆ์ด์–ด์˜ ํŒ€ ์ž์œจ ๊ต์ฒด๋ฅผ ํ—ˆ์šฉํ•˜๊ฑฐ๋‚˜ ๊ธˆ์ง€ํ•ฉ๋‹ˆ๋‹ค
  • _isAllowTeamSwitch์˜ ๊ฐ’์„ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค

set dynmcAdmin

set dynmcAdmin(bool: Bool)

  • ๊ถŒํ•œ ํ• ๋‹น ๋ฐฉ์‹์„ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค
  • _enableDynamicAdmin์˜ ๊ฐ’์„ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค

set lockStadium

set lockStadium(bool: Bool)

  • ๊ฒฝ๊ธฐ์žฅ์„ ๊ณ ์ •ํ•˜๊ฑฐ๋‚˜ ํ•ด์ œํ•ฉ๋‹ˆ๋‹ค
  • ๊ฒฝ๊ธฐ์žฅ์ด ๊ณ ์ •๋˜๋ฉด GameManager ํด๋ž˜์Šค์˜ loadMap()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

set password

set password(value: String)

  • ์‹œ์Šคํ…œ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค
  • ๋น„๋ฐ€๋ฒˆํ˜ธ ๊ณ ์ • ์žฅ์น˜๊ฐ€ ํ™œ์„ฑํ™” ๋ผ ์žˆ๋Š” ๊ฒฝ์šฐ ๊ตฌ๋ฌธ์„ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค
  • ๋ชจ๋“  ๊ตฌ๋ฌธ์ด ์˜จ์ „ํ•˜๊ฒŒ ์ง„ํ–‰๋˜์—ˆ์œผ๋ฉด updatePassword()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

isBlacklist

isBlacklist(player: Int, isSuper: Bool)

  • ํ”Œ๋ ˆ์ด์–ด์˜ ๋ธ”๋ž™๋ฆฌ์ŠคํŠธ ํฌํ•จ ์—ฌ๋ถ€๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค
  • ํ”Œ๋ ˆ์ด์–ด์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด PlayerManager ํด๋ž˜์Šค์˜ findPlayerById() ๋ฐ BlacklistSystem ํด๋ž˜์Šค๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ํ”Œ๋ ˆ์ด์–ด์˜ ๊ณต์šฉ ์ฃผ์†Œ๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด findAddress()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ์ผ์น˜ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์—†์œผ๋ฉด false์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค
  • ์ด๋ฆ„ ๋ฐ์ดํ„ฐ๊ฐ€ ๋น„์–ด ์žˆ์œผ๋ฉด ํ˜„์žฌ ๋ฐ์ดํ„ฐ๋กœ ๊ฐฑ์‹ ํ•ฉ๋‹ˆ๋‹ค
  • ์ฃผ์†Œ ๋ฐ์ดํ„ฐ๊ฐ€ ๋น„์–ด ์žˆ์œผ๋ฉด ํ˜„์žฌ ๋ฐ์ดํ„ฐ๋กœ ๊ฐฑ์‹ ํ•ฉ๋‹ˆ๋‹ค
  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ถ”๊ฐ€๋ฅผ ์œ„ํ•ด addBlacklist()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ๋ชจ๋“  ๊ตฌ๋ฌธ์ด ์˜จ์ „ํ•˜๊ฒŒ ์ง„ํ–‰๋˜์—ˆ์œผ๋ฉด true์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

isMute

isMute(target: Int)

  • ํ”Œ๋ ˆ์ด์–ด์˜ ์ฑ„ํŒ… ๊ธˆ์ง€ ์—ฌ๋ถ€๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค
  • ํ”Œ๋ ˆ์ด์–ด์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด PlayerManager ํด๋ž˜์Šค์˜ findPlayerById()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

hasAdmin

hasAdmin(player: Int, level: Int)

  • ํ”Œ๋ ˆ์ด์–ด์˜ ๊ด€๋ฆฌ์ž ์—ฌ๋ถ€๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค
  • ํ”Œ๋ ˆ์ด์–ด์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด PlayerManager ํด๋ž˜์Šค์˜ findPlayerById()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

hasMatchedConnection

hasMatchedConnection(player: Int)

  • ํ”Œ๋ ˆ์ด์–ด์˜ ์ค‘๋ณต ๋ฐ ๋‹ค์ค‘ ์ ‘์† ์—ฌ๋ถ€๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค
  • ํ”Œ๋ ˆ์ด์–ด์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด PlayerManager ํด๋ž˜์Šค์˜ findPlayerById()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ๋น„๊ต ๋Œ€์ƒ๊ณผ ์ด๋ฆ„์ด ์ผ์น˜ํ•˜๊ณ 
    • ๊ณต์šฉ ๋„คํŠธ์›Œํฌ๋„ ์ผ์น˜ํ•˜๋ฉด ์ค‘๋ณต ์ ‘์†์œผ๋กœ ํŒ์ •ํ•ฉ๋‹ˆ๋‹ค
    • ๊ณต์šฉ ๋„คํŠธ์›Œํฌ๊ฐ€ ์ผ์น˜ํ•˜์ง€ ์•Š์œผ๋ฉด ๋‹ค์ค‘ ์ ‘์†์œผ๋กœ ํŒ์ •ํ•ฉ๋‹ˆ๋‹ค
  • ๋น„๊ต ๋Œ€์ƒ๊ณผ ๊ณต์šฉ ์ฃผ์†Œ๊ฐ€ ์ผ์น˜ํ•˜๋ฉด ๋‹ค์ค‘ ์ ‘์†์œผ๋กœ ํŒ์ •ํ•ฉ๋‹ˆ๋‹ค
  • ์ค‘๋ณต ๋ฐ ๋‹ค์ค‘ ์ ‘์†์œผ๋กœ ํŒ์ •๋œ ๊ฒฝ์šฐ ๊ฐ•์ œ ํ‡ด์žฅํ•ฉ๋‹ˆ๋‹ค
    • ๋ฐ๋ชจ ๋ชจ๋“œ๊ฐ€ ํ™œ์„ฑํ™” ๋ผ ์žˆ๋Š” ๊ฒฝ์šฐ ๊ฐ•์ œ ํ‡ด์žฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค

findAddress

findAddress(target: Int)

  • ํ”Œ๋ ˆ์ด์–ด์˜ ๊ณต์šฉ ์ฃผ์†Œ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค
  • ํ”Œ๋ ˆ์ด์–ด์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด PlayerManager ํด๋ž˜์Šค์˜ findPlayerById()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

findAdminList

findAdminList(level: Int)

  • ๊ด€๋ฆฌ์ž ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค
  • ํ”Œ๋ ˆ์ด์–ด์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด PlayerManager ํด๋ž˜์Šค์˜ findPlayerById()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

findBlacklistByAddress

findBlacklistByAddress(conn: PlayerObject.conn)

  • ํŠน์ • ๊ณต์šฉ ์ฃผ์†Œ๋ฅผ ๊ฐ€์ง„ ๋ธ”๋ž™๋ฆฌ์ŠคํŠธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

findBlacklistByName

findBlacklistByName(str: String)

  • ํŠน์ • ์ด๋ฆ„์„ ๊ฐ€์ง„ ๋ธ”๋ž™๋ฆฌ์ŠคํŠธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

findMutedList

findMutedList(isPublic: Bool)

  • ์ฑ„ํŒ… ๊ธˆ์ง€์ž ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค
  • ํ”Œ๋ ˆ์ด์–ด์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด PlayerManager ํด๋ž˜์Šค์˜ findPlayerById()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

findNetwork

findNetwork(target: PlayerObject.auth)

  • ํ”Œ๋ ˆ์ด์–ด์˜ ๊ณต์šฉ ๋„คํŠธ์›Œํฌ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค
  • ํ”Œ๋ ˆ์ด์–ด์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด PlayerManager ํด๋ž˜์Šค์˜ findPlayerById()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

addBlacklist

addBlacklist(isSuper: Bool, name: String, conn: PlayerObject.conn)

  • ๋ธ”๋ž™๋ฆฌ์ŠคํŠธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋“ฑ๋กํ•ฉ๋‹ˆ๋‹ค
  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ดˆ๊ธฐํ™”๋ฅผ ์œ„ํ•ด BlacklistSystem ํด๋ž˜์Šค๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

addBlacklistByPlayer

addBlacklistByPlayer(target: Int, isSuper: Bool)

  • ํŠน์ • ํ”Œ๋ ˆ์ด์–ด๋ฅผ ๋ธ”๋ž™๋ฆฌ์ŠคํŠธ์— ๋“ฑ๋กํ•ฉ๋‹ˆ๋‹ค
  • ์Šˆํผ ๋ธ”๋ž™๋ฆฌ์ŠคํŠธ๋กœ ๋“ฑ๋กํ•œ ์งํ›„ ์ ‘์†์ž๊ฐ€ ์žˆ์œผ๋ฉด ๊ฐ•์ œ ํ‡ด์žฅํ•ฉ๋‹ˆ๋‹ค
  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋“ฑ๋ก์„ ์œ„ํ•ด addBlacklist()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

updateAdmins

updateAdmins(void)

  • ์ ‘์†์ž์˜ ๊ถŒํ•œ์„ ๊ฐฑ์‹ ํ•ฉ๋‹ˆ๋‹ค
  • ์ •์  ๊ถŒํ•œ ํ• ๋‹น ๋ฐฉ์‹์ด ์„ค์ •๋œ ๊ฒฝ์šฐ ๊ตฌ๋ฌธ์„ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค
  • ํ”Œ๋ ˆ์ด์–ด์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด PlayerManager ํด๋ž˜์Šค์˜ findPlayerById()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ์ตœ๊ณ  ๊ด€๋ฆฌ์ž๊ฐ€ ์ด๋ฏธ ์žˆ๋Š” ๊ฒฝ์šฐ ๊ตฌ๋ฌธ์„ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค
  • ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๊ธฐ ์œ„ํ•ด giveAdmin()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
    • ๋ธ”๋ž™๋ฆฌ์ŠคํŠธ์— ํ•ด๋‹นํ•˜๋Š” ๊ฒฝ์šฐ ๋ณด์กฐ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•ฉ๋‹ˆ๋‹ค

updatePassword

updatePassword(pass: String)

  • ์‹œ์Šคํ…œ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๊ฐฑ์‹ ํ•ฉ๋‹ˆ๋‹ค
  • ๋น„๋ฐ€๋ฒˆํ˜ธ ๊ณ ์ • ์žฅ์น˜๊ฐ€ ํ™œ์„ฑํ™” ๋ผ ์žˆ๋Š” ๊ฒฝ์šฐ
  • PASSWORD์˜ ๊ฐ’์„ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค
    • pass์˜ ๊ฐ’์ด ๋ถ€์ ์ ˆํ•˜๊ฑฐ๋‚˜ ๊ณต๋ฐฑ์ธ ๊ฒฝ์šฐ null ๊ฐ’์„ ๋Œ€์ž…ํ•ฉ๋‹ˆ๋‹ค
  • ๋ชจ๋“  ๊ตฌ๋ฌธ์ด ์˜จ์ „ํ•˜๊ฒŒ ์ง„ํ–‰๋˜์—ˆ์œผ๋ฉด PASSWORD์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

clearBans

clearBans(player: Int)

  • ์„œ๋ฒ„ ๋‚ด ์˜๊ตฌ ํ‡ด์žฅ ๋ช…๋‹จ์„ ๋ชจ๋‘ ์ง€์›๋‹ˆ๋‹ค

clearMutedList

clearMutedList(player: Int)

  • ์ฑ„ํŒ… ๊ธˆ์ง€ ๋ช…๋‹จ์„ ๋ชจ๋‘ ์ง€์›๋‹ˆ๋‹ค
  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด findMutedList()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • GUI์— ๋ช…๋‹จ์„ ๊ฐฑ์‹ ํ•˜๊ธฐ ์œ„ํ•ด GameSystem ํด๋ž˜์Šค์˜ updateListIndex()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

clearPassword

clearPassword(byPlayer: Int)

  • ์‹œ์Šคํ…œ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ํ•ด์ œํ•ฉ๋‹ˆ๋‹ค
  • ๋น„๋ฐ€๋ฒˆํ˜ธ ๊ณ ์ • ์žฅ์น˜๊ฐ€ ํ™œ์„ฑํ™” ๋ผ ์žˆ๋Š” ๊ฒฝ์šฐ ๊ตฌ๋ฌธ์„ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค
  • ๋น„๋ฐ€๋ฒˆํ˜ธ ๊ฐฑ์‹ ์„ ์œ„ํ•ด updatePassword()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

deleteAdmin

deleteAdmin(player: Int, isSub: Bool)

  • ํ”Œ๋ ˆ์ด์–ด์˜ ๊ถŒํ•œ์„ ํ•ด์ œํ•ฉ๋‹ˆ๋‹ค
  • ํ”Œ๋ ˆ์ด์–ด์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด PlayerManager ํด๋ž˜์Šค์˜ findPlayerById()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

resetGame

resetGame(player: Int)

  • ๊ฒฝ๊ธฐ๋ฅผ ์žฌ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค

showAdminList

showAdminList(target: Int)

  • ๊ฒŒ์ž„์—์„œ ๊ด€๋ฆฌ์ž ๋ช…๋‹จ์„ ๋ฉ”์‹œ์ง€๋กœ ์ „์†กํ•ฉ๋‹ˆ๋‹ค
  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด findAdminList()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ๊ถŒํ•œ ์œ ํ˜•์— ๋”ฐ๋ผ ์„œ๋กœ ๋‹ค๋ฅธ ํ–‰์œผ๋กœ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค
    • ์ ‘์†์ž ์ค‘์—์„œ ๊ด€๋ฆฌ์ž๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ ๋”ฐ๋กœ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค

showPassword

showPassword(player: Int)

  • ๊ฒŒ์ž„์—์„œ ์‹œ์Šคํ…œ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๋ฉ”์‹œ์ง€๋กœ ์ „์†กํ•ฉ๋‹ˆ๋‹ค

cntAdmins

cntAdmins(level: Int)

  • ๊ด€๋ฆฌ์ž ์ธ์›์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค
  • ํ”Œ๋ ˆ์ด์–ด์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด PlayerManager ํด๋ž˜์Šค์˜ findPlayerById()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

enablePinHost

enablePinHost(bool: Bool)

  • ํ˜ธ์ŠคํŠธ์˜ ํŒ€ ์ด๋™์„ ํ—ˆ์šฉํ•˜๊ฑฐ๋‚˜ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค
  • ํ˜ธ์ŠคํŠธ๊ฐ€ ๋น„ํ™œ์„ฑํ™” ๋ผ ์žˆ๋Š” ๊ฒฝ์šฐ ๊ตฌ๋ฌธ์„ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค
  • bool์˜ ๊ฐ’์ด true์ธ ๊ฒฝ์šฐ ํ˜ธ์ŠคํŠธ๋ฅผ ๊ด€์ค‘์„์œผ๋กœ ํŒ€์„ ๊ณ ์ •ํ•ฉ๋‹ˆ๋‹ค

giveAdmin

giveAdmin(player: Int, isSub: Bool)

  • ํ”Œ๋ ˆ์ด์–ด์˜ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•ฉ๋‹ˆ๋‹ค
  • ํ”Œ๋ ˆ์ด์–ด์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด PlayerManager ํด๋ž˜์Šค์˜ findPlayerById()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

kickPlayer

kickPlayer(target: Int, msg: String, ban: Bool, ...replace: Array<String>)

  • ํ”Œ๋ ˆ์ด์–ด๋ฅผ ๊ฐ•์ œ ํ‡ด์žฅํ•ฉ๋‹ˆ๋‹ค

limitScore

limitScore(value: Int, byPlayer: Int)

  • ๋‹ค์Œ ๊ฒฝ๊ธฐ์˜ ์ œํ•œ ์ ์ˆ˜๋ฅผ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค
  • value์˜ ๊ฐ’์ด 0~14 ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚œ ๊ฒฝ์šฐ ๊ตฌ๋ฌธ์„ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค
  • ๊ฒฝ๊ธฐ๊ฐ€ ์ง„ํ–‰ ์ค‘์ธ ๊ฒฝ์šฐ ๊ตฌ๋ฌธ์„ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค

limitTime

limitTime(value: Int, byPlayer: Int)

  • ๋‹ค์Œ ๊ฒฝ๊ธฐ์˜ ์ œํ•œ ์‹œ๊ฐ„์„ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค
  • value์˜ ๊ฐ’์ด 0~14 ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚œ ๊ฒฝ์šฐ ๊ตฌ๋ฌธ์„ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค
  • ๊ฒฝ๊ธฐ๊ฐ€ ์ง„ํ–‰ ์ค‘์ธ ๊ฒฝ์šฐ ๊ตฌ๋ฌธ์„ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค

logonAdmin

logonAdmin(player: Int, msg, type: String)

  • ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ์ตœ๊ณ  ๊ถŒํ•œ ๋กœ๊ทธ์ธ์— ์„ฑ๊ณตํ•˜๋ฉด ๋กœ๊ทธ๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค
  • ์ด๋ฏธ ๊ถŒํ•œ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ฒฝ์šฐ ๊ตฌ๋ฌธ์„ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค
  • ์žฅ๊ธฐ ๋Œ€๊ธฐ์—ด์— ํฌํ•จ๋œ ๊ฒฝ์šฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค

missPassword

missPassword(player: Int, msg: String, type: Int)

  • ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ์ตœ๊ณ  ๊ถŒํ•œ ๋กœ๊ทธ์ธ์— ์‹คํŒจํ•œ ๊ฒฝ์šฐ ๋กœ๊ทธ๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค
  • ์ด๋ฏธ ๊ถŒํ•œ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ฒฝ์šฐ ๊ตฌ๋ฌธ์„ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค

mutePlayer

mutePlayer(target: Int, time: Int, byPlayer: Int)

  • ํ”Œ๋ ˆ์ด์–ด์˜ ์ฑ„ํŒ…์„ ๊ธˆ์ง€ํ•ฉ๋‹ˆ๋‹ค
  • ํ”Œ๋ ˆ์ด์–ด์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด PlayerManager ํด๋ž˜์Šค์˜ findPlayerById()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • GUI์— ๋ช…๋‹จ์„ ๊ฐฑ์‹ ํ•˜๊ธฐ ์œ„ํ•ด GameSystem ํด๋ž˜์Šค์˜ updateListIndex()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • time โ‰ฅ 5๋ฅผ ๋งŒ์กฑํ•˜๋Š” ๊ฒฝ์šฐ time์ดˆ ๊ฒฝ๊ณผ ์งํ›„ ์ฑ„ํŒ…์„ ํ—ˆ์šฉํ•˜๋Š” ํƒ€์ด๋จธ๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด TimeManager ํด๋ž˜์Šค์˜ addTimer()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

swapGame

swapGame(player: Int)

  • ๊ฒฝ๊ธฐ๋ฅผ ์‹œ์ž‘ํ•˜๊ฑฐ๋‚˜ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค

unmutePlayer

unmutePlayer(target: Int, byPlayer: Int)

  • ํ”Œ๋ ˆ์ด์–ด์˜ ๊ธˆ์ง€๋œ ์ฑ„ํŒ…์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค
  • ํ”Œ๋ ˆ์ด์–ด์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด PlayerManager ํด๋ž˜์Šค์˜ findPlayerById()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ํ”Œ๋ ˆ์ด์–ด์˜ ๋“ฑ๋ฒˆํ˜ธ๋ฅผ ์ดˆ๊ธฐํ™” ํ•ฉ๋‹ˆ๋‹ค
  • GUI์— ๋ช…๋‹จ์„ ๊ฐฑ์‹ ํ•˜๊ธฐ ์œ„ํ•ด GameSystem ํด๋ž˜์Šค์˜ updateListIndex()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ๋ฏธ์ ‘์†์ž๋Š” ๋ณ„๋„๋กœ ์•Œ๋ฆฌ์ง€ ์•Š์Šต๋‹ˆ๋‹ค
  • mute ํƒ€์ด๋จธ๋ฅผ ์ง€์šฐ๊ธฐ ์œ„ํ•ด TimeManager ํด๋ž˜์Šค์˜ clearTimerByName()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

class BlacklistSystem

โ“˜โ–ณโ–ฝ

  • ๋ธ”๋ž™๋ฆฌ์ŠคํŠธ ๋ช…๋‹จ์„ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค

constructor

constructor(isSuper: Bool, name: String, conn: PlayerObject.conn)

  • _super: Bool: ์Šˆํผ ๋ธ”๋ž™๋ฆฌ์ŠคํŠธ ์—ฌ๋ถ€๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค
  • _name: String: ์ด๋ฆ„์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค
  • _address: PlayerObject.conn: ๊ณต์šฉ ์ฃผ์†Œ๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

hasMatchedName

hasMatchedName(str: String)

  • ์ด๋ฆ„ ์ผ์น˜ ์—ฌ๋ถ€๋ฅผ ํŒ์ •ํ•ฉ๋‹ˆ๋‹ค
  • ์ด๋ฆ„์ด ๊ณต๋ฐฑ์ด๋ฉด ๊ตฌ๋ฌธ์„ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค
  • ์šฐํšŒ ๋ฌธ์ž๋ฅผ ์ œ์™ธํ•œ ์ƒํƒœ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค

hasMatchedAddress

hasMatchedAddress(conn: PlayerObject.conn)

  • ๊ณต์šฉ ์ฃผ์†Œ ์ผ์น˜ ์—ฌ๋ถ€๋ฅผ ํŒ์ •ํ•ฉ๋‹ˆ๋‹ค

hasMatchedDatabase

hasMatchedDatabase(name: String, address: PlayerObject.conn, isSuper: Bool)

  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ผ์น˜ ์—ฌ๋ถ€๋ฅผ ํŒ์ •ํ•ฉ๋‹ˆ๋‹ค
  • ์ด๋ฆ„ ์ผ์น˜ ์—ฌ๋ถ€๋ฅผ ํŒ์ •ํ•˜๊ธฐ ์œ„ํ•ด hasMatchedName()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ๊ณต์šฉ ์ฃผ์†Œ ์ผ์น˜ ์—ฌ๋ถ€๋ฅผ ํŒ์ •ํ•˜๊ธฐ ์œ„ํ•ด hasMatchedAddress()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ๋ชจ๋‘ ๋ถˆ์ผ์น˜ํ•˜๋ฉด false์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค
  • ์Šˆํผ ๋ธ”๋ž™๋ฆฌ์ŠคํŠธ ์—ฌ๋ถ€์— ๋”ฐ๋ผ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

class Notification

โ“˜โ–ณโ–ฝ

  • ์•Œ๋ฆผ ์‹œ์Šคํ…œ์„ ๊ด€๋ฆฌํ•˜๊ณ  ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค

constructor

constructor(common: Int, acess: Int, caution: Int, info: Int, locked: Int, notice: Int, warning: Int)

  • common: String: ๊ณตํ†ต ๋ฉ”์‹œ์ง€ ์ œ๋ชฉ ์ƒ‰์ƒ์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค
  • acess: String: ๊ถŒํ•œ ์š”๊ตฌ ๋ฉ”์‹œ์ง€ ์ œ๋ชฉ ์ƒ‰์ƒ์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค
  • caution: String: ์ฃผ์˜ ๋ฉ”์‹œ์ง€ ์ œ๋ชฉ ์ƒ‰์ƒ์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค
  • info: String: ์ƒ์„ธ์ •๋ณด ๋ฉ”์‹œ์ง€ ์ œ๋ชฉ ์ƒ‰์ƒ์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค
  • locked: String: ์ž ๊ธˆ/ํ•ด์ œ ๋ฉ”์‹œ์ง€ ์ œ๋ชฉ ์ƒ‰์ƒ์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค
  • notice: String: ์•Œ๋ฆผ ๋ฉ”์‹œ์ง€ ์ œ๋ชฉ ์ƒ‰์ƒ์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค
  • warning: String: ๊ฒฝ๊ณ  ๋ฉ”์‹œ์ง€ ์ œ๋ชฉ ์ƒ‰์ƒ์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค
  • c_LIST_MSG_COLOR: Array<String>: ๋ฉ”์‹œ์ง€ ์ƒ‰์ƒ ๋ชฉ๋ก์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

get msgColor

  • c_LIST_MSG_COLOR์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

findColor

findColor(color: Int, hasRaw: Bool)

  • ์ƒ‰์ƒ ๊ฐ’์„ 16์ง„์ˆ˜ ์ •์ˆ˜ํ˜•์œผ๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

findSound

findSound(sound: Int)

  • ์†Œ๋ฆฌ ๊ฐ’์„ ์ •์ˆ˜ํ˜•์œผ๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

findStyle

findStyle(style: Int)

  • ์„œ์‹ ๊ฐ’์„ ์ •์ˆ˜ํ˜•์œผ๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

announce

announce(msg: String, target: Int, color: Int, style: Int, sound: Int, delay: Int, ...replace: Array<String>)

  • ๋ฉ”์‹œ์ง€๋ฅผ ์ „์†กํ•ฉ๋‹ˆ๋‹ค
  • target์˜ ๊ฐ’์ด ์Œ์ˆ˜์ธ ๊ฒฝ์šฐ ๋Œ€์ƒ์„ ์ œ์™ธํ•œ ๋‹ค๋ฅธ ๋ชจ๋“  ํ”Œ๋ ˆ์ด์–ด์—๊ฒŒ ์ „์†กํ•ฉ๋‹ˆ๋‹ค
  • delay > 0๋ฅผ ๋งŒ์กฑํ•˜๋Š” ๊ฒฝ์šฐ delay๋ฐ€๋ฆฌ์ดˆ ๋’ค์— ์ „์†กํ•˜๋Š” ํƒ€์ด๋จธ๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด TimeManager ํด๋ž˜์Šค์˜ addTimer()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

extMsg

extMsg(title: String, content: String, target: Int, advCom: String, titleColor: Int, contentColor: Int, delay: Int, ...replace: Array<String>)

  • ํ™•์žฅ๋œ ์œ ๋‹ˆ๋ฒ„์…œ ๋ฉ”์‹œ์ง€๋ฅผ ์ „์†กํ•ฉ๋‹ˆ๋‹ค
  • ์ œ๋ชฉ๊ณผ ๋ณธ๋ฌธ์„ ์„œ๋กœ ๋‹ค๋ฅธ ํ–‰์œผ๋กœ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค
  • announce()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

uniMsg

uniMsg(title: String, content: String, target: Int, advCom: String, delay: Int, ...replace: Array<String>)

  • ์œ ๋‹ˆ๋ฒ„์…œ ๋ฉ”์‹œ์ง€๋ฅผ ์ „์†กํ•ฉ๋‹ˆ๋‹ค
  • delay์˜ ๊ฐ’์€ ์ดˆ ๋‹จ์œ„์ž…๋‹ˆ๋‹ค
  • extMsg()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

acess

acess(target: Int, reason: String, ...replace: Array<String>)

  • ๊ถŒํ•œ ์š”๊ตฌ ๋ฉ”์‹œ์ง€๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค
  • extMsg()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

alretMsg

alretMsg(player: Int)

  • ๊ธˆ์ง€์–ด๊ฐ€ ๊ฐ์ง€๋˜๋ฉด ๋ณ„๋„์˜ ์•Œ๋ฆผ์„ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค
  • ํ”Œ๋ ˆ์ด์–ด์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด PlayerManager ํด๋ž˜์Šค์˜ findPlayerById()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ์‹œ์Šคํ…œ ๊ธˆ์ง€์–ด ์ตœ๋Œ€ ๊ฐ์ง€๋Ÿ‰ โ‰ค ํ”Œ๋ ˆ์ด์–ด์˜ ๊ธˆ์ง€์–ด ๊ฐ์ง€๋Ÿ‰๋ฅผ ๋งŒ์กฑํ•˜๋ฉด ๊ฐ•์ œ ํ‡ด์žฅํ•ฉ๋‹ˆ๋‹ค
  • ์ฑ„ํŒ… ํ•„ํ„ฐ๋ง ์—„๊ฒฉ๋„์— ๋”ฐ๋ผ
    • 1๋‹จ๊ณ„์—์„œ๋Š” ๋ณ„๋„๋กœ ์ฒ˜๋ฆฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค
    • 2๋‹จ๊ณ„์—์„œ๋Š” ๊ฐ์ง€ ๋ฉ”์‹œ์ง€๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค
    • 3๋‹จ๊ณ„์—์„œ๋Š” ๊ฐ•์ œ ํ‡ด์žฅํ•ฉ๋‹ˆ๋‹ค
    • 4๋‹จ๊ณ„์—์„œ๋Š” ๊ฐ์ง€ ๋ฉ”์‹œ์ง€๋ฅผ ์ถœ๋ ฅํ•˜๊ณ  ์ฑ„ํŒ…์„ 15์ดˆ๊ฐ„ ๊ธˆ์ง€ํ•ฉ๋‹ˆ๋‹ค
    • 5๋‹จ๊ณ„์—์„œ๋Š” ์ฑ„ํŒ…์„ 30์ดˆ๊ฐ„ ๊ธˆ์ง€ํ•˜๊ณ  ๊ฐ•์ œ ํ‡ด์žฅํ•ฉ๋‹ˆ๋‹ค
    • ๋ธ”๋ž™๋ฆฌ์ŠคํŠธ๋Š” ํ•œ ๋‹จ๊ณ„ ๋” ์—„๊ฒฉํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค
  • announce()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

caution

caution(msg: String, target: Int, advCom: String, ...replace: Array<String>)

  • ์ฃผ์˜ ๋ฉ”์‹œ์ง€๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค
  • extMsg()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

fmtStr

fmtStr(str: String, rep: Array<String>, target: Int)

  • ํŠน์ • ๊ธฐํ˜ธ๋ฅผ ๋ณ€์ˆ˜์˜ ๊ฐ’์œผ๋กœ ์น˜ํ™˜ํ•œ ํ›„ ๋ฌธ์ž์—ด๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค
	if(rep == undefined || rep.length < 1) return PM.isValid(target) ? str.replace(subst, SYS.showPlayerInfo(target, c_PLAYERINFO_TYPE.NAME)) : str;
  • rep์˜ ๊ฐ’์ด ์œ ํšจํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ํ”Œ๋ ˆ์ด์–ด์˜ ์ด๋ฆ„์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

help

help(msg: String, exCom: String, target: Int, advCom: String, ...replace: Array<String>)

  • ๋„์›€๋ง ๋ฉ”์‹œ์ง€๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค
  • uniMsg()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

info

์ธ์ž๊ฐ’ 5๊ฐœ: info(title: String, context: String, target: Int, advCom: String, ...replace: Array<String>)

์ธ์ž๊ฐ’ 4๊ฐœ: info(title: String, context: String, target: Int, advCom: String)

๊ธฐํƒ€: info(msg: String, target: Int, advCom: String)

  • ์ƒ์„ธ์ •๋ณด ๋ฉ”์‹œ์ง€๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค
  • extMsg()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

locked

locked(isLock: Bool, msg: String, target: Int, advCom: String, ...replace: Array<String>)

  • ์ž ๊ธˆ/ํ•ด์ œ ๋ฉ”์‹œ์ง€๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค
  • extMsg()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

msgCommand

msgCommand(title: String, content: String, target: Int, advCom: String, ...replace: Array<String>)

  • ๋ช…๋ น์–ด ๋ชฉ๋ก์„ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค
  • uniMsg()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

notice

notice(msg: String, target: Int, advCom: String, ...replace: Array<String>)

  • ์•Œ๋ฆผ ๋ฉ”์‹œ์ง€๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค
  • uniMsg()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

warning

warning(msg: String, target: Int, advCom: String, ...replace: Array<String>)

  • ๊ฒฝ๊ณ  ๋ฉ”์‹œ์ง€๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค
  • extMsg()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

class ChatManager

โ“˜โ–ณโ–ฝ

  • ์ „๋ฐ˜์ ์ธ ์ฑ„ํŒ… ์‹œ์Šคํ…œ์„ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค

constructor

constructor(isFreeze: Bool, isLockPrivateChat: Bool, detectorLevel: Int, maxForbiddenWordCount: Int, maxRepeatedCount: Int)

  • _playerList: Array: ํ”Œ๋ ˆ์ด์–ด์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค
  • _isFreezeChat: Bool: ์ฑ„ํŒ… ์–ผ๋ฆผ ์—ฌ๋ถ€๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค
  • _isLockPrivateChat: Bool: ๊ฐœ์ธ ์ฑ„ํŒ… ๊ธˆ์ง€ ์—ฌ๋ถ€๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค
  • _detectorLevel: Int: ์ฑ„ํŒ… ํ•„ํ„ฐ๋ง ์—„๊ฒฉ๋„๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค
  • _maxForbiddenWordCount: Int: ๊ธˆ์ง€์–ด ์ตœ๋Œ€ ๊ฐ์ง€๋Ÿ‰์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค
  • _maxRepeatedCount: Int: ๋„๋ฐฐ ์ตœ๋Œ€ ๊ฐ์ง€๋Ÿ‰์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

onPlayerChat

onPlayerChat(player: PlayerObject, msg: String)

  • ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ์ฑ„ํŒ…์„ ์ „์†กํ•˜๋ฉด ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ํ™œ๋™ ์‹œ๊ฐ„์„ ๊ฐฑ์‹ ํ•˜๊ธฐ ์œ„ํ•ด PlayerManager ํด๋ž˜์Šค์˜ updateTime()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
	let commandsList = [							//	๋ช…๋ น์–ด ๋ชฉ๋ก
				internalCommands, standardCommands, customCommands
			];
  • ๋ช…๋ น์–ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ ์œ„ํ•ด internalCommands, standardCommands, customCommands๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
    • ๋ฌธ์ž์—ด ์ฒซ ๊ธ€์ž์— ๋”ฐ๋ผ ๋ช…๋ น์–ด ์œ ํ˜•์„ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค
      • ์ฒซ ๊ธ€์ž๊ฐ€ !์ด๋ฉด 0์˜ ๊ฐ’์œผ๋กœ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค
      • ์ฒซ ๊ธ€์ž๊ฐ€ ?์ด๋ฉด 1์˜ ๊ฐ’์œผ๋กœ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค
      • ์ฒซ ๊ธ€์ž๊ฐ€ !!์ด๋ฉด 2์˜ ๊ฐ’์œผ๋กœ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค
    • ๋ช…๋ น์–ด๋ฅผ ํŒ๋…ํ•˜๊ณ  ๊ธฐ๋Šฅ์„ ์—ฐ๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด GameManager ํด๋ž˜์Šค์˜ runCommand()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
    • ๋ช…๋ น์–ด ์ž…๋ ฅ์ด ๊ฐ์ง€๋œ ๊ฒฝ์šฐ ๊ตฌ๋ฌธ์„ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค
  • ์ฑ„ํŒ…์ด ๊ธˆ์ง€๋œ ๊ฒฝ์šฐ ๊ฐ์ • ์ฑ„ํŒ… ์ „์†ก์„ ์œ„ํ•ด sendEmojiChat()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ์ฑ„ํŒ… ๋กœ๊ทธ ๊ฐฑ์‹ ์„ ์œ„ํ•ด updateChatLog()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ๋ฐ˜๋ณต ์ฑ„ํŒ… ๊ฐ์ง€๋ฅผ ์œ„ํ•ด hasRepeatedChat()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ์ž…๋ ฅ๋œ ๋ฌธ์ž์—ด์—์„œ #์˜ ๊ฐ’์ด ๊ฐ์ง€๋œ ๊ฒฝ์šฐ ๊ฐœ์ธ ์ฑ„ํŒ… ๋ช…๋ น์–ด๋กœ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด Commands ํด๋ž˜์Šค์˜ comPrivateChat()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ํ”Œ๋ ˆ์ด์–ด์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด PlayerManager ํด๋ž˜์Šค์˜ findPlayerById()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ํ”Œ๋ ˆ์ด์–ด์˜ ์ฑ„ํŒ… ๋ชจ๋“œ๊ฐ€
    • 0์˜ ๊ฐ’์„ ๊ฐ€์ง€๋ฉด ์ „์ฒด ์ฑ„ํŒ…์„ ์ „์†กํ•˜๊ธฐ ์œ„ํ•ด sendAllChat()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
    • 1์˜ ๊ฐ’์„ ๊ฐ€์ง€๋ฉด ํŒ€ ์ฑ„ํŒ…์„ ์ „์†กํ•˜๊ธฐ ์œ„ํ•ด sendTeamChat()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

get isFreezeChat

  • _isFreezeChat์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get isLockPrvChat

  • _isLockPrivateChat์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get detectorLev

  • _detectorLevel์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get maxFwdCount

  • ๊ธˆ์ง€์–ด ์ตœ๋Œ€ ๊ฐ์ง€๋Ÿ‰์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค
  • 3 ์ด์ƒ์˜ ๊ฐ’์ด๋ฉด _maxForbiddenWordCount๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค
  • ๋ฒ”์œ„ ์™ธ ๊ฐ’์ด๋ฉด null๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get maxRptCount

  • ๋ฐ˜๋ณต ์ฑ„ํŒ… ์ตœ๋Œ€ ๊ฐ์ง€๋Ÿ‰์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค
  • 3 ์ด์ƒ์˜ ๊ฐ’์ด๋ฉด _maxRepeatedCount๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค
  • ๋ฒ”์œ„ ์™ธ ๊ฐ’์ด๋ฉด null๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

set isFreezeChat

set isFreezeChat(bool: Bool)

  • ์ฑ„ํŒ…์„ ์–ผ๋ฆฌ๊ฑฐ๋‚˜ ๋…น์ž…๋‹ˆ๋‹ค
  • _isFreezeChat์˜ ๊ฐ’์„ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค

set isLockPrvChat

set isLockPrvChat(bool: Bool)

  • ๊ฐœ์ธ ์ฑ„ํŒ…์„ ๊ธˆ์ง€ํ•˜๊ฑฐ๋‚˜ ํ•ด์ œํ•ฉ๋‹ˆ๋‹ค
  • _isLockPrivateChat์˜ ๊ฐ’์„ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค

set maxFwdCount

set maxFwdCount(limit: Int)

  • ๊ธˆ์ง€์–ด ์ตœ๋Œ€ ๊ฐ์ง€๋Ÿ‰์„ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค
  • _maxForbiddenWordCount์˜ ๊ฐ’์„ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค

set maxRptCount

set maxRptCount(limit: Int)

  • ๋ฐ˜๋ณต ์ฑ„ํŒ… ์ตœ๋Œ€ ๊ฐ์ง€๋Ÿ‰์„ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค
  • _maxRepeatedCount์˜ ๊ฐ’์„ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค

set detectorLev

set detectorLev(targetLev: Int)

  • ์ฑ„ํŒ… ํ•„ํ„ฐ๋ง ์—„๊ฒฉ๋„๋ฅผ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค
  • _detectorLevel์˜ ๊ฐ’์„ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค

initPlayerList

initPlayerList(player: Int)

  • ํ”Œ๋ ˆ์ด์–ด์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ดˆ๊ธฐํ™” ํ•ฉ๋‹ˆ๋‹ค
  • ChatSystem ํด๋ž˜์Šค๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

isWhiteSpace

isWhiteSpace(str: String)

  • ๋ฌธ์ž์—ด์˜ ๊ณต๋ฐฑ ์—ฌ๋ถ€๋ฅผ ํŒ์ •ํ•ฉ๋‹ˆ๋‹ค

hasForbiddenWord

hasForbiddenWord(msg: String)

  • ๊ธˆ์ง€์–ด ๊ฐ์ง€ ์—ฌ๋ถ€๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค
  • ๋‹จ์–ด๊ฐ€ ๊ณต๋ฐฑ์ด๋ฉด ์ฒ˜๋ฆฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค
  • ์šฐํšŒ ๋ฌธ์ž๋ฅผ ์ œ์™ธํ•œ ์ƒํƒœ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค

hasMutedChat

hasMutedChat(player: Int)

  • ํ”Œ๋ ˆ์ด์–ด์˜ ์ฑ„ํŒ… ๊ธˆ์ง€ ์—ฌ๋ถ€๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค
  • ํ”Œ๋ ˆ์ด์–ด์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด findPlayerById()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

hasRepeatedChat

hasRepeatedChat(player: Int)

  • ํ”Œ๋ ˆ์ด์–ด์˜ ๋ฐ˜๋ณต ์ฑ„ํŒ… ์—ฌ๋ถ€๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค
  • ํ”Œ๋ ˆ์ด์–ด์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด findPlayerById()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

findPlayerById

findPlayerById(target: Int)

  • ํŠน์ • ๊ณต์šฉ ID๋ฅผ ๊ฐ€์ง„ ํ”Œ๋ ˆ์ด์–ด์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

updateChatLog

updateChatLog(player, msg, time)

  • ํ”Œ๋ ˆ์ด์–ด์˜ ์ฑ„ํŒ… ๋กœ๊ทธ๋ฅผ ๊ฐฑ์‹ ํ•ฉ๋‹ˆ๋‹ค
  • ํ”Œ๋ ˆ์ด์–ด์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด findPlayerById()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

showHelpCommandList

showHelpCommandList(title: String, cml: Array<String>, player: Int)

  • ๋ช…๋ น์–ด ๋ชฉ๋ก์„ ๋ฉ”์‹œ์ง€๋กœ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค
  • ๊ถŒํ•œ ์š”๊ตฌ์— ๋”ฐ๋ผ ๋ช…๋ น์–ด๋ฅผ ์„œ๋กœ ๋‹ค๋ฅธ ํ–‰์œผ๋กœ ๋ถ„๋ฅ˜ํ•ฉ๋‹ˆ๋‹ค

freezeChat

freezeChat(time: Int, player: Int)

  • ์ฑ„ํŒ…์„ ์–ผ๋ฆฝ๋‹ˆ๋‹ค
  • _isFreezeChat์˜ ๊ฐ’์„ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค
  • time โ‰ฅ 5๋ฅผ ๋งŒ์กฑํ•˜๋Š” ๊ฒฝ์šฐ time์ดˆ ๊ฒฝ๊ณผ ์งํ›„ ์ฑ„ํŒ…์„ ๋…น์ด๋Š” ํƒ€์ด๋จธ๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด TimeManager ํด๋ž˜์Šค์˜ addTimer()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

lockPrivateChat

lockPrivateChat(bool: Bool, player: Int)

  • ๊ฐœ์ธ ์ฑ„ํŒ…์„ ๊ธˆ์ง€ํ•˜๊ฑฐ๋‚˜ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค
  • _isLockPrivateChat์˜ ๊ฐ’์„ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค

sendAlert

sendAlert(msg: String, target: Int, ...replace: Array<String>)

  • ๊ด€๋ฆฌ์ž ์ฑ„ํŒ…์„ ์ „์†กํ•ฉ๋‹ˆ๋‹ค
  • ํ˜ธ์ŠคํŠธ๊ฐ€ ์กด์žฌํ•˜๋ฉด room.sendChat()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ํ˜ธ์ŠคํŠธ๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์œผ๋ฉด Notification ํด๋ž˜์Šค์˜ announce()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

sendAllChat

sendAllChat(player: Int, msg: String)

  • ์ „์ฒด ์ฑ„ํŒ…์„ ์ „์†กํ•ฉ๋‹ˆ๋‹ค
  • ๊ธˆ์ง€์–ด ๊ฐ์ง€๋ฅผ ์œ„ํ•ด hasForbiddenWord()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ์ฑ„ํŒ… ํ•„ํ„ฐ๋ง ์—„๊ฒฉ๋„์— ๋”ฐ๋ผ
    • 4๋‹จ๊ณ„์—์„œ๋Š” ๋‚ด์šฉ์„ ์ˆจ๊ธด ์ฑ„ ์ „์†กํ•ฉ๋‹ˆ๋‹ค
    • 5๋‹จ๊ณ„์—์„œ๋Š” ๋‚ด์šฉ์„ ์ˆจ๊ธด ์ฑ„ ์ „์†กํ•ฉ๋‹ˆ๋‹ค
  • sendMsg()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ๊ธˆ์ง€์–ด๊ฐ€ ๊ฐ์ง€๋œ ๊ฒฝ์šฐ Notification ํด๋ž˜์Šค์˜ alretMsg()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

sendEmojiChat

sendEmojiChat(player: Int, msg: String)

  • ๊ฐ์ • ์ฑ„ํŒ…์„ ์ „์†กํ•ฉ๋‹ˆ๋‹ค
  • ๋‚ด์šฉ์„ ๋“ฑ๋ฒˆํ˜ธ์— ์ถœ๋ ฅํ•˜๊ธฐ ์œ„ํ•ด PlayerManager ํด๋ž˜์Šค์˜ giveAvatar()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

sendMsg

sendMsg(msg: String, target: Int, ...replace: Array<String>)

  • ์ผ๋ฐ˜ ๋ฉ”์‹œ์ง€๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค
  • Notification ํด๋ž˜์Šค์˜ announce()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

sendPrivateChat

sendPrivateChat(toPlayer: Int, fromPlayer: Int, msg: String)

  • ๊ฐœ์ธ ์ฑ„ํŒ…์„ ์ „์†กํ•ฉ๋‹ˆ๋‹ค
  • ์™ธ๋ถ€์—์„œ ๋ถˆ๋Ÿฌ์˜จ ๊ฒฝ์šฐ sendAlert()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ์ฑ„ํŒ… ํ•„ํ„ฐ๋ง ์—„๊ฒฉ๋„์— ๋”ฐ๋ผ
    • 4๋‹จ๊ณ„์—์„œ๋Š” ๋‚ด์šฉ์„ ์ˆจ๊ธด ์ฑ„ ์ „์†กํ•ฉ๋‹ˆ๋‹ค
    • 5๋‹จ๊ณ„์—์„œ๋Š” ๋‚ด์šฉ์„ ์ˆจ๊ธด ์ฑ„ ์ „์†กํ•ฉ๋‹ˆ๋‹ค
  • ๊ธˆ์ง€์–ด ๊ฐ์ง€๋ฅผ ์œ„ํ•ด hasForbiddenWord()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

sendTeamChat

sendTeamChat(teamId: TeamID, player: Int, msg: String)

  • ํŒ€ ์ฑ„ํŒ…์„ ์ „์†กํ•ฉ๋‹ˆ๋‹ค
  • ๊ธˆ์ง€์–ด ๊ฐ์ง€๋ฅผ ์œ„ํ•ด hasForbiddenWord()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ์ฑ„ํŒ… ํ•„ํ„ฐ๋ง ์—„๊ฒฉ๋„์— ๋”ฐ๋ผ
    • 4๋‹จ๊ณ„์—์„œ๋Š” ๋‚ด์šฉ์„ ์ˆจ๊ธด ์ฑ„ ์ „์†กํ•ฉ๋‹ˆ๋‹ค
    • 5๋‹จ๊ณ„์—์„œ๋Š” ๋‚ด์šฉ์„ ์ˆจ๊ธด ์ฑ„ ์ „์†กํ•ฉ๋‹ˆ๋‹ค
  • ๊ธˆ์ง€์–ด๊ฐ€ ๊ฐ์ง€๋œ ๊ฒฝ์šฐ Notification ํด๋ž˜์Šค์˜ alretMsg()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

unfreezeChat

unfreezeChat(player: Int)

  • ์ฑ„ํŒ…์„ ๋…น์ž…๋‹ˆ๋‹ค
  • _isFreezeChat์˜ ๊ฐ’์„ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค
  • freeze ํƒ€์ด๋จธ๋ฅผ ์ง€์šฐ๊ธฐ ์œ„ํ•ด TimeManager ํด๋ž˜์Šค์˜ clearTimerByName()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

class ChatSystem

โ“˜โ–ณโ–ฝ

  • ์ฑ„ํŒ… ์‹œ์Šคํ…œ์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค

constructor

constructor(id: Int)

  • _id: Int: ํ”Œ๋ ˆ์ด์–ด์˜ ๊ณต์šฉ ID๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค
  • _str: String: ์ž…๋ ฅ๋œ ๋ฌธ์ž์—ด์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค
  • _timeList: Array<Int>: ์ž…๋ ฅ ์‹œ๊ฐ„์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค
  • _time: Int: ๋งˆ์ง€๋ง‰์œผ๋กœ ์ž…๋ ฅํ•œ ์‹œ๊ฐ„์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค
  • _repeatedCount: Int: ๋ฐ˜๋ณต ์ฑ„ํŒ… ๋ˆ„์  ๊ฐ์ง€๋Ÿ‰์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค
  • _forbiddenWordCount: Int: ๊ธˆ์ง€์–ด ๋ˆ„์  ๊ฐ์ง€๋Ÿ‰์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

get cntFwd

  • _forbiddenWordCount์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get cntRpt

  • _repeatedCount์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

set cntFwd

set cntFwd(v: Int)

  • ๊ธˆ์ง€์–ด ๋ˆ„์  ๊ฐ์ง€๋Ÿ‰์„ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค
  • _forbiddenWordCount์˜ ๊ฐ’์„ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค

set cntRpt

set cntRpt(v: Int)

  • ๋ฐ˜๋ณต ์ฑ„ํŒ… ๊ฐ์ง€๋Ÿ‰์„ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค
  • _repeatedCount์˜ ๊ฐ’์„ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค

hasMutedChat

hasMutedChat(void)

  • ํ”Œ๋ ˆ์ด์–ด์˜ ์ฑ„ํŒ… ๊ธˆ์ง€ ์—ฌ๋ถ€๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค
  • Administration ํด๋ž˜์Šค์˜ isMute()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

hasRepeatedChat

hasRepeatedChat(void)

  • ๋ฐ˜๋ณต ์ฑ„ํŒ… ์—ฌ๋ถ€๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค
  • ๋ฐ˜๋ณต ์ฑ„ํŒ… ๊ฐ์ง€๋Ÿ‰์ด ๋ฏธ์„ค์ • ๋ผ ์žˆ๋Š” ๊ฒฝ์šฐ ๊ตฌ๋ฌธ์„ ์ข…๋ฃŒํ•˜๊ณ  false์˜ ๊ฐ’์œผ๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค
  • ์ฑ„ํŒ… ํ•„ํ„ฐ๋ง์ด ๋น„ํ™œ์„ฑํ™” ๋ผ ์žˆ๋Š” ๊ฒฝ์šฐ ๊ตฌ๋ฌธ์„ ์ข…๋ฃŒํ•˜๊ณ  false์˜ ๊ฐ’์œผ๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค
  • ๊ธˆ์ง€์–ด ๋ถ„์‚ฐ ์ž…๋ ฅ์„ ๊ฐ์ง€ํ•ฉ๋‹ˆ๋‹ค
  • ์ฑ„ํŒ… ๋กœ๊ทธ ๋ฐ์ดํ„ฐ๊ฐ€ ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์œผ๋ฉด ๊ตฌ๋ฌธ์„ ์ข…๋ฃŒํ•˜๊ณ  false์˜ ๊ฐ’์œผ๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค
  • ์šฐํšŒ ๋ฌธ์ž๋ฅผ ์ œ์™ธํ•œ ์ƒํƒœ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค
  • ๋‚ด์šฉ๊ณผ ๋ฌด๊ด€ํ•˜๊ฒŒ ์งง์€ ์‹œ๊ฐ„๋‚ด ์—ฐ์†์ ์ธ ์ฑ„ํŒ… ์ž…๋ ฅ์ด ๊ฐ์ง€๋˜๋ฉด ๋ฐ˜๋ณต ์ฑ„ํŒ…์œผ๋กœ ๊ฐ„์ฃผํ•ฉ๋‹ˆ๋‹ค
  • ์ฑ„ํŒ… ํ•„ํ„ฐ๋ง ์—„๊ฒฉ๋„์— ๋”ฐ๋ผ
    • 1๋‹จ๊ณ„์—์„œ๋Š” ๋ณ„๋„๋กœ ์ฒ˜๋ฆฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค
    • 2๋‹จ๊ณ„์—์„œ๋Š” ๊ฐ์ง€ ๋ฉ”์‹œ์ง€๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค
    • 3๋‹จ๊ณ„์—์„œ๋Š” ๊น…์ œ ํ‡ด์žฅํ•ฉ๋‹ˆ๋‹ค
    • 4๋‹จ๊ณ„์—์„œ๋Š” ๊ฐ์ง€ ๋ฉ”์‹œ์ง€๋ฅผ ์ถœ๋ ฅํ•˜๊ณ  ์ฑ„ํŒ…์„ 15์ดˆ๊ฐ„ ๊ธˆ์ง€ํ•ฉ๋‹ˆ๋‹ค
    • 5๋‹จ๊ณ„์—์„œ๋Š” ์ฑ„ํŒ…์„ 30์ดˆ๊ฐ„ ๊ธˆ์ง€ํ•˜๊ณ  ๊ฐ•์ œ ํ‡ด์žฅํ•ฉ๋‹ˆ๋‹ค
    • ๋ธ”๋ž™๋ฆฌ์ŠคํŠธ์—์„œ๋Š” ํ•œ ๋‹จ๊ณ„ ๋” ์—„๊ฒฉํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค

updateChatLog

updateChatLog(msg: String, time: Int)

  • ํ”Œ๋ ˆ์ด์–ด์˜ ์ฑ„ํŒ… ๋กœ๊ทธ๋ฅผ ๊ฐฑ์‹ ํ•ฉ๋‹ˆ๋‹ค
  • ์ผ์ • ์ˆ˜์ค€ ์ด์ƒ์˜ ๊ธฐ๋ก์ด ์Œ“์—ฌ ์žˆ์œผ๋ฉด ๊ฐ€์žฅ ์˜ค๋ž˜๋œ ๊ธฐ๋ก๋ถ€ํ„ฐ ์‚ญ์ œํ•˜๊ณ  ์ƒˆ๋กœ์šด ๊ธฐ๋ก์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค

class Commands

โ“˜โ–ณโ–ฝ

  • ๋ช…๋ น์–ด์˜ ๊ธฐ๋Šฅ ์ˆ˜ํ–‰์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค

constructor

constructor(maxMsgLength: Int)

  • _maxStringLength: Int: ์ฑ„ํŒ… ๊ธ€์ž ์ œํ•œ ์ˆ˜๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

get maxMsgLen

  • _maxStringLength์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

set maxMsgLen

set maxMsgLen(n: Int)

  • ์ฑ„ํŒ… ๊ธ€์ž ์ œํ•œ ์ˆ˜๋ฅผ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค
  • 15~255 ๋ฒ”์œ„ ์™ธ ๊ฐ’์ด๋ฉด ๊ตฌ๋ฌธ์„ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค
  • _maxStringLength์˜ ๊ฐ’์„ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค

alertSpam

alertSpam(player: Int, msg: String, type: Int)

  • type์˜ ๊ฐ’์ด 0์ธ ๊ฒฝ์šฐ
    • ๋„๋ฐฐ ๋ฐฉ์ง€ ๋ฌธ์ž๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค
  • type์˜ ๊ฐ’์ด 1์ธ ๊ฒฝ์šฐ
    • ๊ถŒํ•œ์ด ์žˆ๋Š” ๊ฒฝ์šฐ ๋ช…๋ น์–ด ์‚ฌ์šฉ๋ฒ•์„ ์ „์†กํ•ฉ๋‹ˆ๋‹ค
    • ๊ถŒํ•œ์ด ์—†๋Š” ๊ฒฝ์šฐ helpCom()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

comUpdateUniform

comUpdateUniform(player: Int, msg: String, type: Int)

  • type์˜ ๊ฐ’์ด 0์ธ ๊ฒฝ์šฐ
    • ํŒ€ ์œ ๋‹ˆํผ์„ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค
    • PlayerManager ํด๋ž˜์Šค์˜ updateUniform()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • type์˜ ๊ฐ’์ด 1์ธ ๊ฒฝ์šฐ
    • ๋ช…๋ น์–ด ์‚ฌ์šฉ๋ฒ•์„ ์ „์†กํ•ฉ๋‹ˆ๋‹ค

comAdminList

comAdminList(player: Int, msg: String, type: Int)

  • type์˜ ๊ฐ’์ด 0์ธ ๊ฒฝ์šฐ
    • ๊ด€๋ฆฌ์ž ๋ช…๋‹จ์„ ์กฐํšŒํ•ฉ๋‹ˆ๋‹ค
    • Administration ํด๋ž˜์Šค์˜ showAdminList()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • type์˜ ๊ฐ’์ด 1์ธ ๊ฒฝ์šฐ
    • ๋ช…๋ น์–ด ์‚ฌ์šฉ๋ฒ•์„ ์ „์†กํ•ฉ๋‹ˆ๋‹ค

comAllChat

comAllChat(player: Int, msg: String, type: Int)

  • type์˜ ๊ฐ’์ด 0์ธ ๊ฒฝ์šฐ
    • ์ „์ฒด ์ฑ„ํŒ…์„ ์ „์†กํ•ฉ๋‹ˆ๋‹ค
    • ChatManager ํด๋ž˜์Šค์˜ sendAllChat()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • type์˜ ๊ฐ’์ด 1์ธ ๊ฒฝ์šฐ
    • ๋ช…๋ น์–ด ์‚ฌ์šฉ๋ฒ•์„ ์ „์†กํ•ฉ๋‹ˆ๋‹ค

comPrivateChat

comPrivateChat(player: Int, msg: String, type: Int)

  • type์˜ ๊ฐ’์ด 0์ธ ๊ฒฝ์šฐ
    • ๊ฐœ์ธ ์ฑ„ํŒ…์„ ์ „์†กํ•ฉ๋‹ˆ๋‹ค
    • ChatManager ํด๋ž˜์Šค์˜ sendPrivateChat()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • type์˜ ๊ฐ’์ด 1์ธ ๊ฒฝ์šฐ
    • ๋ช…๋ น์–ด ์‚ฌ์šฉ๋ฒ•์„ ์ „์†กํ•ฉ๋‹ˆ๋‹ค

comTeamChat

comTeamChat(player: Int, msg: String, type: Int)

  • type์˜ ๊ฐ’์ด 0์ธ ๊ฒฝ์šฐ
    • ํŒ€ ์ฑ„ํŒ…์„ ์ „์†กํ•ฉ๋‹ˆ๋‹ค
    • ChatManager ํด๋ž˜์Šค์˜ sendTeamChat()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • type์˜ ๊ฐ’์ด 1์ธ ๊ฒฝ์šฐ
    • ๋ช…๋ น์–ด ์‚ฌ์šฉ๋ฒ•์„ ์ „์†กํ•ฉ๋‹ˆ๋‹ค

comAfk

comAfk(player: Int, msg: String, type: Int)

  • type์˜ ๊ฐ’์ด 0์ธ ๊ฒฝ์šฐ
    • ์žฅ๊ธฐ ๋ฌด์‘๋‹ต ํ”Œ๋ ˆ์ด์–ด ๋ช…๋‹จ์— ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์ œ์™ธํ•ฉ๋‹ˆ๋‹ค
    • PlayerManager ํด๋ž˜์Šค์˜ enableSleepMode()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • type์˜ ๊ฐ’์ด 1์ธ ๊ฒฝ์šฐ
    • ๋ช…๋ น์–ด ์‚ฌ์šฉ๋ฒ•์„ ์ „์†กํ•ฉ๋‹ˆ๋‹ค

comAllowJoin

comAllowJoin(player: Int, msg: String, type: Int)

  • type์˜ ๊ฐ’์ด 0์ธ ๊ฒฝ์šฐ
    • ํŒ€ ์ž์œจ ๊ต์ฒด๋ฅผ ํ—ˆ์šฉํ•˜๊ฑฐ๋‚˜ ๊ธˆ์ง€ํ•ฉ๋‹ˆ๋‹ค
    • _isAllowTeamSwitch์˜ ๊ฐ’์„ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค
  • type์˜ ๊ฐ’์ด 1์ธ ๊ฒฝ์šฐ
    • ๋ช…๋ น์–ด ์‚ฌ์šฉ๋ฒ•์„ ์ „์†กํ•ฉ๋‹ˆ๋‹ค

comAvatar

comAvatar(player: Int, msg: String, type: Int)

  • type์˜ ๊ฐ’์ด 0์ธ ๊ฒฝ์šฐ
    • ํ”Œ๋ ˆ์ด์–ด์˜ ๋“ฑ๋ฒˆํ˜ธ๋ฅผ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค
    • PlayerManager ํด๋ž˜์Šค์˜ giveAvatar()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • type์˜ ๊ฐ’์ด 1์ธ ๊ฒฝ์šฐ
    • ๋ช…๋ น์–ด ์‚ฌ์šฉ๋ฒ•์„ ์ „์†กํ•ฉ๋‹ˆ๋‹ค

comChatMode

comChatMode(player: Int, msg: String, type: Int)

  • type์˜ ๊ฐ’์ด 0์ธ ๊ฒฝ์šฐ
    • ํ”Œ๋ ˆ์ด์–ด์˜ ๊ธฐ๋ณธ ์ฑ„ํŒ… ๋ชจ๋“œ๋ฅผ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค
    • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐฑ์‹ ์„ ์œ„ํ•ด PlayerManager ํด๋ž˜์Šค์˜ findPlayerById()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • type์˜ ๊ฐ’์ด 1์ธ ๊ฒฝ์šฐ
    • ๋ช…๋ น์–ด ์‚ฌ์šฉ๋ฒ•์„ ์ „์†กํ•ฉ๋‹ˆ๋‹ค

comClearBans

comClearBans(player: Int, msg: String, type: Int)

  • type์˜ ๊ฐ’์ด 0์ธ ๊ฒฝ์šฐ
    • ์˜๊ตฌ ํ‡ด์žฅ ๋ช…๋‹จ์„ ๋ชจ๋‘ ์ง€์›๋‹ˆ๋‹ค
    • ๊ถŒํ•œ์ด ์žˆ๋Š” ๊ฒฝ์šฐ Administration ํด๋ž˜์Šค์˜ clearBans()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • type์˜ ๊ฐ’์ด 1์ธ ๊ฒฝ์šฐ
    • ๋ช…๋ น์–ด ์‚ฌ์šฉ๋ฒ•์„ ์ „์†กํ•ฉ๋‹ˆ๋‹ค

comClearPassword

comClearPassword(player: Int, msg: String, type: Int)

  • type์˜ ๊ฐ’์ด 0์ธ ๊ฒฝ์šฐ
    • ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ํ•ด์ œํ•ฉ๋‹ˆ๋‹ค
    • ๊ถŒํ•œ์ด ์žˆ๋Š” ๊ฒฝ์šฐ Administration ํด๋ž˜์Šค์˜ clearPassword()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • type์˜ ๊ฐ’์ด 1์ธ ๊ฒฝ์šฐ
    • ๋ช…๋ น์–ด ์‚ฌ์šฉ๋ฒ•์„ ์ „์†กํ•ฉ๋‹ˆ๋‹ค

comClearUniform

comClearUniform(player: Int, msg: String, type: Int)

  • type์˜ ๊ฐ’์ด 0์ธ ๊ฒฝ์šฐ
    • ํŒ€ ์œ ๋‹ˆํผ์„ ์›๋ž˜๋Œ€๋กœ ๋Œ๋ฆฝ๋‹ˆ๋‹ค
    • PlayerManager ํด๋ž˜์Šค์˜ clearUniform()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • type์˜ ๊ฐ’์ด 1์ธ ๊ฒฝ์šฐ
    • ๋ช…๋ น์–ด ์‚ฌ์šฉ๋ฒ•์„ ์ „์†กํ•ฉ๋‹ˆ๋‹ค

comFreezeChat

comFreezeChat(player: Int, msg: String, type: Int)

  • type์˜ ๊ฐ’์ด 0์ธ ๊ฒฝ์šฐ
    • ์ฑ„ํŒ…์„ ์–ผ๋ฆฌ๊ฑฐ๋‚˜ ๋…น์ž…๋‹ˆ๋‹ค
    • ๊ถŒํ•œ์ด ์žˆ๋Š” ๊ฒฝ์šฐ ChatManager ํด๋ž˜์Šค์˜ freezeChat()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • type์˜ ๊ฐ’์ด 1์ธ ๊ฒฝ์šฐ
    • ๋ช…๋ น์–ด ์‚ฌ์šฉ๋ฒ•์„ ์ „์†กํ•ฉ๋‹ˆ๋‹ค

comJoin

comJoin(player: Int, msg: String, type: Int)

  • type์˜ ๊ฐ’์ด 0์ธ ๊ฒฝ์šฐ
    • ํ”Œ๋ ˆ์ด์–ด๋ฅผ ๊ฒฝ๊ธฐ์— ํˆฌ์ž…ํ•˜๊ฑฐ๋‚˜ ํŒ€์„ ๊ต์ฒดํ•ฉ๋‹ˆ๋‹ค
    • joinPlayer()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • type์˜ ๊ฐ’์ด 1์ธ ๊ฒฝ์šฐ
    • ๋ช…๋ น์–ด ์‚ฌ์šฉ๋ฒ•์„ ์ „์†กํ•ฉ๋‹ˆ๋‹ค

comKick

comKick(player: Int, msg: String, type: Int)

  • type์˜ ๊ฐ’์ด 0์ธ ๊ฒฝ์šฐ
    • ํŠน์ • ํ”Œ๋ ˆ์ด์–ด๋ฅผ ๊ฐ•์ œ ํ‡ด์žฅํ•ฉ๋‹ˆ๋‹ค
    • ๊ถŒํ•œ์ด ์—†๋Š” ๊ฒฝ์šฐ ๊ตฌ๋ฌธ์„ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค
    • #ID๋ฅผ ํŒ๋ณ„ํ•˜๊ธฐ ์œ„ํ•ด GameManager ํด๋ž˜์Šค์˜ checkPublicId()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
    • ์ง€๋ชฉ ๋Œ€์ƒ์ด ์ด๋ฏธ ํ‡ด์žฅํ•œ ๊ฒฝ์šฐ ๊ตฌ๋ฌธ์„ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค
    • ์ง€๋ชฉ ๋Œ€์ƒ๋ณด๋‹ค ๊ถŒํ•œ์ด ๋‚ฎ์€ ๊ฒฝ์šฐ ๊ตฌ๋ฌธ์„ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค
    • ๋ชจ๋“  ๊ตฌ๋ฌธ์ด ์˜จ์ „ํ•˜๊ฒŒ ์ง„ํ–‰๋˜์—ˆ์œผ๋ฉด Administration ํด๋ž˜์Šค์˜ kickPlayer()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • type์˜ ๊ฐ’์ด 1์ธ ๊ฒฝ์šฐ
    • ๋ช…๋ น์–ด ์‚ฌ์šฉ๋ฒ•์„ ์ „์†กํ•ฉ๋‹ˆ๋‹ค

comLockPrivateChat

comLockPrivateChat(player: Int, msg: String, type: Int)

  • type์˜ ๊ฐ’์ด 0์ธ ๊ฒฝ์šฐ
    • ๊ฐœ์ธ ์ฑ„ํŒ…์„ ๊ธˆ์ง€ํ•˜๊ฑฐ๋‚˜ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค
    • ๊ถŒํ•œ์ด ์žˆ๋Š” ๊ฒฝ์šฐ ChatManager ํด๋ž˜์Šค์˜ lockPrivateChat()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • type์˜ ๊ฐ’์ด 1์ธ ๊ฒฝ์šฐ
    • ๋ช…๋ น์–ด ์‚ฌ์šฉ๋ฒ•์„ ์ „์†กํ•ฉ๋‹ˆ๋‹ค

comMute

comMute(player: Int, msg: String, type: Int)

  • type์˜ ๊ฐ’์ด 0์ธ ๊ฒฝ์šฐ
    • ํŠน์ • ํ”Œ๋ ˆ์ด์–ด์˜ ์ฑ„ํŒ…์„ ๊ธˆ์ง€ํ•ฉ๋‹ˆ๋‹ค
    • ๊ถŒํ•œ์ด ์žˆ๋Š” ๊ฒฝ์šฐ Administration ํด๋ž˜์Šค์˜ mutePlayer()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • type์˜ ๊ฐ’์ด 1์ธ ๊ฒฝ์šฐ
    • ๋ช…๋ น์–ด ์‚ฌ์šฉ๋ฒ•์„ ์ „์†กํ•ฉ๋‹ˆ๋‹ค

comMutedList

comMutedList(player: Int, msg: String, type: Int)

  • type์˜ ๊ฐ’์ด 0์ธ ๊ฒฝ์šฐ
    • ์ฑ„ํŒ… ๊ธˆ์ง€ ๋ช…๋‹จ์„ ์กฐํšŒํ•ฉ๋‹ˆ๋‹ค
    • PlayerManager ํด๋ž˜์Šค์˜ showMutedList()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • type์˜ ๊ฐ’์ด 1์ธ ๊ฒฝ์šฐ
    • ๋ช…๋ น์–ด ์‚ฌ์šฉ๋ฒ•์„ ์ „์†กํ•ฉ๋‹ˆ๋‹ค

comPinHost

comPinHost(player: Int, msg: String, type: Int)

  • ํ˜ธ์ŠคํŠธ๊ฐ€ ๋น„ํ™œ์„ฑํ™” ๋ผ ์žˆ๋Š” ๊ฒฝ์šฐ ๊ตฌ๋ฌธ์„ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค
  • type์˜ ๊ฐ’์ด 0์ธ ๊ฒฝ์šฐ
    • ํ˜ธ์ŠคํŠธ์˜ ํŒ€ ์ด๋™์„ ํ—ˆ์šฉํ•˜๊ฑฐ๋‚˜ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค
    • ๊ถŒํ•œ์ด ์žˆ๋Š” ๊ฒฝ์šฐ Administration ํด๋ž˜์Šค์˜ enablePinHost()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • type์˜ ๊ฐ’์ด 1์ธ ๊ฒฝ์šฐ
    • ๋ช…๋ น์–ด ์‚ฌ์šฉ๋ฒ•์„ ์ „์†กํ•ฉ๋‹ˆ๋‹ค

comRecaptcha

comRecaptcha(player: Int, msg: String, type: Int)

  • type์˜ ๊ฐ’์ด 0์ธ ๊ฒฝ์šฐ
    • reCAPTCHA๋ฅผ ํ™œ์„ฑํ™” ํ•˜๊ฑฐ๋‚˜ ๋น„ํ™œ์„ฑํ™” ํ•ฉ๋‹ˆ๋‹ค
    • ๊ถŒํ•œ์ด ์žˆ๋Š” ๊ฒฝ์šฐ GameSystem ํด๋ž˜์Šค์˜ enableRecaptcha()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • type์˜ ๊ฐ’์ด 1์ธ ๊ฒฝ์šฐ
    • ๋ช…๋ น์–ด ์‚ฌ์šฉ๋ฒ•์„ ์ „์†กํ•ฉ๋‹ˆ๋‹ค

comRecording

comRecording(player: Int, msg: String, type: Int)

  • type์˜ ๊ฐ’์ด 0์ธ ๊ฒฝ์šฐ
    • ๋…นํ™”๋ฅผ ์‹œ์ž‘ํ•˜๊ฑฐ๋‚˜ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค
    • ์ตœ๊ณ  ๊ถŒํ•œ์ด ์žˆ๋Š” ๊ฒฝ์šฐ GameManager ํด๋ž˜์Šค์˜ stopRecording() ๋˜๋Š” startRecording()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • type์˜ ๊ฐ’์ด 1์ธ ๊ฒฝ์šฐ
    • ๋ช…๋ น์–ด ์‚ฌ์šฉ๋ฒ•์„ ์ „์†กํ•ฉ๋‹ˆ๋‹ค

comResetAvatar

comResetAvatar(player: Int, msg: String, type: Int)

  • type์˜ ๊ฐ’์ด 0์ธ ๊ฒฝ์šฐ
    • ํ”Œ๋ ˆ์ด์–ด์˜ ๋“ฑ๋ฒˆํ˜ธ๋ฅผ ์›๋ž˜๋Œ€๋กœ ๋Œ๋ฆฝ๋‹ˆ๋‹ค
    • PlayerManager ํด๋ž˜์Šค์˜ resetAvatar()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • type์˜ ๊ฐ’์ด 1์ธ ๊ฒฝ์šฐ
    • ๋ช…๋ น์–ด ์‚ฌ์šฉ๋ฒ•์„ ์ „์†กํ•ฉ๋‹ˆ๋‹ค

comResetGame

comResetGame(player: Int, msg: String, type: Int)

  • type์˜ ๊ฐ’์ด 0์ธ ๊ฒฝ์šฐ
    • ๊ฒฝ๊ธฐ๋ฅผ ์žฌ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค
    • ๊ถŒํ•œ์ด ์žˆ๋Š” ๊ฒฝ์šฐ Administration ํด๋ž˜์Šค์˜ resetGame()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • type์˜ ๊ฐ’์ด 1์ธ ๊ฒฝ์šฐ
    • ๋ช…๋ น์–ด ์‚ฌ์šฉ๋ฒ•์„ ์ „์†กํ•ฉ๋‹ˆ๋‹ค

comSetPassword

comSetPassword(player: Int, msg: String, type: Int)

  • type์˜ ๊ฐ’์ด 0์ธ ๊ฒฝ์šฐ
    • ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค
    • ๊ถŒํ•œ์ด ์—†๋Š” ๊ฒฝ์šฐ ๊ตฌ๋ฌธ์„ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค
    • ๋น„๋ฐ€๋ฒˆํ˜ธ ๊ณ ์ • ์žฅ์น˜๊ฐ€ ํ™œ์„ฑํ™” ๋ผ ์žˆ๋Š” ๊ฒฝ์šฐ ๊ตฌ๋ฌธ์„ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค
    • 4~30 ๋ฒ”์œ„ ์™ธ ๊ฐ’์ด๋ฉด ๊ตฌ๋ฌธ์„ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค
  • type์˜ ๊ฐ’์ด 1์ธ ๊ฒฝ์šฐ
    • ๋ช…๋ น์–ด ์‚ฌ์šฉ๋ฒ•์„ ์ „์†กํ•ฉ๋‹ˆ๋‹ค

comSetScore

comSetScore(player: Int, msg: String, type: Int)

  • type์˜ ๊ฐ’์ด 0์ธ ๊ฒฝ์šฐ
    • ๋‹ค์Œ ๊ฒฝ๊ธฐ์˜ ์ œํ•œ ์ ์ˆ˜๋ฅผ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค
    • ๊ถŒํ•œ์ด ์žˆ๋Š” ๊ฒฝ์šฐ Administration ํด๋ž˜์Šค์˜ limitScore()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • type์˜ ๊ฐ’์ด 1์ธ ๊ฒฝ์šฐ
    • ๋ช…๋ น์–ด ์‚ฌ์šฉ๋ฒ•์„ ์ „์†กํ•ฉ๋‹ˆ๋‹ค

comSetTime

comSetTime(player: Int, msg: String, type: Int)

  • type์˜ ๊ฐ’์ด 0์ธ ๊ฒฝ์šฐ
    • ๋‹ค์Œ ๊ฒฝ๊ธฐ์˜ ์ œํ•œ ์‹œ๊ฐ„์„ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค
    • ๊ถŒํ•œ์ด ์žˆ๋Š” ๊ฒฝ์šฐ Administration ํด๋ž˜์Šค์˜ limitTime()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • type์˜ ๊ฐ’์ด 1์ธ ๊ฒฝ์šฐ
    • ๋ช…๋ น์–ด ์‚ฌ์šฉ๋ฒ•์„ ์ „์†กํ•ฉ๋‹ˆ๋‹ค

comShowPassword

comShowPassword(player: Int, msg: String, type: Int)

  • type์˜ ๊ฐ’์ด 0์ธ ๊ฒฝ์šฐ
    • ํ˜„์žฌ ์„ค์ •๋œ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์กฐํšŒํ•ฉ๋‹ˆ๋‹ค
    • ๊ถŒํ•œ์ด ์žˆ๋Š” ๊ฒฝ์šฐ Administration ํด๋ž˜์Šค์˜ showPassword()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • type์˜ ๊ฐ’์ด 1์ธ ๊ฒฝ์šฐ
    • ๋ช…๋ น์–ด ์‚ฌ์šฉ๋ฒ•์„ ์ „์†กํ•ฉ๋‹ˆ๋‹ค

comSleepList

comSleepList(player: Int, msg: String, type: Int)

  • type์˜ ๊ฐ’์ด 0์ธ ๊ฒฝ์šฐ
    • ์žฅ๊ธฐ ๋Œ€๊ธฐ์—ด ๋ช…๋‹จ์„ ์กฐํšŒํ•ฉ๋‹ˆ๋‹ค
    • PlayerManager ํด๋ž˜์Šค์˜ showSleepList()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • type์˜ ๊ฐ’์ด 1์ธ ๊ฒฝ์šฐ
    • ๋ช…๋ น์–ด ์‚ฌ์šฉ๋ฒ•์„ ์ „์†กํ•ฉ๋‹ˆ๋‹ค

comSwapGame

comSwapGame(player: Int, msg: String, type: Int)

  • type์˜ ๊ฐ’์ด 0์ธ ๊ฒฝ์šฐ
    • ๊ฒฝ๊ธฐ๋ฅผ ์‹œ์ž‘ํ•˜๊ฑฐ๋‚˜ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค
    • ๊ถŒํ•œ์ด ์žˆ๋Š” ๊ฒฝ์šฐ Administration ํด๋ž˜์Šค์˜ swapGame()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • type์˜ ๊ฐ’์ด 1์ธ ๊ฒฝ์šฐ
    • ๋ช…๋ น์–ด ์‚ฌ์šฉ๋ฒ•์„ ์ „์†กํ•ฉ๋‹ˆ๋‹ค

comUnfreezeChat

comUnfreezeChat(player: Int, msg: String, type: Int)

  • type์˜ ๊ฐ’์ด 0์ธ ๊ฒฝ์šฐ
    • ์ฑ„ํŒ…์„ ๋…น์ž…๋‹ˆ๋‹ค
    • ๊ถŒํ•œ์ด ์žˆ๋Š” ๊ฒฝ์šฐ ChatManager ํด๋ž˜์Šค์˜ unfreezeChat()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • type์˜ ๊ฐ’์ด 1์ธ ๊ฒฝ์šฐ
    • ๋ช…๋ น์–ด ์‚ฌ์šฉ๋ฒ•์„ ์ „์†กํ•ฉ๋‹ˆ๋‹ค

comUnmute

comUnmute(player: Int, msg: String, type: Int)

  • type์˜ ๊ฐ’์ด 0์ธ ๊ฒฝ์šฐ
    • ๊ธˆ์ง€๋œ ํ”Œ๋ ˆ์ด์–ด์˜ ์ฑ„ํŒ…์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค
    • ๊ถŒํ•œ์ด ์—†๋Š” ๊ฒฝ์šฐ ๊ตฌ๋ฌธ์„ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค
    • msg์˜ ๊ฐ’์ด "all"์ธ ๊ฒฝ์šฐ Administration ํด๋ž˜์Šค์˜ clearMutedList()๋ฅผ ํ˜ธ์ถœํ•˜๊ณ  ๊ตฌ๋ฌธ์„ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค
    • ๋ชจ๋“  ๊ตฌ๋ฌธ์ด ์˜จ์ „ํ•˜๊ฒŒ ์ง„ํ–‰๋˜์—ˆ์œผ๋ฉด Administration ํด๋ž˜์Šค์˜ unmutePlayer()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • type์˜ ๊ฐ’์ด 1์ธ ๊ฒฝ์šฐ
    • ๋ช…๋ น์–ด ์‚ฌ์šฉ๋ฒ•์„ ์ „์†กํ•ฉ๋‹ˆ๋‹ค

helpBot

helpBot(player: Int, msg: String, type: Int)

  • type์˜ ๊ฐ’์ด 0 ์ด์™ธ์˜ ๊ฐ’์ด๋ฉด ๊ตฌ๋ฌธ์„ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค
  • ์„œ๋ฒ„ ๋„์›€๋ง์„ ์ „์†กํ•ฉ๋‹ˆ๋‹ค
  • ChatManager ํด๋ž˜์Šค์˜ showHelpCommandList()๋ฅผ ์ „์†กํ•ฉ๋‹ˆ๋‹ค

helpChat

helpChat(player: Int, msg: String, type: Int)

  • type์˜ ๊ฐ’์ด 0 ์ด์™ธ์˜ ๊ฐ’์ด๋ฉด ๊ตฌ๋ฌธ์„ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค
  • ์ฑ„ํŒ… ๋„์›€๋ง์„ ์ „์†กํ•ฉ๋‹ˆ๋‹ค
  • ChatManager ํด๋ž˜์Šค์˜ showHelpCommandList()๋ฅผ ์ „์†กํ•ฉ๋‹ˆ๋‹ค

helpCom

helpCom(player: Int, msg: String, type: Int)

  • type์˜ ๊ฐ’์ด 0 ์ด์™ธ์˜ ๊ฐ’์ด๋ฉด ๊ตฌ๋ฌธ์„ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค
  • ๋ช…๋ น์–ด ๋„์›€๋ง์„ ์ „์†กํ•ฉ๋‹ˆ๋‹ค
  • ChatManager ํด๋ž˜์Šค์˜ showHelpCommandList()๋ฅผ ์ „์†กํ•ฉ๋‹ˆ๋‹ค

helpJoin

helpJoin(player: Int, msg: String, type: Int)

  • type์˜ ๊ฐ’์ด 0 ์ด์™ธ์˜ ๊ฐ’์ด๋ฉด ๊ตฌ๋ฌธ์„ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค
  • ์ฐธ๊ฐ€ ๋„์›€๋ง์„ ์ „์†กํ•ฉ๋‹ˆ๋‹ค
  • ChatManager ํด๋ž˜์Šค์˜ showHelpCommandList()๋ฅผ ์ „์†กํ•ฉ๋‹ˆ๋‹ค

helpMap

helpMap(player: Int, msg: String, type: Int)

  • type์˜ ๊ฐ’์ด 0 ์ด์™ธ์˜ ๊ฐ’์ด๋ฉด ๊ตฌ๋ฌธ์„ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค
  • ๊ฒฝ๊ธฐ์žฅ ๋„์›€๋ง์„ ์ „์†กํ•ฉ๋‹ˆ๋‹ค
  • ChatManager ํด๋ž˜์Šค์˜ showHelpCommandList()๋ฅผ ์ „์†กํ•ฉ๋‹ˆ๋‹ค

helpMisc

helpMisc(player: Int, msg: String, type: Int)

  • type์˜ ๊ฐ’์ด 0 ์ด์™ธ์˜ ๊ฐ’์ด๋ฉด ๊ตฌ๋ฌธ์„ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค
  • ๊ธฐํƒ€ ๋„์›€๋ง์„ ์ „์†กํ•ฉ๋‹ˆ๋‹ค
  • ChatManager ํด๋ž˜์Šค์˜ showHelpCommandList()๋ฅผ ์ „์†กํ•ฉ๋‹ˆ๋‹ค

helpRank

helpRank(player: Int, msg: String, type: Int)

  • type์˜ ๊ฐ’์ด 0 ์ด์™ธ์˜ ๊ฐ’์ด๋ฉด ๊ตฌ๋ฌธ์„ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค
  • ๋žญํฌ ๋„์›€๋ง์„ ์ „์†กํ•ฉ๋‹ˆ๋‹ค
  • ChatManager ํด๋ž˜์Šค์˜ showHelpCommandList()๋ฅผ ์ „์†กํ•ฉ๋‹ˆ๋‹ค

helpScore

helpScore(player: Int, msg: String, type: Int)

  • type์˜ ๊ฐ’์ด 0 ์ด์™ธ์˜ ๊ฐ’์ด๋ฉด ๊ตฌ๋ฌธ์„ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค
  • ์ ์ˆ˜ ๋„์›€๋ง์„ ์ „์†กํ•ฉ๋‹ˆ๋‹ค
  • ChatManager ํด๋ž˜์Šค์˜ showHelpCommandList()๋ฅผ ์ „์†กํ•ฉ๋‹ˆ๋‹ค

infoLink

infoLink(player: Int, msg: String, type: Int)

  • type์˜ ๊ฐ’์ด 0์ธ ๊ฒฝ์šฐ
    • ์„œ๋ฒ„ ์ฃผ์†Œ๋ฅผ ๋ฉ”์‹œ์ง€๋กœ ์ „์†กํ•ฉ๋‹ˆ๋‹ค
  • type์˜ ๊ฐ’์ด 1์ธ ๊ฒฝ์šฐ
    • infoRoom()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

infoMaps

infoMaps(player: Int, msg: String, type: Int)

  • type์˜ ๊ฐ’์ด 0์ธ ๊ฒฝ์šฐ
    • ๊ฒฝ๊ธฐ์žฅ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์กฐํšŒํ•ฉ๋‹ˆ๋‹ค
    • GameManager ํด๋ž˜์Šค์˜ findStadiumNameList()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • type์˜ ๊ฐ’์ด 1์ธ ๊ฒฝ์šฐ
    • ๋ช…๋ น์–ด ์‚ฌ์šฉ๋ฒ•์„ ์ „์†กํ•ฉ๋‹ˆ๋‹ค

infoRanking

infoRanking(player: Int, msg: String, type: Int)

  • type์˜ ๊ฐ’์ด 0์ธ ๊ฒฝ์šฐ
    • ํ”Œ๋ ˆ์ด์–ด์˜ ๋žญํ‚น ์ •๋ณด๋ฅผ ๋ฉ”์‹œ์ง€๋กœ ์ „์†กํ•ฉ๋‹ˆ๋‹ค
    • #ID๋ฅผ ํŒ๋ณ„ํ•˜๊ธฐ ์œ„ํ•ด GameManager ํด๋ž˜์Šค์˜ checkPublicId()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
    • ํ”Œ๋ ˆ์ด์–ด์˜ ์ „์  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด ScoreManager ํด๋ž˜์Šค์˜ findRankListByGrade()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
    • ScoreManager ํด๋ž˜์Šค์˜ sendRanking()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • type์˜ ๊ฐ’์ด 1์ธ ๊ฒฝ์šฐ
    • ๋žญํ‚น ์ธก์ • ๋ฐฉ์‹์„ ๋ฉ”์‹œ์ง€๋กœ ์ „์†กํ•ฉ๋‹ˆ๋‹ค

infoRoom

infoRoom(player: Int, msg: String, type: Int)

  • type์˜ ๊ฐ’์ด 0์ธ ๊ฒฝ์šฐ
    • ์„œ๋ฒ„ ์ •๋ณด๋ฅผ ๋ฉ”์‹œ์ง€๋กœ ์ „์†กํ•ฉ๋‹ˆ๋‹ค
    • GameSystem ํด๋ž˜์Šค์˜ _releaseDate ๋ฐ findInfo()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • type์˜ ๊ฐ’์ด 1์ธ ๊ฒฝ์šฐ
    • infoLink()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

infoStats

infoStats(player: Int, msg: String, type: Int)

  • type์˜ ๊ฐ’์ด 0์ธ ๊ฒฝ์šฐ
    • ํ”Œ๋ ˆ์ด์–ด์˜ ์ ์ˆ˜ ์ •๋ณด๋ฅผ ๋ฉ”์‹œ์ง€๋กœ ์ „์†กํ•ฉ๋‹ˆ๋‹ค
    • ํ”Œ๋ ˆ์ด์–ด์˜ ์ „์  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด ScoreManager ํด๋ž˜์Šค์˜ findRankListByPlayer()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • type์˜ ๊ฐ’์ด 1์ธ ๊ฒฝ์šฐ
    • helpScore()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

joinPlayer

joinPlayer(player: Int, msg: String)

  • ํ”Œ๋ ˆ์ด์–ด์˜ ํŒ€์„ ๊ต์ฒดํ•ฉ๋‹ˆ๋‹ค
  • ํŒ€ ์ž์œจ ๊ต์ฒด๊ฐ€ ๊ธˆ์ง€๋œ ๊ฒฝ์šฐ ๊ตฌ๋ฌธ์„ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค
  • ํ”Œ๋ ˆ์ด์–ด์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด PlayerManager ํด๋ž˜์Šค์˜ findPlayerById()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • #ID๋ฅผ ํŒ๋ณ„ํ•˜๊ธฐ ์œ„ํ•ด GameManager ํด๋ž˜์Šค์˜ checkPublicId()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ์ž…๋ ฅํ•œ ๋ฌธ์ž์—ด์— ๋”ฐ๋ผ comAllowJoin()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ์ง€๋ชฉ ๋Œ€์ƒ์ด ์žฅ๊ธฐ ๋Œ€๊ธฐ์—ด ๋ช…๋‹จ์— ํฌํ•จ๋œ ๊ฒฝ์šฐ ๊ตฌ๋ฌธ์„ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค
  • ๋ชจ๋“  ๊ตฌ๋ฌธ์ด ์˜จ์ „ํ•˜๊ฒŒ ์ง„ํ–‰๋˜์—ˆ์œผ๋ฉด PlayerManager ํด๋ž˜์Šค์˜ moveTeam()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

loadMap

loadMap(player: Int, msg: String, type: Int)

  • type์˜ ๊ฐ’์ด 0์ธ ๊ฒฝ์šฐ
    • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋‚ด์—์„œ ๊ฒฝ๊ธฐ์žฅ์„ ๊ต์ฒดํ•ฉ๋‹ˆ๋‹ค
    • ๊ถŒํ•œ์ด ์žˆ๋Š” ๊ฒฝ์šฐ GameManager ํด๋ž˜์Šค์˜ loadMap()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • type์˜ ๊ฐ’์ด 1์ธ ๊ฒฝ์šฐ
    • ๋ช…๋ น์–ด ์‚ฌ์šฉ๋ฒ•์„ ์ „์†กํ•ฉ๋‹ˆ๋‹ค

class PlayerManager

โ“˜โ–ณโ–ฝ

  • ํ”Œ๋ ˆ์ด์–ด์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ „๋ฐ˜์ ์œผ๋กœ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค

constructor

  • _playerList: Array<PlayerSystem>: ํ”Œ๋ ˆ์ด์–ด์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

onPlayerActivity

onPlayerActivity(player: PlayerObject)

  • ํ”Œ๋ ˆ์ด์–ด์˜ ํ‚ค ์ž…๋ ฅ์ด ๊ฐ์ง€๋˜๋ฉด ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ํ™œ๋™ ์‹œ๊ฐ„์„ ๊ฐฑ์‹ ํ•˜๊ธฐ ์œ„ํ•ด updateTime()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ์„ ๋‘ํ•˜๊ณ  ์žˆ๋Š” ๊ฒฝ์šฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ถ”๊ฐ€๋ฅผ ์œ„ํ•ด ScoreManager ํด๋ž˜์Šค์˜ addTouchedList()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

onPlayerInactivity

onPlayerInactivity(player: Int)

  • ํ”Œ๋ ˆ์ด์–ด์˜ ์‘๋‹ต์ด ์—†๋Š” ๊ฒฝ์šฐ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • afk ํƒ€์ด๋จธ๊ฐ€ ์ด ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ๋ฐ๋ชจ ๋ชจ๋“œ๊ฐ€ ํ™œ์„ฑํ™” ๋ผ ์žˆ๋Š” ๊ฒฝ์šฐ ๊ตฌ๋ฌธ์„ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค
  • ๋ชจ๋“  ๊ตฌ๋ฌธ์ด ์˜จ์ „ํ•˜๊ฒŒ ์ง„ํ–‰๋˜์—ˆ์œผ๋ฉด Administration ํด๋ž˜์Šค์˜ kickPlayer()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

onPlayerTeamChange

onPlayerTeamChange(player: PlayerObject, byPlayer: PlayerObject)

  • ํ”Œ๋ ˆ์ด์–ด์˜ ํŒ€์ด ๋ณ€๊ฒฝ๋˜๋ฉด ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ํ˜ธ์ŠคํŠธ ํŒ€ ์ด๋™์ด ์ œํ•œ๋ผ ์žˆ๊ณ  ๋Œ€์ƒ์ด ํ˜ธ์ŠคํŠธ์ด๋ฉด ๊ตฌ๋ฌธ์„ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค
  • ์žฅ๊ธฐ ๋Œ€๊ธฐ์—ด ๋ช…๋‹จ์— ํฌํ•จ๋œ ๊ฒฝ์šฐ ๊ด€์ „์„์œผ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค
  • GUI์— ๋ช…๋‹จ์„ ๊ฐฑ์‹ ํ•˜๊ธฐ ์œ„ํ•ด GameSystem ํด๋ž˜์Šค์˜ clearListIndex() ๋ฐ addListIndex()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • goal ํƒ€์ด๋จธ๋ฅผ ์ง€์šฐ๊ธฐ ์œ„ํ•ด TimeManager ํด๋ž˜์Šค์˜ clearTimerByName()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ํ™œ๋™ ์‹œ๊ฐ„์„ ๊ฐฑ์‹ ํ•˜๊ธฐ ์œ„ํ•ด PlayerManager ํด๋ž˜์Šค์˜ updateTime()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • GUI ๊ฐฑ์‹ ์„ ์œ„ํ•ด GameSystem ํด๋ž˜์Šค์˜ updateWebGUI()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

initPlayerList

initPlayerList(player: PlayerObject)

  • ํ”Œ๋ ˆ์ด์–ด์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ดˆ๊ธฐํ™” ํ•ฉ๋‹ˆ๋‹ค
  • ์ „์  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ดˆ๊ธฐํ™”๋ฅผ ์œ„ํ•ด ScoreManager ํด๋ž˜์Šค์˜ initRankList()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ์ฑ„ํŒ… ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ดˆ๊ธฐํ™”๋ฅผ ์œ„ํ•ด ChatManager ํด๋ž˜์Šค์˜ initPlayerList()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • PlayerSystem ํด๋ž˜์Šค๋ฅผ ํ˜ธ์ถœํ•˜๊ณ  _playerList์— ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค

isAfkPlayer

isAfkPlayer(player: Int, time: Int)

  • ํ”Œ๋ ˆ์ด์–ด์˜ ์žฅ๊ธฐ ๋ฌด์‘๋‹ต ์—ฌ๋ถ€๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

isValid

isValid(target: PlayerObject || PlayerSystem, includeHost: Bool)

  • ์œ ํšจ ํ”Œ๋ ˆ์ด์–ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฌ๋ถ€๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

hasCommonRange

hasCommonRange(player: Int, ball: Int, range: Float)

  • ํ”Œ๋ ˆ์ด์–ด์™€ ๊ณต ์‚ฌ์ด์˜ ์ถฉ๋Œ ์—ฌ๋ถ€๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

findDiscProp

findDiscProp(target: Int)

  • ํ”Œ๋ ˆ์ด์–ด์˜ ๋””์Šคํฌ ์†์„ฑ์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

findLocalId

findLocalId(publicId: Int)

  • ํ”Œ๋ ˆ์ด์–ด์˜ ๊ฐœ์ธ ID๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

findPlayerList

findPlayerList(isPublic: Bool)

  • ํ”Œ๋ ˆ์ด์–ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ช…๋‹จ์„ isPublic์˜ ๊ฐ’์— ๋”ฐ๋ผ ์ ‘์†์ž ํ˜น์€ ๋ชจ๋“  ๊ธฐ๋ก์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

findPlayerListByTeam

findPlayerListByTeam(team: TeamID)

  • ํŠน์ • ํŒ€ ID๋ฅผ ๊ฐ€์ง„ ํ”Œ๋ ˆ์ด์–ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ช…๋‹จ์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

findPlayerById

findPlayerById(target: Int)

  • ํŠน์ • ๊ณต์šฉ ID๋ฅผ ๊ฐ€์ง„ ํ”Œ๋ ˆ์ด์–ด์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

findTagGrade

findTagGrade(player: Int)

  • ํ”Œ๋ ˆ์ด์–ด์˜ ๊ถŒํ•œ ๋งˆํฌ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

findTagTeam

findTagTeam(team: TeamID)

  • ํ”Œ๋ ˆ์ด์–ด์˜ ํŒ€ ๋งˆํฌ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

addSleepPlayer

addSleepPlayer(player: Int)

  • ํ”Œ๋ ˆ์ด์–ด๋ฅผ ์žฅ๊ธฐ ๋Œ€๊ธฐ์—ด ๋ช…๋‹จ์— ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค

updateAccount

updateAccount(player: Int)

  • ํ”Œ๋ ˆ์ด์–ด์˜ ๊ณ„์ •์„ ๊ฐฑ์‹ ํ•ฉ๋‹ˆ๋‹ค
  • ์ค‘๋ณต ๊ณ„์ •์ด ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ๊ตฌ๋ฌธ์„ ์ข…๋ฃŒํ•˜๊ณ  false์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค
	for(const [k, v] of Object.entries(oldPlayer)){
		if(!["id", "name", "team", "admin", "time", "network", "address",
			"isSleep", "detector"
		].includes(k.replace('_', ''))) newPlayer[k] = v;
	}
  • ์ผ๋ถ€ ํ•ญ๋ชฉ์„ ์ œ์™ธํ•œ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‹ ๊ทœ ๊ณ„์ •์— ๋™๊ธฐํ™” ํ•ฉ๋‹ˆ๋‹ค
  • ์ด์ „ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์ตœ๊ณ  ๊ถŒํ•œ์ด ์žˆ๊ณ  ์ ‘์†์ž ์ค‘์— ๊ด€๋ฆฌ์ž๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•ฉ๋‹ˆ๋‹ค
  • ์ „์  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๊ฐฑ์‹ ์„ ์œ„ํ•ด ScoreManager ํด๋ž˜์Šค์˜ updateAccount()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ๋ชจ๋“  ๊ตฌ๋ฌธ์ด ์˜จ์ „ํ•˜๊ฒŒ ์ง„ํ–‰๋˜์—ˆ์œผ๋ฉด true์˜ ๊ฐ’์œผ๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

updateTime

updateTime(player: Int)

  • ํ”Œ๋ ˆ์ด์–ด์˜ ์‘๋‹ต ์‹œ๊ฐ„์„ ๊ฐฑ์‹ ํ•ฉ๋‹ˆ๋‹ค
  • afkTimer, afkAvatar, afkCheck ํƒ€์ด๋จธ๋ฅผ ์ง€์šฐ๊ธฐ ์œ„ํ•ด TimeManager ํด๋ž˜์Šค์˜ clearTimerByName()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ์žฅ๊ธฐ ๋ฌด์‘๋‹ต ํŒ์ • ์‹œ๊ฐ„์ด ์œ ํšจํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ๊ตฌ๋ฌธ์„ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค
  • ํŒ์ • ๋ฉ”์‹œ์ง€๋ฅผ ์ „์†กํ•˜๋Š” afkCheck ํƒ€์ด๋จธ๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด TimeManager ํด๋ž˜์Šค์˜ addTimer()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
    • ๋“ฑ๋ฒˆํ˜ธ ์•Œ๋ฆผ์„ ์ถœ๋ ฅํ•˜๋Š” afkAvatar ํƒ€์ด๋จธ๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด TimeManager ํด๋ž˜์Šค์˜ addTimer()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ๊ฐ•์ œ ํ‡ด์žฅ์„ ์ฒ˜๋ฆฌํ•˜๋Š” afkTimer ํƒ€์ด๋จธ๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด TimeManager ํด๋ž˜์Šค์˜ addTimer()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

updateUniform

updateUniform(team: TeamID, angle: Int, textColor: Int, bgColor: Array<Int>)

  • ํŒ€ ์œ ๋‹ˆํผ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค

clearPlayerById

clearPlayerById(player: Int)

  • ํ”Œ๋ ˆ์ด์–ด์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ง€์›๋‹ˆ๋‹ค

clearUniform

clearUniform(team: TeamID)

  • ํŒ€ ์œ ๋‹ˆํผ์„ ์›๋ž˜๋Œ€๋กœ ๋Œ๋ฆฝ๋‹ˆ๋‹ค

deleteSleepPlayer

deleteSleepPlayer(player: Int)

  • ํ”Œ๋ ˆ์ด์–ด๋ฅผ ์žฅ๊ธฐ ๋Œ€๊ธฐ์—ด ๋ช…๋‹จ์—์„œ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค

resetAvatar

resetAvatar(player: Int)

  • ํ”Œ๋ ˆ์ด์–ด์˜ ๋“ฑ๋ฒˆํ˜ธ๋ฅผ ์›๋ž˜๋Œ€๋กœ ๋Œ๋ฆฝ๋‹ˆ๋‹ค

showMutedList

showMutedList(player: Int, isPublic: Bool)

  • ์ฑ„ํŒ… ๊ธˆ์ง€ ๋ช…๋‹จ์„ ๋ฉ”์‹œ์ง€๋กœ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค
  • Administration ํด๋ž˜์Šค์˜ findMutedList()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

showSleepList

showSleepList(player: Int, isPublic: Bool)

  • ์žฅ๊ธฐ ๋Œ€๊ธฐ์—ด ๋ช…๋‹จ์„ ๋ฉ”์‹œ์ง€๋กœ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค

cntPlayers

cntPlayers(team: TeamID || String)

  • ์ ‘์†์ž ์ธ์›์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค
  • team == "public"์„ ๋งŒ์กฑํ•˜๋Š” ๊ฒฝ์šฐ _playerList๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

enableSleepMode

enableSleepMode(player: Int, bool: Bool)

  • ํ”Œ๋ ˆ์ด์–ด๋ฅผ ์žฅ๊ธฐ ๋ฌด์‘๋‹ต ๋ช…๋‹จ์— ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์ œ์™ธํ•ฉ๋‹ˆ๋‹ค
  • addSleepPlayer() ๋ฐ deleteSleepPlayer()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • GUI์— ๋ช…๋‹จ์„ ๊ฐฑ์‹ ํ•˜๊ธฐ ์œ„ํ•ด GameSystem ํด๋ž˜์Šค์˜ updateListIndex()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ๊ถŒํ•œ ๊ฐฑ์‹ ์„ ์œ„ํ•ด Administration ํด๋ž˜์Šค์˜ updateAdmins()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

giveAvatar

giveAvatar(player: Int, msg: String)

  • ํ”Œ๋ ˆ์ด์–ด์˜ ๋“ฑ๋ฒˆํ˜ธ๋ฅผ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค

moveTeam

moveTeam(player: Int, team: TeamID)

  • ํ”Œ๋ ˆ์ด์–ด์˜ ํŒ€์„ ๊ต์ฒดํ•ฉ๋‹ˆ๋‹ค

class PlayerSystem

โ“˜โ–ณโ–ฝ

  • ํ”Œ๋ ˆ์ด์–ด์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค

constructor

constructor(id: Int, name: String, team: TeamID, admin: Bool, conn: PlayerObject.conn, auth: PlayerObject.auth)

  • _id: Int: ํ”Œ๋ ˆ์ด์–ด์˜ ๊ณต์šฉ ID๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค
  • _name: String: ํ”Œ๋ ˆ์ด์–ด์˜ ์ด๋ฆ„์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค
  • _address: PlayerObject.conn: ํ”Œ๋ ˆ์ด์–ด์˜ ๊ณต์šฉ ์ฃผ์†Œ๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค
  • _network: PlayerObject.auth: ํ”Œ๋ ˆ์ด์–ด์˜ ๊ณต์šฉ ๋„คํŠธ์›Œํฌ๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค
  • _team: TeamID: ํ”Œ๋ ˆ์ด์–ด์˜ ํŒ€ ID๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค
  • _admin: Int: ํ”Œ๋ ˆ์ด์–ด์˜ ๊ถŒํ•œ์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค
  • _time: Int: ํ”Œ๋ ˆ์ด์–ด์˜ ๋งˆ์ง€๋ง‰ ์‘๋‹ต ์‹œ๊ฐ„์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค
  • _chatmode: Int: ํ”Œ๋ ˆ์ด์–ด์˜ ๊ธฐ๋ณธ ์ฑ„ํŒ… ๋ชจ๋“œ๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค
  • _detector: Int: ํ”Œ๋ ˆ์ด์–ด์˜ ๊ธˆ์ง€์–ด ๊ฐ์ง€๋Ÿ‰์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค
  • _uniqueAvatar: String: ํ”Œ๋ ˆ์ด์–ด์˜ ์ดˆ๊ธฐ ๋“ฑ๋ฒˆํ˜ธ๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค
  • _isMute: Bool: ํ”Œ๋ ˆ์ด์–ด์˜ ์ฑ„ํŒ… ๊ธˆ์ง€ ์—ฌ๋ถ€๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค
  • _isSleep: Bool: ํ”Œ๋ ˆ์ด์–ด์˜ ์žฅ๊ธฐ ๋ฌด์‘๋‹ต ์—ฌ๋ถ€๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค
  • _hasKicked: Bool: ํ”Œ๋ ˆ์ด์–ด์˜ ๊ฐ•์ œ ํ‡ด์žฅ ์—ฌ๋ถ€๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

get chatmode

  • _chatmode์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get discProp

  • room.getPlayerDiscProperties()์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get dpPosition

  • ํ”Œ๋ ˆ์ด์–ด์˜ ์ขŒํ‘œ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get dpGravityVector

  • ํ”Œ๋ ˆ์ด์–ด์˜ ์ค‘๋ ฅ ๋ฒกํ„ฐ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get dpSpeedVector

  • ํ”Œ๋ ˆ์ด์–ด์˜ ์†๋„ ๋ฒกํ„ฐ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get localId

  • ํ”Œ๋ ˆ์ด์–ด์˜ ๊ฐœ์ธ ID๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get unqAvtr

  • _uniqueAvatar์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

set chatmode

set chatmode(value: Int)

  • ํ”Œ๋ ˆ์ด์–ด์˜ ์ฑ„ํŒ… ๋ชจ๋“œ๋ฅผ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค
  • _chatmode์˜ ๊ฐ’์„ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค

set discProp

set discProp(value: DiscPropertiesObject)

  • ํ”Œ๋ ˆ์ด์–ด์˜ ๋””์Šคํฌ ์†์„ฑ์„ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค
  • room.setPlayerDiscProperties()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

set unqAvtr

set unqAvtr(value: String)

  • ํ”Œ๋ ˆ์ด์–ด์˜ ๊ฐœ์ธ ๋“ฑ๋ฒˆํ˜ธ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค
  • _uniqueAvatar์˜ ๊ฐ’์„ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค
  • ๋“ฑ๋ฒˆํ˜ธ ์ดˆ๊ธฐํ™”๋ฅผ ์œ„ํ•ด resetAvatar()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

isAfk

isAfk(time: Int)

  • ํ”Œ๋ ˆ์ด์–ด์˜ ์žฅ๊ธฐ ๋ฌด์‘๋‹ต ์—ฌ๋ถ€๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค
	let limit = SYS.hasInRange(time, 5, 60 * 60 * 3) ? time : GM.afkTime;
  • 5 ๏ผœ limit ๏ผœ 10800 ๋ฒ”์œ„ ์™ธ ๊ฐ’์ด๋ฉด ๊ตฌ๋ฌธ์„ ์ข…๋ฃŒํ•˜๊ณ  false์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค
  • ๋ฏธ์ ‘์†์ž์ธ ๊ฒฝ์šฐ ๊ตฌ๋ฌธ์„ ์ข…๋ฃŒํ•˜๊ณ  false์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค
  • ๊ฒฝ๊ธฐ ๋„์ค‘ ๊ด€์ „์ธ ๊ฒฝ์šฐ false์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค
  • ๊ฒฝ๊ธฐ ๋ฏธ์ง„ํ–‰ ์ƒํƒœ์—์„œ ๊ด€๋ฆฌ์ž๊ฐ€ ์•„๋‹Œ ๊ฒฝ์šฐ false์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค
  • ์žฅ๊ธฐ ๋Œ€๊ธฐ์—ด ๋ช…๋‹จ์— ํฌํ•จ๋œ ๊ฒฝ์šฐ false์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค
  • ๋ชจ๋“  ๊ตฌ๋ฌธ์ด ์˜จ์ „ํ•˜๊ฒŒ ์ง„ํ–‰๋˜์—ˆ์œผ๋ฉด true์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

hasCommonRange

hasCommonRange(ball: Int, range: Float)

  • ํ”Œ๋ ˆ์ด์–ด์™€ ๊ณต ์‚ฌ์ด์˜ ์ถฉ๋Œ ์—ฌ๋ถ€๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค
  • ๋””์Šคํฌ ์†์„ฑ์„ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด ScoreManager ํด๋ž˜์Šค์˜ findDiscProp()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ๊ฑฐ๋ฆฌ๋ฅผ ๊ณ„์‚ฐํ•˜๊ธฐ ์œ„ํ•ด ScoreManager ํด๋ž˜์Šค์˜ calcDistance()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

addSleepList

addSleepList(void)

  • ํ”Œ๋ ˆ์ด์–ด๋ฅผ ์žฅ๊ธฐ ๋Œ€๊ธฐ์—ด ๋ช…๋‹จ์— ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค
  • _isSleep์˜ ๊ฐ’์„ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค
  • ๊ด€์ „์„์œผ๋กœ ํŒ€์„ ๊ต์ฒดํ•ฉ๋‹ˆ๋‹ค
  • ์ตœ๊ณ  ๊ถŒํ•œ์„ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉด ๋ณด์กฐ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•ฉ๋‹ˆ๋‹ค

clearPlayer

clearPlayer(void)

  • ํ”Œ๋ ˆ์ด์–ด์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ง€์›๋‹ˆ๋‹ค
  • GUI์— ๋ช…๋‹จ์„ ์‚ญ์ œํ•˜๊ธฐ ์œ„ํ•ด GameSystem ํด๋ž˜์Šค์˜ clearListIndex()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ์„ ๋‘์ž ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ง€์šฐ๊ธฐ ์œ„ํ•ด ScoreManager ํด๋ž˜์Šค์˜ clearTouchedListByPlayer()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ํ”Œ๋ ˆ์ด์–ด ์†Œ์œ ์˜ ๋ชจ๋“  ํƒ€์ด๋จธ๋ฅผ ์ง€์šฐ๊ธฐ ์œ„ํ•ด TimeManager ํด๋ž˜์Šค์˜ clearTimerByPlayer()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • _team์˜ ๊ฐ’์„ c_TEAM.SPECTATOR์œผ๋กœ ๊ฐฑ์‹ ํ•ฉ๋‹ˆ๋‹ค
  • _time์˜ ๊ฐ’์„ ํ˜„์žฌ ์‹œ๊ฐ„์œผ๋กœ ๊ฐฑ์‹ ํ•ฉ๋‹ˆ๋‹ค
  • _chatmode์˜ ๊ฐ’์„ 0์œผ๋กœ ๊ฐฑ์‹ ํ•ฉ๋‹ˆ๋‹ค
  • _isSleep์˜ ๊ฐ’์„ false๋กœ ๊ฐฑ์‹ ํ•ฉ๋‹ˆ๋‹ค
  • ๊ฐ•์ œ ํ‡ด์žฅ๋œ ๊ฒฝ์šฐ์— ํ•œํ•ด _admin ๋ฐ _hasKicked์˜ ๊ฐ’์„ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค
  • GUI์— ๋ช…๋‹จ์„ ๊ฐฑ์‹ ํ•˜๊ธฐ ์œ„ํ•ด GameSystem ํด๋ž˜์Šค์˜ updateListIndex()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

deleteAdmin

deleteAdmin(isSub: Bool)

  • ํ”Œ๋ ˆ์ด์–ด์˜ ๊ถŒํ•œ์„ ํ•ด์ œํ•ฉ๋‹ˆ๋‹ค
  • ์ตœ๊ณ  ๊ถŒํ•œ์—์„œ ์™„์ „ํžˆ ๊ถŒํ•œ์„ ํ•ด์ œํ•˜๊ฑฐ๋‚˜ ๋ณด์กฐ ๊ถŒํ•œ์„ ํ•ด์ œํ•˜๋Š” ๊ฒฝ์šฐ
    • _admin์˜ ๊ฐ’์„ 0์œผ๋กœ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค
    • GUI์— ๋ช…๋‹จ์„ ๊ฐฑ์‹ ํ•˜๊ธฐ ์œ„ํ•ด GameSystem ํด๋ž˜์Šค์˜ updateListIndex()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

deleteSleepPlayer

deleteSleepPlayer(void)

  • ํ”Œ๋ ˆ์ด์–ด๋ฅผ ์žฅ๊ธฐ ๋Œ€๊ธฐ์—ด ๋ช…๋‹จ์—์„œ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค
  • _isSleep์˜ ๊ฐ’์„ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค
  • ๊ถŒํ•œ ๊ฐฑ์‹ ์„ ์œ„ํ•ด Administration ํด๋ž˜์Šค์˜ updateAdmins()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

resetAvatar

resetAvatar(void)

  • ํ”Œ๋ ˆ์ด์–ด์˜ ๋“ฑ๋ฒˆํ˜ธ๋ฅผ ๊ฐœ์ธ ๋“ฑ๋ฒˆํ˜ธ๋กœ ๋˜๋Œ๋ฆฝ๋‹ˆ๋‹ค
  • giveAvatar()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

showPlayerInfo

showPlayerInfo(type: Int)

  • ํ”Œ๋ ˆ์ด์–ด์˜ ์ •๋ณด๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค
  • type == c_PLAYERINFO_TYPE.LOCAL๋ฅผ ๋งŒ์กฑํ•˜๋Š” ๊ฒฝ์šฐ
    • ํ”Œ๋ ˆ์ด์–ด์˜ ๊ฐœ์ธ ID์™€ ์ด๋ฆ„์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค
  • type == c_PLAYERINFO_TYPE.PUBLIC๋ฅผ ๋งŒ์กฑํ•˜๋Š” ๊ฒฝ์šฐ
    • ํ”Œ๋ ˆ์ด์–ด์˜ ๊ณต์šฉ ID์™€ ์ด๋ฆ„์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค
  • type == c_PLAYERINFO_TYPE.NAME๋ฅผ ๋งŒ์กฑํ•˜๋Š” ๊ฒฝ์šฐ
    • ํ”Œ๋ ˆ์ด์–ด์˜ ์ด๋ฆ„์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค
  • ์ด๋ฆ„์ด ๋น„์–ด ์žˆ์œผ๋ฉด ๊ณต๋ฐฑ์œผ๋กœ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค

adjustGravityVector

adjustGravityVector(x: Float, y: Float)

  • ํ”Œ๋ ˆ์ด์–ด์˜ ์ค‘๋ ฅ ๋ฒกํ„ฐ๋ฅผ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค
  • discProp๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

adjustSpeedVector

adjustSpeedVector(x: Float, y: Float)

  • ํ”Œ๋ ˆ์ด์–ด์˜ ์†๋„ ๋ฒกํ„ฐ๋ฅผ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค
  • discProp๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

giveAdmin

giveAdmin(isSub: Bool)

  • ํ”Œ๋ ˆ์ด์–ด์˜ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•ฉ๋‹ˆ๋‹ค
  • ๋ธ”๋ž™๋ฆฌ์ŠคํŠธ์— ํฌํ•จ๋˜๋Š” ๊ฒฝ์šฐ ์ตœ๊ณ  ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค
  • Administration ํด๋ž˜์Šค์˜ maxAdmin์˜ ๊ฐ’์ด ์ตœ๊ณ  ๊ด€๋ฆฌ์ž ์ธ์›๋ณด๋‹ค ์ ์€ ๊ฒฝ์šฐ ์ตœ๊ณ  ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜์ง€ ์•Š๊ณ  ๊ตฌ๋ฌธ์„ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค
  • Administration ํด๋ž˜์Šค์˜ maxAdmin * 2์˜ ๊ฐ’์ด ๋ณด์กฐ ๊ด€๋ฆฌ์ž ์ธ์›๋ณด๋‹ค ์ ์€ ๊ฒฝ์šฐ ๋ณด์กฐ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜์ง€ ์•Š๊ณ  ๊ตฌ๋ฌธ์„ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค
  • ๋ชจ๋“  ๊ตฌ๋ฌธ์ด ์˜จ์ „ํ•˜๊ฒŒ ์ง„ํ–‰๋˜์—ˆ์œผ๋ฉด GUI์— ๋ช…๋‹จ์„ ๊ฐฑ์‹ ํ•˜๊ธฐ ์œ„ํ•ด GameSystem ํด๋ž˜์Šค์˜ updateListIndex()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

giveAvatar

giveAvatar(str: String)

  • ํ”Œ๋ ˆ์ด์–ด์˜ ๋“ฑ๋ฒˆํ˜ธ๋ฅผ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค
  • room.setPlayerAvatar()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

movePosition

movePosition(dx: Float, dy: Float)

  • ํ”Œ๋ ˆ์ด์–ด๋ฅผ ํ˜„์žฌ ์œ„์น˜ ๊ธฐ์ค€์—์„œ ์ง€์ • ์ขŒํ‘œ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค
  • discProp๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

moveTeam

moveTeam(t: TeamID)

  • ํ”Œ๋ ˆ์ด์–ด์˜ ํŒ€์„ ๊ต์ฒดํ•ฉ๋‹ˆ๋‹ค
  • room.setPlayerTeam()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

teleportPosition

teleportPosition(tx: Float, ty: Float)

  • ํ”Œ๋ ˆ์ด์–ด๋ฅผ ์ง€์ • ์œ„์น˜๋กœ ์ขŒํ‘œ๋ฅผ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค
  • discProp๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

class ScoreManager

โ“˜โ–ณโ–ฝ

  • ์ ์ˆ˜ ๋ฐ ๋žญํ‚น ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ „๋ฐ˜์ ์œผ๋กœ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค

constructor

constructor(collisionSensitivity: Float)

  • _collisionRange: Float: ์ถฉ๋Œ ๋ฒ”์œ„ ๋ฏผ๊ฐ๋„๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค
  • _totalGoals: Array: ํŒ€ ๋ˆ„์  ๊ณจ์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค
  • _touchedList: Array<TouchedPlayer>: ์„ ๋‘์ž ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค
  • _rankList: Array<StatusSystem>: ์ „์  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

onPlayerTeamChange

onPlayerTeamChange(player: PlayerObject, byPlayer: PlayerObject)

  • ํ”Œ๋ ˆ์ด์–ด์˜ ํŒ€์ด ๋ณ€๊ฒฝ๋˜๋ฉด ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ์ผ์ • ์ˆ˜์ค€ ์ด์ƒ์˜ ์„ ๋‘์ž ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์žˆ์œผ๋ฉด clearTouchedListByPlayer()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

onPositionsReset

onPositionsReset(void)

  • ๊ณจ ํŒ์ • ์งํ›„ ํฌ์ง€์…˜์ด ์ดˆ๊ธฐํ™”๋˜๋ฉด ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ์„ ๋‘์ž ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋ชจ๋‘ ์ง€์šฐ๊ธฐ ์œ„ํ•ด clearTouchedList()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

initRankList

initRankList(player: Int)

  • ์ „์  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ดˆ๊ธฐํ™” ํ•ฉ๋‹ˆ๋‹ค
  • StatusSystem ํด๋ž˜์Šค๋ฅผ ํ˜ธ์ถœํ•˜๊ณ  _rankList์— ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค

initTouchedList

initTouchedList(player: Int)

  • ์„ ๋‘์ž ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ดˆ๊ธฐํ™” ํ•ฉ๋‹ˆ๋‹ค
  • TouchedPlayer ํด๋ž˜์Šค๋ฅผ ํ˜ธ์ถœํ•˜๊ณ  _touchedList์— ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค

get collRange

  • _collisionRange์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get gameTime

  • scores.time์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get lastTouchedPlayer

  • ์ตœ๊ทผ ์„ ๋‘์ž์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค
  • ์ ์ ˆํ•œ ๊ฐ’์ด ์—†๋Š” ๊ฒฝ์šฐ null๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get limitScore

  • scores.scoreLimit๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค
  • ์ ์ ˆํ•œ ๊ฐ’์ด ์—†๋Š” ๊ฒฝ์šฐ 0์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get limitTime

  • scores.timeLimit๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค
  • ์ ์ ˆํ•œ ๊ฐ’์ด ์—†๋Š” ๊ฒฝ์šฐ 0์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get scores

  • room.getScores()์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get totalRedGoals

  • _totalGoals[c_TEAM.RED]์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get totalBlueGoals

  • _totalGoals[c_TEAM.BLUE]์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

set collRange

set collRange(v: Float)

  • ์ถฉ๋Œ ๋ฒ”์œ„ ๋ฏผ๊ฐ๋„๋ฅผ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค
  • 1~16 ๋ฒ”์œ„ ์™ธ ๊ฐ’์ด๋ฉด ๊ตฌ๋ฌธ์„ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค
  • _collisionRange์˜ ๊ฐ’์„ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค

set totalRedGoals

set totalRedGoals(v: Int)

  • ๋ ˆ๋“œํŒ€ ๋ˆ„์  ๊ณจ์„ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค
  • _totalGoals[c_TEAM.RED]์˜ ๊ฐ’์„ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค

set totalBlueGoals

set totalBlueGoals(v: Int)

  • ๋ธ”๋ฃจํŒ€ ๋ˆ„์  ๊ณจ์„ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค
  • _totalGoals[c_TEAM.BLUE]์˜ ๊ฐ’์„ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค

hasCommonRange

hasCommonRange(da: DiscPropertiesObject, db: DiscPropertiesObject, range: Float)

  • ๋””์Šคํฌ ๊ฐ„์˜ ์ถฉ๋Œ ์—ฌ๋ถ€๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค
  • ๊ฑฐ๋ฆฌ๋ฅผ ๊ณ„์‚ฐํ•˜๊ธฐ ์œ„ํ•ด calcDistance()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

findAssist

findAssist(target: Int)

  • ์–ด์‹œ์ŠคํŠธ์˜ ์„ ๋‘์ž ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค
  • ํŒ€ ์ธ์›์ด ์ผ์ • ์ˆ˜์ค€ ์ด์ƒ์„ ๋งŒ์กฑํ•˜์ง€ ์•Š์œผ๋ฉด ๊ตฌ๋ฌธ์„ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค

findDiscProp

findDiscProp(target: Int)

  • ๊ณต์˜ ๋””์Šคํฌ ์†์„ฑ์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

findDiscColor

findDiscColor(target: Int)

  • ๋””์Šคํฌ ์ƒ‰์ƒ์„ 16์ง„์ˆ˜๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค
  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด findDiscProp()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ๋ถ€์ ์ ˆํ•œ ๊ฐ’์ด๋ฉด -1์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

findRankListByPlayer

findRankListByPlayer(target: Int)

  • ํŠน์ • ๊ณต์šฉ ID๋ฅผ ๊ฐ€์ง„ ์ „์  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

findRankListByGrade

findRankListByGrade(grade: Int)

  • ํŠน์ • ์ˆœ์œ„๋ฅผ ๊ฐ€์ง„ ์ „์  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

findTouchedListByPlayer

findTouchedListByPlayer(target: Int)

  • ํŠน์ • ๊ณต์šฉ ID๋ฅผ ๊ฐ€์ง„ ์„ ๋‘์ž์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

findWinner

findWinner(scores: ScoresObject)

  • ๋‘ ํŒ€ ์‚ฌ์ด์˜ ์ ์ˆ˜๋ฅผ ๋น„๊ตํ•ด ์šฐ์œ„์ธ ํŒ€์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค
  • ์ ์ˆ˜๊ฐ€ ๋™์ผํ•˜๋ฉด 3์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

addTouchedList

addTouchedList(player: Int)

  • ์„ ๋‘์ž ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค
  • ์ผ์ • ์ˆ˜์ค€ ์ด์ƒ์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์žˆ์œผ๋ฉด ์˜ค๋ž˜๋œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ถ€ํ„ฐ ์ง€์šฐ๊ธฐ ์œ„ํ•ด clearTouchedListByPlayer()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • GUI์— ๋ช…๋‹จ์„ ๊ฐฑ์‹ ํ•˜๊ธฐ ์œ„ํ•ด GameSystem ํด๋ž˜์Šค์˜ updateListIndex()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ์„ ๋‘์ž ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ฃผ๊ธฐ์ ์œผ๋กœ ๊ฐฑ์‹ ํ•˜๋Š” ํƒ€์ด๋จธ๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด TimeManager ํด๋ž˜์Šค์˜ addTimer()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

updateAccount

updateAccount(op: Int, np: Int)

  • ํ”Œ๋ ˆ์ด์–ด์˜ ์ „์  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‹ ๊ทœ ๊ณ„์ •์— ๋™๊ธฐํ™” ํ•ฉ๋‹ˆ๋‹ค

updateGoals

updateGoals(team: TeamID)

  • ํŒ€ ๋“์  ๊ณจ์„ ๊ฐฑ์‹ ํ•ฉ๋‹ˆ๋‹ค
  • ๊ฒฝ๊ธฐ๋ฅผ ์ง„ํ–‰ํ•˜๊ณ  ์žˆ์ง€ ์•Š์œผ๋ฉด ๊ตฌ๋ฌธ์„ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค
  • ํŒ€ ์œ ํ˜•์— ๋”ฐ๋ผ _totalGoals[c_TEAM.RED] ๋ฐ _totalGoals[c_TEAM.BLUE]์˜ ๊ฐ’์„ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค

updateTouchedList

updateTouchedList(target: Int)

  • ์„ ๋‘์ž ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ฐฑ์‹ ํ•ฉ๋‹ˆ๋‹ค
  • ํ”Œ๋ ˆ์ด์–ด์™€ ๊ณต ์‚ฌ์ด์˜ ์ถฉ๋Œ ์—ฌ๋ถ€๋ฅผ ํŒ์ •ํ•˜๊ธฐ ์œ„ํ•ด hasCommonRange()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ์ค‘๋ณต๋œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์—†์œผ๋ฉด addTouchedList()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

clearRankListByPlayer

clearRankListByPlayer(player: Int)

  • ํ”Œ๋ ˆ์ด์–ด์˜ ์ „์  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ง€์›๋‹ˆ๋‹ค

clearTouchedList

clearTouchedList(void)

  • ์„ ๋‘์ž ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋ชจ๋‘ ์ง€์›๋‹ˆ๋‹ค

clearTouchedListByPlayer

clearTouchedListByPlayer(player: Int)

  • ํ”Œ๋ ˆ์ด์–ด์˜ ์„ ๋‘์ž ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ง€์›๋‹ˆ๋‹ค
  • GUI์— ๋ช…๋‹จ์„ ๊ฐฑ์‹ ํ•˜๊ธฐ ์œ„ํ•ด GameSystem ํด๋ž˜์Šค์˜ updateListIndex()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

sendRanking

sendRanking(target: Int, player: Int)

  • ์ „์  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋ฉ”์‹œ์ง€๋กœ ์ „์†กํ•ฉ๋‹ˆ๋‹ค
  • ํ”Œ๋ ˆ์ด์–ด์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด PlayerManager ํด๋ž˜์Šค์˜ findPlayerById()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

calcDistance

calcDistance(a: DiscPropertiesObject, b: DiscPropertiesObject)

  • ๋‘ ๊ฐ์ฒด ๊ฐ„์˜ ๋ฌผ๋ฆฌ์ ์ธ ๊ฑฐ๋ฆฌ๋ฅผ ๊ณ„์‚ฐํ•˜์—ฌ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

calcGoalsByTeam

calcGoalsByTeam(team: TeamID)

  • ํŠน์ • ํŒ€์˜ ๊ฒฝ๊ธฐ ๋“์  ๊ณจ์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

calcGravityVector

calcGravityVector(target: Int)

  • ํ”Œ๋ ˆ์ด์–ด์˜ ์ค‘๋ ฅ ๋ฒกํ„ฐ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

calcPosition

calcPosition(target: Int)

  • ํ”Œ๋ ˆ์ด์–ด์˜ ์ขŒํ‘œ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

calcSpeedVector

calcSpeedVector(target: Int)

  • ํ”Œ๋ ˆ์ด์–ด์˜ ์†๋„ ๋ฒกํ„ฐ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

calcTotalGoalsByTeam

calcTotalGoalsByTeam(team: Int)

  • ํŠน์ • ํŒ€์˜ ๋“์  ๋ˆ„์  ๊ณจ์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

class StatusSystem

โ“˜โ–ณโ–ฝ

  • ํ”Œ๋ ˆ์ด์–ด์˜ ์ „์  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค

constructor

constructor(id: Int)

  • _id: Int: ํ”Œ๋ ˆ์ด์–ด์˜ ๊ณต์šฉ ID๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค
  • _win: Int: ์Šน๋ฆฌํ•œ ๊ฒฝ๊ธฐ ์ˆ˜๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค
  • _lost: Int: ํŒจ๋ฐฐํ•œ ๊ฒฝ๊ธฐ ์ˆ˜๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค
  • _goal: Int: ๋“์ ํ•œ ๊ณจ ์ˆ˜๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค
  • _ownGoal: Int: ์‹ค์ ํ•œ ๊ณจ ์ˆ˜๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค
  • _assist: Int: ๋„์›€ ํšŸ์ˆ˜๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

get asst

  • _assist์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get goal

  • _goal์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get grade

  • ํ”Œ๋ ˆ์ด์–ด์˜ ์ˆœ์œ„๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get lost

  • _lost์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get owgl

  • _ownGoal์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get scores

  • ํ”Œ๋ ˆ์ด์–ด์˜ ์ด ์ ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get status

  • ํ”Œ๋ ˆ์ด์–ด์˜ ๊ธฐ๋ก ์ •๋ณด๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get about

  • ํ”Œ๋ ˆ์ด์–ด์˜ ์ƒ์„ธ ๊ธฐ๋ก ์ •๋ณด๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get records

  • ํ”Œ๋ ˆ์ด์–ด์˜ ์ˆœ์œ„ ์ •๋ณด๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get win

  • _win์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get winPct

  • ํ”Œ๋ ˆ์ด์–ด์˜ ์Šน๋ฅ ์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค
  • ์†Œ์ˆ˜์  ๋‘˜์งธ ์ž๋ฆฌ๊นŒ์ง€ ๋ฐ˜์˜ฌ๋ฆผ ํ•ฉ๋‹ˆ๋‹ค

set asst

set asst(v: Int)

  • ๋„์›€ ํšŸ์ˆ˜๋ฅผ ๊ฐฑ์‹ ํ•ฉ๋‹ˆ๋‹ค
  • _assist์˜ ๊ฐ’์„ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค

set goal

set goal(v: Int)

  • ๋“์ ํ•œ ๊ณจ ์ˆ˜๋ฅผ ๊ฐฑ์‹ ํ•ฉ๋‹ˆ๋‹ค
  • _goal์˜ ๊ฐ’์„ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค

set lost

set lost(v: Int)

  • ํŒจ๋ฐฐ ๊ฒฝ๊ธฐ ์ˆ˜๋ฅผ ๊ฐฑ์‹ ํ•ฉ๋‹ˆ๋‹ค
  • _lost์˜ ๊ฐ’์„ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค

set owgl

set owgl(v: Int)

  • ์‹ค์ ํ•œ ๊ณจ ์ˆ˜๋ฅผ ๊ฐฑ์‹ ํ•ฉ๋‹ˆ๋‹ค
  • _ownGoal์˜ ๊ฐ’์„ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค

set win

set win(v: Int)

  • ์Šน๋ฆฌ ๊ฒฝ๊ธฐ ์ˆ˜๋ฅผ ๊ฐฑ์‹ ํ•ฉ๋‹ˆ๋‹ค
  • _win์˜ ๊ฐ’์„ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค

clearPlayer

clearPlayer(void)

  • ํ”Œ๋ ˆ์ด์–ด์˜ ์ „์  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ง€์›๋‹ˆ๋‹ค

class TouchedPlayer

โ“˜โ–ณโ–ฝ

  • ํ”Œ๋ ˆ์ด์–ด์˜ ์„ ๋‘ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค

constructor

constructor(id: Int)

  • _id: Int: ํ”Œ๋ ˆ์ด์–ด์˜ ๊ณต์šฉ ID๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค
  • _team: Int: ํ”Œ๋ ˆ์ด์–ด์˜ ์†Œ์† ํŒ€ ID๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค
  • _time: Int: ๊ฐ์ง€ ์‹œ๊ฐ„์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค
  • _pos: Int: ๊ฐ์ง€ ์งํ›„ ์ขŒํ‘œ๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค
  • _disc: Int: ๊ฐ์ง€ ์งํ›„ ๋””์Šคํฌ ์†์„ฑ์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

hasCommonRange

hasCommonRange(ball: Int, range: Float)

  • ํ”Œ๋ ˆ์ด์–ด์™€ ๊ณต ์‚ฌ์ด์˜ ์ถฉ๋Œ ์—ฌ๋ถ€๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค
  • ํ”Œ๋ ˆ์ด์–ด์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด PlayerManager ํด๋ž˜์Šค์˜ findPlayerById()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

class TimeManager

โ“˜โ–ณโ–ฝ

  • ํƒ€์ด๋จธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฐ ์‹œ๊ฐ„ ์‹œ์Šคํ…œ์„ ์ „๋ฐ˜์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค

constructor

constructor(timeFormats: Int)

  • _timeFormats: Int: ์‹œ๊ฐ„ ์ถœ๋ ฅ ํ˜•์‹์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค
  • _timerList: Array<TimerSystem>: ํƒ€์ด๋จธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ €์žฅํž™๋‹ˆ๋‹ค

get fullDate

  • Date()์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get time

  • fullDate.getTime()์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get year

  • fullDate.getFullYear()์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get month

  • fullDate.getMonth() + 1์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get day

  • fullDate.getDate()์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get hours

  • fullDate.getHours()์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get minutes

  • fullDate.getMinutes()์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get secs

  • fullDate.getSeconds()์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get meridiem

  • ์˜คํ›„์ด๋ฉด 2์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค
  • ์˜ค์ „์ด๋ฉด 1์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

get fmtTime

  • _timeFormats์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

set fmtTime

set fmtTime(index: Int)

  • ์‹œ๊ฐ„ ์ถœ๋ ฅ ํ˜•์‹์„ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค
  • _timeFormats์˜ ๊ฐ’์„ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค

findTimer

findTimer(findId: String)

  • ํƒ€์ด๋จธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ID๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค
  • ์œ ํšจํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ undefined์˜ ๊ฐ’์œผ๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

findTimerByName

findTimerByName(name: String, player: Int)

  • ํŠน์ • ์ด๋ฆ„์˜ ํƒ€์ด๋จธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

findTimerByPlayer

findTimerByPlayer(target: Int)

  • ํŠน์ • ํ”Œ๋ ˆ์ด์–ด์˜ ํƒ€์ด๋จธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

findTimers

findTimers(target: timerSystem, hasTarget: Bool)

  • ๋น„์Šทํ•œ ์œ ํ˜•์˜ ํƒ€์ด๋จธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

addTimer

addTimer(name: String, func, player: Int, delay: Int, isRepeat: Bool, runDirectly: Bool, seq: Int)

  • ํƒ€์ด๋จธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค
  • ์ด๋ฆ„์ด ๋น„์–ด ์žˆ์œผ๋ฉด ๊ตฌ๋ฌธ์„ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค
  • TimerSystem ํด๋ž˜์Šค๋ฅผ ํ˜ธ์ถœํ•˜๊ณ  _timerList์— ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค
  • ๋ฐ˜๋ณต ํƒ€์ด๋จธ๋กœ ์„ค์ •ํ•œ ๊ฒฝ์šฐ
    • delay์˜ ๊ฐ’์ด ๋ถ€์ ์ ˆํ•˜๊ฑฐ๋‚˜ 100 ๋ฏธ๋งŒ์ธ ๊ฒฝ์šฐ ๋กœ๊ทธ๋ฅผ ๋ณ„๋„๋กœ ์ถœ๋ ฅํ•˜๊ณ  ๊ตฌ๋ฌธ์„ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค
    • 100 โ‰ค delay ๏ผœ 1000๋ฅผ ๋งŒ์กฑํ•˜๋Š” ๊ฒฝ์šฐ ํƒ€์ด๋จธ์˜ ID์™€ ์ด๋ฆ„ ๊ทธ๋ฆฌ๊ณ  ํƒ€์ด๋จธ ๊ฐ„๊ฒฉ์„ ํฌํ•จํ•œ ๋กœ๊ทธ๋ฅผ ๋ณ„๋„๋กœ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค
  • ์ด๋ฏธ ์ฒ˜๋ฆฌํ•œ ํƒ€์ด๋จธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค
  • ๋ชจ๋“  ๊ตฌ๋ฌธ์ด ์˜จ์ „ํ•˜๊ฒŒ ์ง„ํ–‰๋˜์—ˆ์œผ๋ฉด ์ƒ์„ฑํ•œ ํƒ€์ด๋จธ์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

clearTimer

clearTimer(findId: String, skipTrmnFn: Bool)

  • ํƒ€์ด๋จธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค

clearTimerByName

clearTimerByName(name: String, player: Int)

  • ํŠน์ • ์ด๋ฆ„์˜ ํƒ€์ด๋จธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค

clearTimerByPlayer

clearTimerByPlayer(player: Int)

  • ํŠน์ • ํ”Œ๋ ˆ์ด์–ด์˜ ํƒ€์ด๋จธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค

resetTimers

resetTimers(void)

  • ๋ชจ๋“  ํƒ€์ด๋จธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค

showCurrentTime

showCurrentTime(type: Int)

  • ์‹œ๊ฐ„ ์ถœ๋ ฅ ํ˜•์‹์— ๋”ฐ๋ผ ํ˜„์žฌ ์‹œ๊ฐ„์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

showDate

showDate(void)

  • ํ˜„์žฌ ๋‚ ์งœ ๋ฐ ์‹œ๊ฐ„์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

showNormalTime

showNormalTime(void)

  • ํ˜„์žฌ ์‹œ๊ฐ„์„ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

showTime

showTime(void)

  • ํ˜„์žฌ ์‹œ๊ฐ„์„ ์ƒ์„ธํ•˜๊ฒŒ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

class TimerSystem

โ“˜โ–ณโ–ฝ

  • ํƒ€์ด๋จธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค

constructor

constructor(name: String, id: String, exct: Function(), trmn: Function(), delay: Int, preId: String, target: Int, seq: Int)

  • _id: String: ํƒ€์ด๋จธ์˜ ID๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค
  • _name: String: ํƒ€์ด๋จธ์˜ ์ด๋ฆ„์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค
  • _player: Int: ํ”Œ๋ ˆ์ด์–ด์˜ ๊ณต์šฉ ID๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค
  • _time: Int: ๋“ฑ๋ก ์‹œ๊ฐ„์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค
  • _delay: Int: ์ง€์—ฐ ์‹œ๊ฐ„์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค
  • _exctFn: Function(): ์‹คํ–‰ ํ•จ์ˆ˜๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค
  • _trmnFn: Function(): ์ข…๋ฃŒ ํ•จ์ˆ˜๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค
  • _proc: setTimeout: ํƒ€์ด๋จธ ํ•จ์ˆ˜๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค
	let proc = setTimeout(() => {
		exct();
		if(isRepeat == false) TS.clearTimer(id);
	}, dt);
	...
	this._exctFn	= Object.freeze(exct);	// ์‹คํ–‰ ํ•จ์ˆ˜๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค
	...
	this._proc	= Object.freeze(proc);	// ํƒ€์ด๋จธ ํ•จ์ˆ˜๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค
  • ํƒ€์ด๋จธ๊ฐ€ ํ˜ธ์ถœ๋˜๋ฉด ์‹คํ–‰ ํ•จ์ˆ˜๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ณ  ๋ฐ˜๋ณต ์—ฌ๋ถ€์— ๋”ฐ๋ผ ํƒ€์ด๋จธ๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค
  • _sequence: Int: ์ง„ํ–‰ ์ˆœ์„œ๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค
  • _isRepeat: Bool: ๋ฐ˜๋ณต ์—ฌ๋ถ€๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค
	let overloaded = TS.findTimerByName(name, target).filter(t => t._isRepeat == false);
	if(overloaded.length > 0) overloaded.forEach(t => !t._id.includes('r'));
  • ์ด๋ฏธ ์ฒ˜๋ฆฌํ•œ ํƒ€์ด๋จธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค

findTimerByName

findTimerByName(void)

  • ํŠน์ • ์ด๋ฆ„์˜ ํƒ€์ด๋จธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค
  • TimeManager ํด๋ž˜์Šค์˜ findTimerByName()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

findTimerByPlayer

findTimerByPlayer(void)

  • ํŠน์ • ํ”Œ๋ ˆ์ด์–ด์˜ ํƒ€์ด๋จธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค
  • TimeManager ํด๋ž˜์Šค์˜ findTimerByPlayer()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

clearTimer

clearTimer(skipTrmnFn: Bool)

  • ํƒ€์ด๋จธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค
  • TimeManager ํด๋ž˜์Šค์˜ _timerList๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • skipTrmnFn์˜ ๊ฐ’์ด true์ธ ๊ฒฝ์šฐ ์ข…๋ฃŒ ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค

clearTimerByName

clearTimerByName(void)

  • ํŠน์ • ์ด๋ฆ„์˜ ํƒ€์ด๋จธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค
  • TimeManager ํด๋ž˜์Šค์˜ clearTimerByName()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

clearTimerByPlayer

clearTimerByPlayer(void)

  • ํŠน์ • ํ”Œ๋ ˆ์ด์–ด์˜ ํƒ€์ด๋จธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค
  • TimeManager ํด๋ž˜์Šค์˜ clearTimerByPlayer()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

calcCurrentSequence

calcCurrentSequence(mx: Int, mn: Int)

  • ํƒ€์ด๋จธ์˜ ํ˜„์žฌ ์ง„ํ–‰ ์ˆœ์„œ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

calcTotalSequence

calcTotalSequence(seq: Int)

  • ํƒ€์ด๋จธ์˜ ๋ˆ„์  ์ง„ํ–‰ ์ˆœ์„œ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

class GameSystem

โ“˜โ–ณโ–ฝ

  • ๊ฒŒ์ž„ ๋‚ด๋ถ€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ „๋ฐ˜์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค

constructor

constructor(versionRoom: String, releaseDate: String, isDev: Bool, isDemo: Bool, lockPass: Bool)

  • _isDev: Bool: ๊ฐœ๋ฐœ์ž ๋ฒ„์ „ ์œ ๋ฌด๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค
  • _isDemo: Bool: ๋ฐ๋ชจ ๋ชจ๋“œ ์œ ๋ฌด๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค
  • _versionRoom: String: ์„œ๋ฒ„ ๋ฒ„์ „์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค
  • _releaseDate: String: ๋ฆด๋ฆฌ์Šค ์ผ์ž๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค
  • _cssStyleList: Array<String>: CSS ์Šคํƒ€์ผ์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค
  • _hasInitServer: Bool: ์„œ๋ฒ„ ์ดˆ๊ธฐํ™” ์—ฌ๋ถ€๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค
  • _hasInitWebGUI: Bool: GUI ์ดˆ๊ธฐํ™” ์—ฌ๋ถ€๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค
  • _lockPass: Bool: ๋น„๋ฐ€๋ฒˆํ˜ธ ๊ณ ์ • ์—ฌ๋ถ€๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

onClickBtnSendLog

onClickBtnSendLog(void)

  • ๋กœ๊ทธ ์ „์†ก ๋ฒ„ํŠผ ํด๋ฆญ ์ด๋ฒคํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค
  • ์ž…๋ ฅํ•œ ๊ฐ’์ด ์žˆ๋Š” ๊ฒฝ์šฐ printMsg()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ๋กœ๊ทธ ์ž…๋ ฅ๋ž€์˜ ๋‚ด์šฉ์„ ๋น„์›๋‹ˆ๋‹ค

onKeyDownSend

onKeyDownSend(e: KeyboardEvent)

  • ๋กœ๊ทธ ์ž…๋ ฅ๋ž€์˜ ํ‚ค ์ž…๋ ฅ ์ด๋ฒคํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค
  • enter ํ‚ค ์ž…๋ ฅ์ด ๊ฐ์ง€๋˜๋ฉด onClickBtnSendLog()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

initAttributeColors

initAttributeColors(obj: HTMLElement, colBg: String, colText: String, str: String, isGradient: Bool, brd: String)

  • ์†์„ฑ ์ƒ‰์ƒ์„ ์ดˆ๊ธฐํ™” ํ•ฉ๋‹ˆ๋‹ค

initAttributeId

initAttributeId(obj: HTMLElement, cssName: String, id: String)

  • ๊ฐ์ฒด ID๋ฅผ ์ดˆ๊ธฐํ™” ํ•ฉ๋‹ˆ๋‹ค
  • CSS ํด๋ž˜์Šค ์ดˆ๊ธฐํ™”๋ฅผ ์œ„ํ•ด initCssClass()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

initCssClass

initCssClass(elm: HTMLElement, str: String)

  • ๊ฐ์ฒด์˜ CSS ํด๋ž˜์Šค๋ฅผ ์ดˆ๊ธฐํ™” ํ•ฉ๋‹ˆ๋‹ค
  • _cssStyleList์— ์ผ์น˜ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์—†์œผ๋ฉด ๊ตฌ๋ฌธ์„ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค

initElement

initElement(tag: String, id: String, cssName: String)

  • ์š”์†Œ๋ฅผ ์ดˆ๊ธฐํ™” ํ•ฉ๋‹ˆ๋‹ค
  • ๊ฐ์ฒด ID ์ดˆ๊ธฐํ™”๋ฅผ ์œ„ํ•ด initAttributeId()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

initServer

initServer(url: String)

  • ์„œ๋ฒ„๋ฅผ ์ดˆ๊ธฐํ™” ํ•ฉ๋‹ˆ๋‹ค
  • ์ œํ•œ ์ ์ˆ˜์™€ ์ œํ•œ ์‹œ๊ฐ„์„ 0์ ์œผ๋กœ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค
  • ๊ฒฝ๊ธฐ์žฅ ๊ต์ฒด๋ฅผ ์œ„ํ•ด GameManager ํด๋ž˜์Šค์˜ loadMap()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ๊ฐœ๋ฐœ์ž ๋ชจ๋“œ๊ฐ€ ํ™œ์„ฑํ™” ๋ผ ์žˆ๋Š” ๊ฒฝ์šฐ ๋น„๋ฐ€๋ฒˆํ˜ธ ๋“ฑ๋ก์„ ์š”๊ตฌํ•ฉ๋‹ˆ๋‹ค
    • ์‹œ์Šคํ…œ ๋น„๋ฐ€๋ฒˆํ˜ธ ๊ฐฑ์‹ ์„ ์œ„ํ•ด Administration ํด๋ž˜์Šค์˜ updatePassword()๋ฅผ ์š”๊ตฌํ•ฉ๋‹ˆ๋‹ค
    • _lockPass์˜ ๊ฐ’์„ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค
  • internalCommands ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ AMN.logonAdmin์— ๋Œ€์‘ํ•˜๋Š” ๋ช…๋ น์–ด๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ
    • ์ž„์˜๋กœ 4์ž๋ฆฌ ์ˆซ์ž๋กœ ์ด๋ฃจ์–ด์ง„ ์ตœ๊ณ  ๊ถŒํ•œ ๋กœ๊ทธ์ธ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์„ค์ •ํ•˜๊ณ  customCommands ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค
  • ์ฝ˜์†”์ฐฝ์— ์„œ๋ฒ„ ์ •๋ณด๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค
  • ์Šˆํผ ๋ธ”๋ž™๋ฆฌ์ŠคํŠธ ๋ช…๋‹จ์„ ์ดˆ๊ธฐํ™” ํ•ฉ๋‹ˆ๋‹ค
    • ์•„๋ž˜์™€ ๊ฐ™์€ ํ˜•์‹์œผ๋กœ ๋ช…๋‹จ์„ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
	let bl = [
		...
		[true, "์•ŒํŒŒ๊ณ "],
		[true, undefined, "12345678901234567890"]
		...
	]
  • ์ผ๋ฐ˜ ๋ธ”๋ž™๋ฆฌ์ŠคํŠธ ๋ช…๋‹จ์„ ์ดˆ๊ธฐํ™” ํ•ฉ๋‹ˆ๋‹ค
    • ์•„๋ž˜์™€ ๊ฐ™์€ ํ˜•์‹์œผ๋กœ ๋ช…๋‹จ์„ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
	let bl = [
		...
		[false, "์•ŒํŒŒ๊ณ "],
		[false, undefined, "12345678901234567890"]
		...
	]
  • ๋ธ”๋ž™๋ฆฌ์ŠคํŠธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋“ฑ๋ก์„ ์œ„ํ•ด Administration ํด๋ž˜์Šค์˜ addBlacklist()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ์‹œ์Šคํ…œ ๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ ์„ค์ •๋ผ ์žˆ๊ณ  ๊ฐœ๋ฐœ์ž ๋ชจ๋“œ๊ฐ€ ํ™œ์„ฑํ™” ๋ผ ์žˆ์œผ๋ฉฐ, ๋น„๊ณต๊ฐœ ๋ฐฉ์ธ ๊ฒฝ์šฐ reCAPTCHA ํ™œ์„ฑํ™”๋ฅผ ์œ„ํ•ด enableRecaptcha()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ๋ฐ๋ชจ ๋ชจ๋“œ๊ฐ€ ํ™œ์„ฑํ™” ๋ผ ์žˆ๋Š” ๊ฒฝ์šฐ ๋กœ๊ทธ์— ๋ณ„๋„์˜ ๋ฉ”์‹œ์ง€๋ฅผ ์ „์†กํ•ฉ๋‹ˆ๋‹ค
  • _hasInitServer์˜ ๊ฐ’์„ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค

initWebGUI

initWebGUI(void)

  • GUI๋ฅผ ์ดˆ๊ธฐํ™” ํ•ฉ๋‹ˆ๋‹ค
  • ์„œ๋ฒ„ ์ดˆ๊ธฐํ™”๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ ๊ตฌ๋ฌธ์„ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค
  • _framebody์˜ ๊ฐ’์„ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค
  • addWebElement(), initElement(), initAttributeColors()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ์„œ๋ฒ„ ์ •๋ณด UI๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค
    • ์ ‘๊ฑฐ๋‚˜ ํŽผ์น  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค
  • ์ธ์› ์ •๋ณด UI๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค
  • ๊ฒฝ๊ธฐ ์ •๋ณด UI๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค
  • ์ขŒ์„ ์ •๋ณด UI๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค
  • ๋กœ๊ทธ ์ถœ๋ ฅ UI๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค
    • ์ ‘๊ฑฐ๋‚˜ ํŽผ์น  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค
  • ๋กœ๊ทธ ์ž…๋ ฅ UI๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค
  • UMUX ์ €์ž‘๋ฌผ ํ‘œ๊ธฐ๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค
  • _hasInitWebGUI์˜ ๊ฐ’์„ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค

hasInRange

hasInRange(num: Float, min: Float, max: Float)

  • ์ฃผ์–ด์ง„ ๊ฐ’์ด ํŠน์ • ๋ฒ”์œ„์— ํฌํ•จ๋˜๋Š”์ง€ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

findInfo

findInfo(void)

  • UMUX ์ €์ž‘๋ฌผ ๋ฐ ๋ฒ„์ „์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค
  • ์ด ๊ธฐ๋Šฅ์€ ์ž„์˜๋กœ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜ ์‚ญ์ œํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค

addEventInput

addEventInput(obj: HTMLElement, ev: Function())

  • ์†์„ฑ์— ํด๋ฆญ ์ด๋ฒคํŠธ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค

addListIndex

addListIndex(player: Int)

  • GUI์—์„œ ํ”Œ๋ ˆ์ด์–ด์˜ ๋ช…๋‹จ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค
  • ํ”Œ๋ ˆ์ด์–ด์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด PlayerManager ํด๋ž˜์Šค์˜ findPlayerById()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • GUI์—์„œ ๋ช…๋‹จ์„ ๊ฐฑ์‹ ํ•˜๊ธฐ ์œ„ํ•ด updateListIndex()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

addWebElement

addWebElement(pe: HTMLElement, ce: HTMLElement)

  • GUI์— ์ž์‹ ๊ฐ์ฒด๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค

updateListIndex

updateListIndex(player: Int)

  • GUI์—์„œ ํ”Œ๋ ˆ์ด์–ด์˜ ๋ช…๋‹จ์„ ๊ฐฑ์‹ ํ•ฉ๋‹ˆ๋‹ค
  • ๋ฏธ์ ‘์†์ž์ธ ๊ฒฝ์šฐ ๋ช…๋‹จ์„ ์‚ญ์ œํ•˜๊ธฐ ์œ„ํ•ด clearListIndex()๋ฅผ ํ˜ธ์ถœํ•˜๊ณ  ๊ตฌ๋ฌธ์„ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค
  • ํ”Œ๋ ˆ์ด์–ด์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด PlayerManager ํด๋ž˜์Šค์˜ findPlayerById()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • updateNotification ํƒ€์ด๋จธ๋ฅผ ์ง€์šฐ๊ธฐ ์œ„ํ•ด TimeManager ํด๋ž˜์Šค์˜ clearTimerByName()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ๋ช…๋‹จ ์šฐ์ธก์— ํ˜„์žฌ ์ƒํƒœ๋ฅผ ๊ฐ„๋‹จํžˆ ์•Œ๋ฆฌ๋Š” ์•„์ด์ฝ˜์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค
    • ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ์„ ๋‘ํ•˜๊ณ  ์žˆ์œผ๋ฉด โšฝ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค
    • ์ฑ„ํŒ…์ด ๊ธˆ์ง€๋ผ ์žˆ์œผ๋ฉด ๐Ÿฅถ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค
    • ์ž๋ฆฌ๋ฅผ ๋น„์šฐ๊ณ  ์žˆ๋Š” ๊ฒฝ์šฐ ๐Ÿ˜ด์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค
    • ํ”Œ๋ ˆ์ด์–ด์˜ ๊ถŒํ•œ ๋งˆํฌ๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด PlayerManager ํด๋ž˜์Šค์˜ findTagGrade()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
      • ์ด ์•„์ด์ฝ˜์€ ํ•ญ์ƒ ์šฐ์ธก์— ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค
	let maxIcons = 5;
  • ์ตœ๋Œ€ ์•Œ๋ฆผ ๊ฐœ์ˆ˜๋Š” maxIcons์˜ ๊ฐ’์— ๋”ฐ๋ฆ…๋‹ˆ๋‹ค
  • ๊ฐ„๋‹จ ์•Œ๋ฆผ์„ ๊ฐฑ์‹ ํ•˜๋Š” updateNotification ํƒ€์ด๋จธ๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด TimeManager ํด๋ž˜์Šค์˜ addTimer()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

updateWebGUI

updateWebGUI(void)

  • GUI๋ฅผ ๊ฐฑ์‹ ํ•ฉ๋‹ˆ๋‹ค
  • ์ธ์› ์ •๋ณด UI๋ฅผ ๊ฐฑ์‹ ํ•ฉ๋‹ˆ๋‹ค
  • ๊ฒฝ๊ธฐ ์ •๋ณด UI๋ฅผ ๊ฐฑ์‹ ํ•ฉ๋‹ˆ๋‹ค
    • ๋ฐฐ๊ฒฝ ์ƒ‰์ƒ์„ ๋ณ€๊ฒฝํ•˜๊ธฐ ์œ„ํ•ด initAttributeColors()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

clearListIndex

clearListIndex(player: Int)

  • GUI์—์„œ ํ”Œ๋ ˆ์ด์–ด์˜ ๋ช…๋‹จ์„ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค
  • ํ”Œ๋ ˆ์ด์–ด์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด PlayerManager ํด๋ž˜์Šค์˜ findPlayerById()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • GUI์—์„œ ๋ช…๋‹จ์„ ๊ฐฑ์‹ ํ•˜๊ธฐ ์œ„ํ•ด updateListIndex()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

showPlayerInfo

showPlayerInfo(player: Int, type: Int)

  • ํ”Œ๋ ˆ์ด์–ด์˜ ์ •๋ณด๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค
  • ํ”Œ๋ ˆ์ด์–ด์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด PlayerManager ํด๋ž˜์Šค์˜ findPlayerById()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

enableDemo

enableDemo(bool: Bool)

  • ๋ฐ๋ชจ ๋ชจ๋“œ๋ฅผ ํ™œ์„ฑํ™” ํ•˜๊ฑฐ๋‚˜ ๋น„ํ™œ์„ฑํ™” ํ•ฉ๋‹ˆ๋‹ค
  • ๋ชจ๋“  ์ ‘์†์ž์—๊ฒŒ ์ ์šฉ ๋ฉ”์‹œ์ง€๋ฅผ ์ „์†กํ•ฉ๋‹ˆ๋‹ค
  • ์ฝ˜์†”์ฐฝ์— ์ ์šฉ ๋ฉ”์‹œ์ง€๋ฅผ ์ „์†กํ•ฉ๋‹ˆ๋‹ค
    • ์ค‘๋ณต ๋ฐ ๋‹ค์ค‘ ์ ‘์† ํ”Œ๋ ˆ์ด์–ด๋ฅผ ๊ฐ์ง€ํ•ด๋„ ๋Œ€์ƒ์„ ๊ฐ•์ œ ํ‡ด์žฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค
    • ๋น„ํ™œ๋™ ํ”Œ๋ ˆ์ด์–ด๋ฅผ ๊ฐ์ง€ํ•ด๋„ ๋Œ€์ƒ์„ ๊ฐ•์ œ ํ‡ด์žฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค
  • _isDemo์˜ ๊ฐ’์„ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค

enableRecaptcha

enableRecaptcha(isActive: Bool, player: Int)

  • reCAPTCHA๋ฅผ ํ™œ์„ฑํ™” ํ•˜๊ฑฐ๋‚˜ ๋น„ํ™œ์„ฑํ™” ํ•ฉ๋‹ˆ๋‹ค
  • room.setRequireRecaptcha()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

fillLine

fillLine(amount: Int, line: Int)

  • ์ž๋ฆฟ์ˆ˜๋ฅผ ๊ต์ •ํ•ฉ๋‹ˆ๋‹ค

lockPassword

lockPassword(bool: Bool)

  • ์‹œ์Šคํ…œ ๋น„๋ฐ€๋ฒˆํ˜ธ ๊ณ ์ • ์žฅ์น˜๋ฅผ ํ™œ์„ฑํ™” ํ•˜๊ฑฐ๋‚˜ ๋น„ํ™œ์„ฑํ™” ํ•ฉ๋‹ˆ๋‹ค

log

log(io: Bool, msg: String, type: Int, ...replace: Array<String>)

  • ๋กœ๊ทธ๋ฅผ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค
  • ๋นˆ ๋ฉ”์‹œ์ง€๋Š” ์ „์†กํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค
  • ์ถœ๋ ฅ ์‹œ๊ฐ„์„ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด TimeManager ํด๋ž˜์Šค์˜ showCurrentTime()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • outputLogMsg()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

outputLogMsg

outputLogMsg(msg: String, time: String, textColor: String, bgColor: String)

  • ๋กœ๊ทธ๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค
  • ์ถœ๋ ฅ ์‹œ๊ฐ„์„ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด TimeManager ํด๋ž˜์Šค์˜ showCurrentTime()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • GUI ๊ฐฑ์‹ ์„ ์œ„ํ•ด updateWebGUI()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

printMsg

printMsg(msg: String, target: Int)

  • ์„œ๋ฒ„ ๋ฉ”์‹œ์ง€๋ฅผ ์ „์†กํ•ฉ๋‹ˆ๋‹ค
  • ์ „์†ก ๋ฉ”์‹œ์ง€ ์ถœ๋ ฅ์„ ์œ„ํ•ด log()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • target์˜ ๊ฐ’์— ๋”ฐ๋ผ ChatManager ํด๋ž˜์Šค์˜ sendTeamChat() ๋˜๋Š” sendPrivateChat()๋ฅผ ์ „์†กํ•ฉ๋‹ˆ๋‹ค
  • ๋ชจ๋“  ๊ตฌ๋ฌธ์ด ์˜จ์ „ํ•˜๊ฒŒ ์ง„ํ–‰๋˜์—ˆ์œผ๋ฉด ChatManager ํด๋ž˜์Šค์˜ sendAlert()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

sendError

sendError(type: Int)

  • ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€์™€ ๋กœ๊ทธ๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค

๋ช…๋ น์–ด

โ“˜โ–ณโ–ฝ

  • ๋ช…๋ น์–ด ์ž…๋ ฅ์„ ํ†ตํ•ด ํŠน์ • ๊ธฐ๋Šฅ์„ ์‹œ์Šคํ…œ์—์„œ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค
  • ChatManager ํด๋ž˜์Šค์˜ onPlayerChat()๊ฐ€ ๋ช…๋ น์–ด ์ž…๋ ฅ์„ ๊ฐ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • GameManager ํด๋ž˜์Šค์˜ runCommand()๊ฐ€ ์ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ๋ถ€ํ„ฐ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค
  • ๋ช…๋ น์–ด ์ถ”๊ฐ€๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค
// ๊ฒŒ์ž„ ์ฑ„ํŒ…์—์„œ `!1234`, '!!1234', '?1234' ์ค‘์— ํ•˜๋‚˜๋ฅผ ์ž…๋ ฅํ•˜๋ฉด
// AMN.logonAdmin()๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค
["AMN.logonAdmin"] :	["1234"]


// ํ•˜๋‚˜์˜ ํ•จ์ˆ˜์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ฌธ์ž์—ด์„ ๋Œ€์‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค
// ์•„๋ž˜์™€ ๊ฐ™์€ ๊ฒฝ์šฐ `1234`, `4321`, `1111`, `2222` ์ค‘์— ํ•˜๋‚˜๋ฅผ ๊ณจ๋ผ์„œ `!` ๋ฐ `!!` ๋˜๋Š” `?`๋ฅผ ์•ž์— ๋‘๋ฉด
// AMN.logonAdmin()๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค
["AMN.logonAdmin"] :	["1234", "4321", "1111", "2222"]

const internalCommands

  • UMUX ๋‚ด๋ถ€ ์‹œ์Šคํ…œ์„ ์ ‘๊ทผํ•˜๋Š” ๋ช…๋ น์–ด์ž…๋‹ˆ๋‹ค.
  • ๊ธฐ์กด ๋ช…๋ น์–ด ์‚ญ์ œ ๋ฐ ์‹ ๊ทœ ๋ช…๋ น์–ด ์ถ”๊ฐ€๋Š” ๊ธˆ์ง€ํ•ฉ๋‹ˆ๋‹ค.
  • ๊ธฐ์กด ๋ช…๋ น์–ด ์ ‘๊ทผ์„ ๋ง‰๊ฑฐ๋‚˜ ์ฃผ์„ ์ฒ˜๋ฆฌ๋Š” ๊ถŒ์žฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

const standardCommands

  • UMUX ํ‘œ์ค€ ๋ช…๋ น์–ด์ž…๋‹ˆ๋‹ค.
  • ๊ธฐ์กด ๋ช…๋ น์–ด ์‚ญ์ œ ๋ฐ ์‹ ๊ทœ ๋ช…๋ น์–ด ์ถ”๊ฐ€๋Š” ๊ถŒ์žฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ๊ธฐ์กด ๋ช…๋ น์–ด ์ ‘๊ทผ์„ ๋ง‰๊ฑฐ๋‚˜ ์ฃผ์„ ์ฒ˜๋ฆฌ๋Š” ๊ถŒ์žฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

let customCommands

  • UMUX ์ปค์Šคํ…€ ๋ช…๋ น์–ด์ž…๋‹ˆ๋‹ค.
  • ์‹ ๊ทœ ๋ช…๋ น์–ด ์ถ”๊ฐ€์— ์ ํ•ฉํ•˜๋ฉฐ, ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.

์ด๋ฒคํŠธ

โ“˜โ–ณโ–ฝ

room.onGameStart

onGameStart(byPlayer: PlayerObject)

  • ๊ฒฝ๊ธฐ๊ฐ€ ์‹œ์ž‘๋˜๋ฉด ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • GameManager ํด๋ž˜์Šค์˜ onGameStart()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

room.onGameTick

onGameTick(void)

  • ๊ฒฝ๊ธฐ๊ฐ€ ์ง„ํ–‰๋˜๋Š” ๋™์•ˆ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • GameManager ํด๋ž˜์Šค์˜ onGameTick()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

room.onGameStop

onGameStop(byPlayer: PlayerObject)

  • ๊ฒฝ๊ธฐ๊ฐ€ ์ข…๋ฃŒ๋˜๋ฉด ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • GameManager ํด๋ž˜์Šค์˜ onGameStop()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

room.onGamePause

onGamePause(byPlayer: PlayerObject)

  • ๊ฒฝ๊ธฐ๊ฐ€ ์ค‘์ง€๋˜๋ฉด ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • GameManager ํด๋ž˜์Šค์˜ onGamePause()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

room.onGameUnpause

onGameUnpause(byPlayer: PlayerObject)

  • ๊ฒฝ๊ธฐ๊ฐ€ ์žฌ๊ฐœ๋˜๋ฉด ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • GameManager ํด๋ž˜์Šค์˜ onGameUnpause()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

room.onKickRateLimitSet

onKickRateLimitSet(min: Int, rate: Int, burst: Int, player: PlayerObject)

  • ํ‚ฅ ์ œํ•œ์ด ์„ค์ •๋˜๋ฉด ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • GameManager ํด๋ž˜์Šค์˜ onKickRateLimitSet()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

room.onPlayerActivity

onPlayerActivity(player: PlayerObject)

  • ํ”Œ๋ ˆ์ด์–ด์˜ ํ‚ค ์ž…๋ ฅ์ด ๊ฐ์ง€๋˜๋ฉด ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ์„ ๋‘์ž ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐฑ์‹ ์„ ์œ„ํ•ด PlayerManager ํด๋ž˜์Šค์˜ onPlayerActivity()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

room.onPlayerAdminChange

onPlayerAdminChange(givenPlayer: PlayerObject, byPlayer: PlayerObject)

  • ํ”Œ๋ ˆ์ด์–ด์˜ ๊ถŒํ•œ์ด ๋ณ€๊ฒฝ๋˜๋ฉด ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ๊ถŒํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐฑ์‹ ์„ ์œ„ํ•ด Administration ํด๋ž˜์Šค์˜ onPlayerAdminChange()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

room.onPlayerBallKick

onPlayerBallKick(player: PlayerObject)

  • ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ๊ณต์„ ์ฐจ๋ฉด ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ์„ ๋‘์ž ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ถ”๊ฐ€๋ฅผ ์œ„ํ•ด GameManager ํด๋ž˜์Šค์˜ onPlayerBallKick()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

room.onPlayerChat

onPlayerChat(player: PlayerObject, msg: String)

  • ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ์ฑ„ํŒ…์„ ์ „์†กํ•˜๋ฉด ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ์ฑ„ํŒ… ๋‚ด์šฉ์„ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ChatSystem ํด๋ž˜์Šค์˜ onPlayerChat()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ๋ช…๋ น์–ด ์ž…๋ ฅ ๊ธฐ๋ก์„ ๋‚จ๊ธฐ์ง€ ์•Š๊ธฐ ์œ„ํ•ด false์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค

room.onPlayerJoin

onPlayerJoin(player: PlayerObject)

  • ์‹ ๊ทœ ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ์ ‘์†ํ•˜๋ฉด ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ํ”Œ๋ ˆ์ด์–ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ถ”๊ฐ€๋ฅผ ์œ„ํ•ด GameManager ํด๋ž˜์Šค์˜ onPlayerJoin()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

room.onPlayerLeave

onPlayerLeave(player: PlayerObject)

  • ์ ‘์†์ž๊ฐ€ ํ‡ด์žฅํ•˜๋ฉด ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ๊ฐ•์ œ ํ‡ด์žฅ ์งํ›„ ์ด๋ฒคํŠธ๋ฅผ ์ œ์–ดํ•˜๋Š” gm_onPlayerLeave ํƒ€์ด๋จธ๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด TimeManager ํด๋ž˜์Šค์˜ addTimer()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
    • ํ”Œ๋ ˆ์ด์–ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐฑ์‹ ์„ ์œ„ํ•ด GameManager ํด๋ž˜์Šค์˜ onPlayerLeave()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

room.onPlayerKicked

onPlayerKicked(kickedPlayer: PlayerObject, reason: String, ban: Bool, byPlayer: PlayerObject)

  • ์ ‘์†์ž๊ฐ€ ๊ฐ•์ œ ํ‡ด์žฅ๋˜๋ฉด ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ํ”Œ๋ ˆ์ด์–ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐฑ์‹ ์„ ์œ„ํ•ด Administration ํด๋ž˜์Šค์˜ onPlayerKicked()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

room.onPlayerTeamChange

onPlayerTeamChange(player: PlayerObject, byPlayer: PlayerObject)

  • ํ”Œ๋ ˆ์ด์–ด์˜ ํŒ€์ด ๋ณ€๊ฒฝ๋˜๋ฉด ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ํ”Œ๋ ˆ์ด์–ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐฑ์‹ ์„ ์œ„ํ•ด PlayerManager ํด๋ž˜์Šค์˜ onPlayerTeamChange()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ์„ ๋‘์ž ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐฑ์‹ ์„ ์œ„ํ•ด ScoreManager ํด๋ž˜์Šค์˜ onPlayerTeamChange()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

room.onPositionsReset

onPositionsReset(void)

  • ๊ณจ ํŒ์ • ์งํ›„ ํฌ์ง€์…˜์ด ์ดˆ๊ธฐํ™”๋˜๋ฉด ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • GameManager ํด๋ž˜์Šค์˜ onPositionsReset()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

room.onStadiumChange

onStadiumChange(newMap: String, byPlayer: PlayerObject)

  • ๊ฒฝ๊ธฐ์žฅ์ด ๊ต์ฒด๋˜๋ฉด ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • ๊ฒฝ๊ธฐ์žฅ ์œ ํšจ ํ™•์ธ์„ ์œ„ํ•ด GameManager ํด๋ž˜์Šค์˜ onStadiumChange()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

room.onRoomLink

onRoomLink(url: String)

  • ์‹œ์Šคํ…œ์—์„œ ๋งํฌ๊ฐ€ ์ƒ์„ฑ๋˜๋ฉด ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • GameManager ํด๋ž˜์Šค์˜ onRoomLink()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

room.onTeamGoal

onTeamGoal(team: TeamID)

  • ๊ณจ์ด ํŒ์ •๋˜๋ฉด ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • GameManager ํด๋ž˜์Šค์˜ onTeamGoal()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

room.onTeamVictory

onTeamVictory(scores: ScoresObject)

  • ๊ฒฝ๊ธฐ ์ŠนํŒจ๊ฐ€ ๊ฒฐ์ •๋˜๋ฉด ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค
  • GameManager ํด๋ž˜์Šค์˜ onTeamVictory()๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค

๊ธฐํƒ€

โ“˜โ–ณ

ํƒ€์ด๋จธ ์ž‘์„ฑ

...
/*** ๊ฒŒ์ž„ ๋งค๋‹ˆ์ € ํด๋ž˜์Šค ***/
class GameManager{
	...
	onTeamGoal(team){ 					/* ๊ณจ ํŒ์ • ์ด๋ฒคํŠธ */
		...
		let goalTimer = TM.addTimer("goal", {
			EXECUTE : () => {					// ์‹คํ–‰ ํ•จ์ˆ˜
				let showAvatar = function(s, t, c){
					...
					// s: ํƒ€์ด๋จธ์˜ ํ˜„์žฌ ์ง„ํ–‰ ์ˆœ์„œ
					// t: ํ”Œ๋ ˆ์ด์–ด์˜ ID
					// c: ๋ณ€๊ฒฝํ•  ๋“ฑ๋ฒˆํ˜ธ์˜ ๋ฌธ์ž(์—ด)
				}
				let target = goalTimer.findTimerByName().at(-1);
				if(target == undefined) return false;
				let currentOrder = goalTimer.calcCurrentSequence(target._sequence, 2);
				let totalSequence = goalTimer.calcTotalSequence(target._sequence);
				showAvatar(currentOrder, goalTimer._player, 'โšฝ');
				if(PM.isValid(assist)) showAvatar(currentOrder, assist, '๐Ÿ‘');
				if(totalSequence > 5) return goalTimer.clearTimerByName();
			},
			TERMINATE : () => {					// ์ข…๋ฃŒ ํ•จ์ˆ˜
				PM.resetAvatar(goalTimer._player);
				if(PM.isValid(assist)) PM.resetAvatar(assist);
			}
		}, player, SEC_TO_MS / 2, true, true);
		...
	}
	...
}
...
  • ์ด ํƒ€์ด๋จธ๋Š” ๊ณจ ํŒ์ • ์งํ›„๋ถ€ํ„ฐ ์ผ์ •ํ•œ ๊ฐ„๊ฒฉ์˜ ๋ฐ˜๋ณต์„ ๋ช‡ ์ดˆ ๋™์•ˆ, ๋“์ ์ž/์–ด์‹œ์ŠคํŠธ์˜ ๋“ฑ๋ฒˆํ˜ธ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค
  • goalTimer์˜ ๊ฐ’์€ ์ด ํƒ€์ด๋จธ์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

let goalTimer = TM.addTimer("goal", {

let goalTimer = TM.addTimer("goal", {
	EXECUTE : () => {		// ์‹คํ–‰ ํ•จ์ˆ˜
		...
	},
	TERMINATE : () => {		// ์ข…๋ฃŒ ํ•จ์ˆ˜
		...
	}
}, player, SEC_TO_MS / 2, true, true);
/*
	(SEC_TO_MS / 2)์˜ ๊ฐ’์€ 500ms์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค
*/
  • EXECUTE ๊ธฐ๋Šฅ์€ ํƒ€์ด๋จธ๊ฐ€ ๋ชฉํ‘œ ์‹œ๊ฐ„์— ๋„๋‹ฌํ•˜๋ฉด ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค

     EXECUTE : () => {					// ์‹คํ–‰ ํ•จ์ˆ˜
     	let showAvatar = function(s, t, c){
     		...
     		// s: ํƒ€์ด๋จธ์˜ ํ˜„์žฌ ์ง„ํ–‰ ์ˆœ์„œ
     		// t: ํ”Œ๋ ˆ์ด์–ด์˜ ID
     		// c: ๋ณ€๊ฒฝํ•  ๋“ฑ๋ฒˆํ˜ธ์˜ ๋ฌธ์ž(์—ด)
     	}
     	let target = goalTimer.findTimerByName().at(-1);
     	if(target == undefined) return false;
     	let currentOrder = goalTimer.calcCurrentSequence(target._sequence, 2);
     	let totalSequence = goalTimer.calcTotalSequence(target._sequence);
     	showAvatar(currentOrder, goalTimer._player, 'โšฝ');
     	if(PM.isValid(assist)) showAvatar(currentOrder, assist, '๐Ÿ‘');
     	if(totalSequence > 5) return goalTimer.clearTimerByName();
     },
    • target์˜ ๊ฐ’์— ์ƒ์ฃผ ์ค‘์ธ ์ตœ์‹  ํƒ€์ด๋จธ์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

    let target = goalTimer.findTimerByName().at(-1);

    • currentOrder์˜ ๊ฐ’์— ํƒ€์ด๋จธ์˜ ํ˜„์žฌ ์ˆœ์„œ๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” ์ˆœ์„œ์˜ ์ตœ๋Œ“๊ฐ’์œผ๋กœ 2๊ฐ€ ์ง€์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค

    let currentOrder = goalTimer.calcCurrentSequence(target._sequence, 2);

    • ๊ฐ’์€ 0, 1 ์ค‘์— ํ•˜๋‚˜๋กœ ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค
    • ๋ˆ„์  ์ง„ํ–‰ ์ˆœ์„œ๊ฐ€ 5๋ฅผ ์ดˆ๊ณผํ•œ ๊ฒฝ์šฐ ํƒ€์ด๋จธ๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค
      • ์ด๋•Œ ์ข…๋ฃŒ ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค
  • TERMINATE ๊ธฐ๋Šฅ์€ EXECUTE ์‹คํ–‰ ์งํ›„, ๋˜๋Š” ํƒ€์ด๋จธ๊ฐ€ ์ข…๋ฃŒ๋˜๋Š” ์ˆœ๊ฐ„์— ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค

     TERMINATE : () => {					// ์ข…๋ฃŒ ํ•จ์ˆ˜
     	PM.resetAvatar(goalTimer._player);
     	if(PM.isValid(assist)) PM.resetAvatar(assist);
     }
    • ์ด ํƒ€์ด๋จธ์˜ ์ข…๋ฃŒ ํ•จ์ˆ˜์—์„œ๋Š” ๋“์ ์ž/์–ด์‹œ์ŠคํŠธ๋ฅผ ํƒ€์ด๋จธ ์‹คํ–‰ ์ง์ „์˜ ๋“ฑ๋ฒˆํ˜ธ๋กœ ๋˜๋Œ๋ฆฌ๋Š” ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค
    • ์ข…๋ฃŒ ํ•จ์ˆ˜๋Š” ์ƒ๋žตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค
      let goalTimer = TM.addTimer("goal", () => {		// ์‹คํ–‰ ํ•จ์ˆ˜๋งŒ
      	...
      }, player, SEC_TO_MS / 2, true, true);

โš ๏ธ **GitHub.com Fallback** โš ๏ธ