Adds a wool gate amongst other things
Adds the wool gate type from legacy Adds some missing material tag-related code Updates the URL for update checking
This commit is contained in:
@@ -365,7 +365,7 @@ public class Stargate extends JavaPlugin {
|
|||||||
this.registerCommands();
|
this.registerCommands();
|
||||||
|
|
||||||
//Check for any available updates
|
//Check for any available updates
|
||||||
UpdateChecker.checkForUpdate(this, "https://api.spigotmc.org/legacy/update.php?resource=97784",
|
UpdateChecker.checkForUpdate(this, "https://api.spigotmc.org/legacy/update.php?resource=87978",
|
||||||
Stargate::getPluginVersion, Stargate::setUpdateAvailable);
|
Stargate::getPluginVersion, Stargate::setUpdateAvailable);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -301,7 +301,7 @@ public class Gate {
|
|||||||
saveEconomyValues(bufferedWriter);
|
saveEconomyValues(bufferedWriter);
|
||||||
|
|
||||||
//Store material types to use for frame blocks
|
//Store material types to use for frame blocks
|
||||||
saveFrameBlockTypes(bufferedWriter);
|
saveFrameBlockType(bufferedWriter);
|
||||||
|
|
||||||
bufferedWriter.newLine();
|
bufferedWriter.newLine();
|
||||||
|
|
||||||
@@ -342,25 +342,39 @@ public class Gate {
|
|||||||
* @param bufferedWriter <p>The buffered writer to write to</p>
|
* @param bufferedWriter <p>The buffered writer to write to</p>
|
||||||
* @throws IOException <p>If unable to write to the buffered writer</p>
|
* @throws IOException <p>If unable to write to the buffered writer</p>
|
||||||
*/
|
*/
|
||||||
private void saveFrameBlockTypes(BufferedWriter bufferedWriter) throws IOException {
|
private void saveFrameBlockType(BufferedWriter bufferedWriter) throws IOException {
|
||||||
for (Map.Entry<Character, Material> entry : characterMaterialMap.entrySet()) {
|
for (Map.Entry<Character, Material> entry : this.characterMaterialMap.entrySet()) {
|
||||||
Character type = entry.getKey();
|
Character key = entry.getKey();
|
||||||
Material value = entry.getValue();
|
|
||||||
//Skip characters not part of the frame
|
//Skip characters not part of the frame
|
||||||
if (type.equals(GateHandler.getAnythingCharacter()) ||
|
if (key.equals(GateHandler.getAnythingCharacter()) ||
|
||||||
type.equals(GateHandler.getEntranceCharacter()) ||
|
key.equals(GateHandler.getEntranceCharacter()) ||
|
||||||
type.equals(GateHandler.getExitCharacter())) {
|
key.equals(GateHandler.getExitCharacter())) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
saveFrameBlockType(key, entry.getValue().toString(), bufferedWriter);
|
||||||
|
}
|
||||||
|
for (Map.Entry<Character, Tag<Material>> entry : this.characterTagMap.entrySet()) {
|
||||||
|
saveFrameBlockType(entry.getKey(), "#" + entry.getValue().getKey().toString().replaceFirst(
|
||||||
|
"minecraft:", ""), bufferedWriter);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
bufferedWriter.append(type);
|
/**
|
||||||
|
* Saves a type of block used for the gate frame/border using a buffered writer
|
||||||
|
*
|
||||||
|
* @param key <p>The character key to store</p>
|
||||||
|
* @param value <p>The string value to store</p>
|
||||||
|
* @param bufferedWriter <p>The buffered writer to write to</p>
|
||||||
|
* @throws IOException <p>If unable to write to the buffered writer</p>
|
||||||
|
*/
|
||||||
|
private void saveFrameBlockType(Character key, String value, BufferedWriter bufferedWriter) throws IOException {
|
||||||
|
bufferedWriter.append(key.toString());
|
||||||
bufferedWriter.append('=');
|
bufferedWriter.append('=');
|
||||||
if (value != null) {
|
if (value != null) {
|
||||||
bufferedWriter.append(value.toString());
|
bufferedWriter.append(value);
|
||||||
}
|
}
|
||||||
bufferedWriter.newLine();
|
bufferedWriter.newLine();
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Writes a formatted string to a buffered writer
|
* Writes a formatted string to a buffered writer
|
||||||
|
@@ -3,7 +3,9 @@ package net.knarcraft.stargate.portal.property.gate;
|
|||||||
import net.knarcraft.stargate.Stargate;
|
import net.knarcraft.stargate.Stargate;
|
||||||
import net.knarcraft.stargate.utility.GateReader;
|
import net.knarcraft.stargate.utility.GateReader;
|
||||||
import net.knarcraft.stargate.utility.MaterialHelper;
|
import net.knarcraft.stargate.utility.MaterialHelper;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.NamespacedKey;
|
||||||
import org.bukkit.Tag;
|
import org.bukkit.Tag;
|
||||||
import org.bukkit.block.Block;
|
import org.bukkit.block.Block;
|
||||||
|
|
||||||
@@ -90,18 +92,16 @@ public class GateHandler {
|
|||||||
if (blockId != null) {
|
if (blockId != null) {
|
||||||
if (!controlBlocks.containsKey(blockId)) {
|
if (!controlBlocks.containsKey(blockId)) {
|
||||||
controlBlocks.put(blockId, new ArrayList<>());
|
controlBlocks.put(blockId, new ArrayList<>());
|
||||||
} else {
|
|
||||||
controlBlocks.get(blockId).add(gate);
|
|
||||||
}
|
}
|
||||||
|
controlBlocks.get(blockId).add(gate);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Tag<Material> materialTag = gate.getControlBlockTag();
|
Tag<Material> materialTag = gate.getControlBlockTag();
|
||||||
if (!controlBlockTags.containsKey(materialTag.getKey().toString())) {
|
if (!controlBlockTags.containsKey(materialTag.getKey().toString())) {
|
||||||
controlBlockTags.put(materialTag.getKey().toString(), new ArrayList<>());
|
controlBlockTags.put(materialTag.getKey().toString(), new ArrayList<>());
|
||||||
} else {
|
|
||||||
controlBlockTags.get(materialTag.getKey().toString()).add(gate);
|
|
||||||
}
|
}
|
||||||
|
controlBlockTags.get(materialTag.getKey().toString()).add(gate);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -274,6 +274,7 @@ public class GateHandler {
|
|||||||
loadGateFromJar("watergate.gate", gateFolder);
|
loadGateFromJar("watergate.gate", gateFolder);
|
||||||
loadGateFromJar("endgate.gate", gateFolder);
|
loadGateFromJar("endgate.gate", gateFolder);
|
||||||
loadGateFromJar("squarenetherglowstonegate.gate", gateFolder);
|
loadGateFromJar("squarenetherglowstonegate.gate", gateFolder);
|
||||||
|
loadGateFromJar("wool.gate", gateFolder);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -318,14 +319,25 @@ public class GateHandler {
|
|||||||
* @return <p>A list of gates using the given material for control block</p>
|
* @return <p>A list of gates using the given material for control block</p>
|
||||||
*/
|
*/
|
||||||
public static Gate[] getGatesByControlBlock(Material type) {
|
public static Gate[] getGatesByControlBlock(Material type) {
|
||||||
Gate[] result = new Gate[0];
|
List<Gate> result = new ArrayList<>();
|
||||||
List<Gate> lookup = controlBlocks.get(type);
|
List<Gate> fromId = controlBlocks.get(type);
|
||||||
|
List<Gate> fromTag = null;
|
||||||
if (lookup != null) {
|
for (String tagString : controlBlockTags.keySet()) {
|
||||||
result = lookup.toArray(result);
|
Tag<Material> tag = Bukkit.getTag(Tag.REGISTRY_BLOCKS, NamespacedKey.minecraft(tagString.replaceFirst(
|
||||||
|
"minecraft:", "")), Material.class);
|
||||||
|
if (tag != null && tag.isTagged(type)) {
|
||||||
|
fromTag = controlBlockTags.get(tag.getKey().toString());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return result;
|
if (fromId != null) {
|
||||||
|
result.addAll(fromId);
|
||||||
|
}
|
||||||
|
if (fromTag != null) {
|
||||||
|
result.addAll(fromTag);
|
||||||
|
}
|
||||||
|
|
||||||
|
return result.toArray(new Gate[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -353,6 +365,7 @@ public class GateHandler {
|
|||||||
public static void clearGates() {
|
public static void clearGates() {
|
||||||
gates.clear();
|
gates.clear();
|
||||||
controlBlocks.clear();
|
controlBlocks.clear();
|
||||||
|
controlBlockTags.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
12
src/main/resources/gates/wool.gate
Normal file
12
src/main/resources/gates/wool.gate
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
portal-open=WATER
|
||||||
|
portal-closed=AIR
|
||||||
|
button=STONE_BUTTON
|
||||||
|
toowner=false
|
||||||
|
X=#WOOL
|
||||||
|
-=#WOOL
|
||||||
|
|
||||||
|
XXXXX
|
||||||
|
X...X
|
||||||
|
-...-
|
||||||
|
X.*.X
|
||||||
|
XXXXX
|
Reference in New Issue
Block a user