Skip to content
This repository was archived by the owner on May 16, 2022. It is now read-only.

Commit 277dcf4

Browse files
committed
Add metadata to guis
1 parent fc66aa9 commit 277dcf4

File tree

3 files changed

+53
-1
lines changed

3 files changed

+53
-1
lines changed

src/main/java/com/clubobsidian/dynamicgui/parser/gui/GuiToken.java

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ public class GuiToken implements Serializable {
4747
private MacroParser macroParser;
4848
private FunctionTree functions;
4949
private List<String> loadMacros;
50+
private Map<String, String> metadata;
5051
public GuiToken(ConfigurationSection section)
5152
{
5253
this(section, new ArrayList<MacroToken>());
@@ -81,6 +82,9 @@ public GuiToken(ConfigurationSection section, List<MacroToken> macroTokens)
8182
this.functions = new FunctionTree(guiFunctionsSection, this.macroParser);
8283

8384
this.loadMacros = section.getStringList("load-macros");
85+
86+
ConfigurationSection metadataSection = section.getConfigurationSection("metadata");
87+
this.metadata = this.parseMetadata(metadataSection);
8488
}
8589

8690
public String parseType(String type)
@@ -109,10 +113,23 @@ private void loadNpcs(ConfigurationSection section)
109113
for(String key : npcSection.getKeys())
110114
{
111115
List<Integer> npcIds = npcSection.getIntegerList(key);
112-
npcs.put(key, npcIds);
116+
this.npcs.put(key, npcIds);
113117
}
114118
}
115119

120+
private Map<String, String> parseMetadata(ConfigurationSection section)
121+
{
122+
Map<String, String> metadata = new HashMap<>();
123+
for(String key : section.getKeys())
124+
{
125+
String parsedKey = this.macroParser.parseStringMacros(key);
126+
String value = section.getString(parsedKey);
127+
value = this.macroParser.parseStringMacros(value);
128+
metadata.put(parsedKey, value);
129+
}
130+
131+
return metadata;
132+
}
116133

117134
private void loadSlots(ConfigurationSection section)
118135
{
@@ -190,4 +207,9 @@ public List<String> getLoadMacros()
190207
{
191208
return this.loadMacros;
192209
}
210+
211+
public Map<String, String> getMetadata()
212+
{
213+
return this.metadata;
214+
}
193215
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package com.clubobsidian.dynamicgui.parser.test.gui;
2+
3+
import static org.junit.Assert.assertTrue;
4+
5+
import java.io.File;
6+
import java.util.Map;
7+
8+
import org.junit.Test;
9+
10+
import com.clubobsidian.dynamicgui.parser.gui.GuiToken;
11+
import com.clubobsidian.dynamicgui.parser.slot.SlotToken;
12+
import com.clubobsidian.wrappy.Configuration;
13+
import com.clubobsidian.wrappy.ConfigurationSection;
14+
15+
public class GuitMetadataTest {
16+
17+
@Test
18+
public void testSlotMetadata()
19+
{
20+
File slotFolder = new File("test", "gui");
21+
File metadataFile = new File(slotFolder, "metadata.yml");
22+
Configuration config = Configuration.load(metadataFile);
23+
GuiToken token = new GuiToken(config);
24+
Map<String, String> metadata = token.getMetadata();
25+
assertTrue(metadata.size() == 1);
26+
assertTrue(metadata.get("some").equals("metadata"));
27+
}
28+
}

test/gui/metadata.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
metadata:
2+
some: "metadata"

0 commit comments

Comments
 (0)