@@ -3,40 +3,44 @@ import { WeakPlayerMap } from 'lib/weak-player-storage'
33import { noI18n } from '../i18n/text'
44
55/** Creates new logger that will use name as prefix and will output info to the console */
6- export function createLogger ( name : string ) {
7- name = name . startsWith ( '§9' ) ? name : `§9${ name } `
6+ function createSimpleLogger ( name : string ) {
87 return {
98 debug : createLevel ( name , 'debug' , debug ) ,
109 info : createLevel ( name , 'info' , info ) ,
1110 error : createLevel ( name , 'error' , error ) ,
1211 warn : createLevel ( name , 'warn' , warn ) ,
13- player : ( player : Player ) => {
14- const newName = `${ name . trimEnd ( ) } §f§l${ player . name } §r `
15- const cache = playerLoggers . get ( newName )
16- if ( cache ) {
17- return cache
18- } else {
19- const logger = createLogger ( newName )
20- playerLoggers . set ( newName , logger )
21- return logger
22- }
23- } ,
2412 }
2513}
2614
27- type Logger = ReturnType < typeof createLogger >
15+ type SimpleLogger = ReturnType < typeof createSimpleLogger >
16+
17+ /** Creates new logger that will use name as prefix and will output info to the console */
18+ export function createLogger ( name : string ) {
19+ const playerLoggers = new WeakPlayerMap < SimpleLogger > ( )
20+ name = name . startsWith ( '§9' ) ? name : `§9${ name } `
21+
22+ return {
23+ ...createSimpleLogger ( name ) ,
24+ player : ( player : Player ) => {
25+ const cache = playerLoggers . get ( player . id )
26+ if ( cache ) return cache
2827
29- const playerLoggers = new WeakPlayerMap < Logger > ( )
28+ const logger = createSimpleLogger ( `${ name . trimEnd ( ) } §f§l${ player . isValid ? player . name : player . id } §r ` )
29+ playerLoggers . set ( player . id , logger )
30+ return logger
31+ } ,
32+ }
33+ }
3034
3135const debug = noI18n . restyle ( { unit : '§l§6' , text : '§f' } )
3236const info = noI18n
3337const warn = noI18n . warn
3438const error = noI18n . error
3539
36- function createLevel ( name : string , level : 'debug' | 'error' | 'info' | 'warn' , text : Text . Fn < string , unknown > ) {
40+ function createLevel ( name : string , level : 'debug' | 'error' | 'info' | 'warn' , style : Text . Fn < string , unknown > ) {
3741 return ( t : unknown , ...args : unknown [ ] ) => {
3842 if ( isTemplateStringsArray ( t ) ) {
39- console [ level ] ( name , text ( t , ...args ) )
43+ console [ level ] ( name , style ( t , ...args ) )
4044 } else {
4145 console [ level ] ( name , t , ...args )
4246 }
0 commit comments