2014-04-22 2 views
0

내 bukkit 플러그인을 프로그래밍하는 동안 파일에 주석을 추가 할 수 있도록 자신의 구성 파일이 필요하다는 것을 깨달았습니다. 나 또한 구성을 업데이트 할 수 있어야했습니다 (생성되어 있고 오래된 경우).Java에서 두 개의 Config.yml 파일을 병합 하시겠습니까?

나는 또한 최근에 간단한 jQuery 플러그인을 완성했다. 여기서 나는 jQuery.extend을 사용했고 두 개의 설정 배열을 병합했다. 이 파일이 설정 파일과 함께 자바에서 가능한지 알고 싶었습니다.

내 질문 :

Is there a way i can merge the new default config with the one the user already has? (Removing non-needed values or changing the names of the same strings)

질문에 대한 설명 : 여기에

는 예를 들어 내가있을 수 있습니다 config.yml입니다 :

# Comment here.... 

myString: defaultString 

myBool: false 

myList: 
    - Value 
    - Value 2 

매우 간단 . 이것이 내 기본 구성이라고합니다. 플러그인이 플러그인 폴더 내에이 구성을 복사했습니다 (플러그인이 아직없는 경우). 그러나, 이것은 하나의 문제가 나타납니다 :

What if i need to update my config? (Add/Remove a bool, string, etc.)

한 일을, 내가 말을 "나는 더 이상 부울 myBool 그 필요가 없습니다." 는 config YML에 내가 다시하면

# Comment here.... 

myString: defaultString 
myNewString: string 

myList: 
    - Value 
    - Value 2 

: 내가 추가 문자열 myNewString을 추가해야 할 수도 있습니다,

# Comment here.... 

myString: defaultString 

myList: 
    - Value 
    - Value 2 

또는 : 나는 기본 config.yml에서 제거하고 설정은 다음과 같이 보입니다 내 새로운 "기본"구성 파일, 나는 모든 사용자의 구성 설정을 잃게됩니다.

Is there a way i can merge the new default config with the one the user already has and just add the new string with the default values?

답변

0

Bukkit는 같은 getString(String path, String default)와 같이 값을 얻거나 아무것도 존재하지 않는 경우 검색 기본값을 지정할 수있는 방법으로 YamlConfiguration 클래스에 내장하고있다.

경로별로 요청한 문자열을 가져오고, 발견되지 않으면 기본값을 반환합니다.

문자열이 존재하지 않으면 루트 구성에서 기본값이 식별되었는지 여부에 관계없이 지정된 기본값이 반환됩니다.

그러나 구성에서 값을 제거 할 수있는 방법이 없습니다. 새 구성이 이전 구성과 너무 다르면 새 구성을 작성하고 이전 구성을 삭제 한 후 새 구성의 이름을 바꾸어 새 구성을 가져 오는 것이 좋습니다. 비록 그것이 크게 다른 것이 아니라면 나는 그것에 대해 너무 걱정하지 않겠지 만.

+0

Im 플러그인이 업데이트 될 때 이미 만들어진 config.yml에 대해 얘기하면 플러그인은 config를 확인한 다음 현재 플러그인에있는 기본 config.yml을 병합합니다. –

+0

@EliteGamer 예, 기본 설정을로드 한 다음 config를 사용하여 사용자의 설정을 'default' 매개 변수로로드하십시오. – MrLore

+0

@MrLove 동일한 설정을 두 번로드하는 것이 좋지 않습니까? 자원까지 낭비 될 것 같습니다. –