Skip to content

Commit

Permalink
Add method to get list of kits
Browse files Browse the repository at this point in the history
  • Loading branch information
dentmaged committed Jan 2, 2022
1 parent 9405327 commit 42f0472
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 9 deletions.
13 changes: 8 additions & 5 deletions core/src/main/java/tc/oc/pgm/kits/KitMatchModule.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@

import com.google.common.collect.HashMultimap;
import com.google.common.collect.SetMultimap;
import java.util.Set;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
Expand Down Expand Up @@ -36,19 +35,19 @@
public class KitMatchModule implements MatchModule, Listener {

private final Match match;
private final Set<KitRule> kitRules;
private final KitModule module;
private final SetMultimap<MatchPlayer, ArmorType> lockedArmorSlots = HashMultimap.create();

public KitMatchModule(Match match, Set<KitRule> kitRules) {
public KitMatchModule(Match match, KitModule module) {
this.match = match;
this.kitRules = kitRules;
this.module = module;
}

@Override
public void load() throws ModuleLoadException {
FilterMatchModule fmm = match.needModule(FilterMatchModule.class);

for (KitRule kitRule : kitRules) {
for (KitRule kitRule : module.getKitRules()) {
switch (kitRule.getAction()) {
case GIVE:
fmm.onRise(
Expand Down Expand Up @@ -218,4 +217,8 @@ public void checkInfiniteBlocks(BlockPlaceEvent event) {
item.setAmount(-1);
}
}

public KitModule getModule() {
return module;
}
}
22 changes: 18 additions & 4 deletions core/src/main/java/tc/oc/pgm/kits/KitModule.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,9 @@
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Sets;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Set;
import java.util.logging.Logger;
import javax.annotation.Nullable;
Expand All @@ -28,9 +30,19 @@
public class KitModule implements MapModule {

protected final Set<KitRule> kitRules;
protected final List<Kit> kits;

public KitModule(Set<KitRule> kitRules) {
public KitModule(Set<KitRule> kitRules, List<Kit> kits) {
this.kitRules = ImmutableSet.copyOf(kitRules);
this.kits = kits;
}

public Set<KitRule> getKitRules() {
return kitRules;
}

public List<Kit> getKits() {
return kits;
}

@Nullable
Expand All @@ -41,7 +53,7 @@ public Collection<Class<? extends MatchModule>> getHardDependencies() {

@Override
public MatchModule createMatchModule(Match match) {
return new KitMatchModule(match, kitRules);
return new KitMatchModule(match, this);
}

@Override
Expand All @@ -60,9 +72,11 @@ public Collection<Class<? extends MapModule>> getWeakDependencies() {
public KitModule parse(MapFactory factory, Logger logger, Document doc)
throws InvalidXMLException {
Set<KitRule> kitRules = Sets.newHashSet();
List<Kit> kits = new ArrayList<Kit>();

for (Element kitsElement : doc.getRootElement().getChildren("kits")) {
for (Element kitElement : kitsElement.getChildren("kit")) {
factory.getKits().parse(kitElement);
kits.add(factory.getKits().parse(kitElement));
}
for (Element kitElement : XMLUtils.getChildren(kitsElement, "give", "take", "lend")) {
KitRule kitRule = parseRule(factory, kitElement);
Expand All @@ -71,7 +85,7 @@ public KitModule parse(MapFactory factory, Logger logger, Document doc)
}
}

return new KitModule(kitRules);
return new KitModule(kitRules, kits);
}

private KitRule parseRule(MapFactory factory, Element el) throws InvalidXMLException {
Expand Down

0 comments on commit 42f0472

Please sign in to comment.