mirror of
https://github.com/StarWishsama/Slimefun4.git
synced 2024-09-19 19:25:48 +00:00
[CI skip] Changed the API a bit
This commit is contained in:
parent
70ee567b3c
commit
5e74657263
@ -27,6 +27,13 @@
|
||||
|
||||
## Release Candidate 6 (TBD)
|
||||
|
||||
### Additions
|
||||
* Added a new language: Japanese
|
||||
* Added a new language: Swedish
|
||||
* Added a new language: Czech
|
||||
* Added a new language: Portuguese (Brazil)
|
||||
* Added a new language: Arabic
|
||||
|
||||
### Changes
|
||||
* /sf research now uses namespaced keys instead of ids
|
||||
|
||||
|
@ -0,0 +1,38 @@
|
||||
package io.github.thebusybiscuit.slimefun4.api;
|
||||
|
||||
import org.bukkit.plugin.Plugin;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
|
||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem;
|
||||
|
||||
/**
|
||||
* This is a very basic interface that will be used to identify
|
||||
* the {@link Plugin} that registered a {@link SlimefunItem}.
|
||||
*
|
||||
* It will also contain some utility methods such as {@link SlimefunAddon#getBugTrackerURL()}
|
||||
* to provide some context when bugs arise.
|
||||
*
|
||||
* It is recommended to implement this interface if you are developing
|
||||
* an Addon.
|
||||
*
|
||||
* @author TheBusyBiscuit
|
||||
*
|
||||
*/
|
||||
public interface SlimefunAddon {
|
||||
|
||||
/**
|
||||
* This method returns the instance of {@link JavaPlugin} that this
|
||||
* {@link SlimefunAddon} refers to.
|
||||
*
|
||||
* @return The instance of your {@link JavaPlugin}
|
||||
*/
|
||||
JavaPlugin getJavaPlugin();
|
||||
|
||||
/**
|
||||
* This method returns a link to the Bug Tracker of this {@link SlimefunAddon}
|
||||
*
|
||||
* @return The URL for this Plugin's Bug Tracker, or null
|
||||
*/
|
||||
String getBugTrackerURL();
|
||||
|
||||
}
|
@ -90,6 +90,10 @@ public class Translators {
|
||||
|
||||
// Translators - Japanese
|
||||
addTranslator("bito-blosh", "ja", true);
|
||||
|
||||
// Translators - Portuguese (Brazil)
|
||||
addTranslator("G4stavoM1ster", "pt-BR", true);
|
||||
addTranslator("yurinogueira", "pt-BR", true);
|
||||
}
|
||||
|
||||
private void addTranslator(String name, String language, boolean lock) {
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -31,7 +31,7 @@ public final class WikiSetup {
|
||||
SlimefunItem item = SlimefunItem.getByID(entry.getKey());
|
||||
|
||||
if (item != null) {
|
||||
item.addWikipage(entry.getValue().getAsString());
|
||||
item.addOficialWiki(entry.getValue().getAsString());
|
||||
}
|
||||
}
|
||||
} catch (IOException e) {
|
||||
|
@ -19,6 +19,7 @@ import org.bukkit.inventory.ItemStack;
|
||||
|
||||
import io.github.thebusybiscuit.cscorelib2.collections.OptionalMap;
|
||||
import io.github.thebusybiscuit.cscorelib2.inventory.ItemUtils;
|
||||
import io.github.thebusybiscuit.slimefun4.api.SlimefunAddon;
|
||||
import io.github.thebusybiscuit.slimefun4.api.items.Placeable;
|
||||
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
|
||||
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
||||
@ -40,6 +41,7 @@ import me.mrCookieSlime.Slimefun.api.energy.EnergyTicker;
|
||||
public class SlimefunItem implements Placeable {
|
||||
|
||||
private ItemState state;
|
||||
private SlimefunAddon addon;
|
||||
|
||||
protected String id;
|
||||
protected ItemStack item;
|
||||
@ -54,7 +56,6 @@ public class SlimefunItem implements Placeable {
|
||||
protected boolean hidden = false;
|
||||
protected boolean useableInWorkbench = false;
|
||||
|
||||
private boolean addon = false;
|
||||
private String permission = "";
|
||||
private List<String> noPermissionTooltip;
|
||||
|
||||
@ -170,7 +171,7 @@ public class SlimefunItem implements Placeable {
|
||||
}
|
||||
|
||||
public boolean isAddonItem() {
|
||||
return addon;
|
||||
return !(addon instanceof SlimefunPlugin);
|
||||
}
|
||||
|
||||
public String getPermission() {
|
||||
@ -192,13 +193,38 @@ public class SlimefunItem implements Placeable {
|
||||
public boolean isDisabled() {
|
||||
return state != ItemState.ENABLED;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* This method is deprecated.
|
||||
*
|
||||
* @deprecated Use {@link SlimefunItem#register(SlimefunAddon)} instead.
|
||||
* @param slimefun deprecated.
|
||||
*/
|
||||
@Deprecated
|
||||
public void register() {
|
||||
register(false);
|
||||
register((SlimefunAddon) null);
|
||||
}
|
||||
|
||||
/**
|
||||
* This method is deprecated.
|
||||
*
|
||||
* @deprecated Use {@link SlimefunItem#register(SlimefunAddon)} instead.
|
||||
* @param slimefun deprecated.
|
||||
*/
|
||||
@Deprecated
|
||||
public void register(boolean slimefun) {
|
||||
this.addon = !slimefun;
|
||||
register(slimefun ? SlimefunPlugin.instance: null);
|
||||
}
|
||||
|
||||
/**
|
||||
* This method registers this {@link SlimefunItem}.
|
||||
* Always call this method after your {@link SlimefunItem} has been initialized.
|
||||
* Never call it more than once!
|
||||
*
|
||||
* @param addon The {@link SlimefunAddon} that this {@link SlimefunItem} belongs to.
|
||||
*/
|
||||
public void register(SlimefunAddon addon) {
|
||||
this.addon = addon;
|
||||
|
||||
try {
|
||||
preRegister();
|
||||
@ -407,26 +433,56 @@ public class SlimefunItem implements Placeable {
|
||||
}
|
||||
else if (handler instanceof EnergyTicker) {
|
||||
energyTicker = (EnergyTicker) handler;
|
||||
EnergyNet.registerComponent(getID(), EnergyNetComponent.SOURCE);
|
||||
EnergyNet.registerComponent(getID(), EnergyNetComponent.GENERATOR);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* This method is deprecated.
|
||||
*
|
||||
* @deprecated Use {@link SlimefunItem#register(SlimefunAddon)} instead.
|
||||
* @param vanilla deprecated.
|
||||
* @param handlers deprecated.
|
||||
*/
|
||||
@Deprecated
|
||||
public void register(boolean vanilla, ItemHandler... handlers) {
|
||||
addItemHandler(handlers);
|
||||
register(vanilla);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* This method is deprecated.
|
||||
*
|
||||
* @deprecated Use {@link SlimefunItem#register(SlimefunAddon)} instead.
|
||||
* @param handlers deprecated.
|
||||
*/
|
||||
@Deprecated
|
||||
public void register(ItemHandler... handlers) {
|
||||
addItemHandler(handlers);
|
||||
register(false);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* This method is deprecated.
|
||||
*
|
||||
* @deprecated Use {@link SlimefunItem#register(SlimefunAddon)} instead.
|
||||
* @param vanilla deprecated.
|
||||
* @param handler deprecated.
|
||||
*/
|
||||
@Deprecated
|
||||
public void register(boolean vanilla, SlimefunBlockHandler handler) {
|
||||
SlimefunPlugin.getRegistry().getBlockHandlers().put(getID(), handler);
|
||||
register(vanilla);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* This method is deprecated.
|
||||
*
|
||||
* @deprecated Use {@link SlimefunItem#register(SlimefunAddon)} instead.
|
||||
* @param handler deprecated.
|
||||
*/
|
||||
@Deprecated
|
||||
public void register(SlimefunBlockHandler handler) {
|
||||
SlimefunPlugin.getRegistry().getBlockHandlers().put(getID(), handler);
|
||||
register(false);
|
||||
@ -442,26 +498,31 @@ public class SlimefunItem implements Placeable {
|
||||
}
|
||||
|
||||
public void registerChargeableBlock(int capacity) {
|
||||
this.registerChargeableBlock(false, capacity);
|
||||
registerChargeableBlock(false, capacity);
|
||||
}
|
||||
|
||||
public void registerEnergyGenerator(boolean slimefun, int capacity) {
|
||||
this.register(slimefun);
|
||||
register(slimefun);
|
||||
SlimefunPlugin.getRegistry().getEnergyCapacities().put(id, capacity);
|
||||
}
|
||||
|
||||
public void registerChargeableBlock(boolean slimefun, int capacity) {
|
||||
this.register(slimefun);
|
||||
register(slimefun);
|
||||
ChargableBlock.registerChargableBlock(id, capacity);
|
||||
EnergyNet.registerComponent(id, EnergyNetComponent.CONSUMER);
|
||||
}
|
||||
|
||||
public void registerCapacitor(boolean slimefun, int capacity) {
|
||||
this.register(slimefun);
|
||||
EnergyNet.registerComponent(id, EnergyNetComponent.DISTRIBUTOR);
|
||||
register(slimefun);
|
||||
EnergyNet.registerComponent(id, EnergyNetComponent.CAPACITOR);
|
||||
ChargableBlock.registerCapacitor(id, capacity);
|
||||
}
|
||||
|
||||
public void registerChargeableBlock(boolean vanilla, int capacity, ItemHandler... handlers) {
|
||||
addItemHandler(handlers);
|
||||
registerChargeableBlock(vanilla, capacity);
|
||||
}
|
||||
|
||||
public void preRegister() {
|
||||
// Override this method to execute code before the Item has been registered
|
||||
// Useful for calls to addItemHandler(...)
|
||||
@ -484,11 +545,6 @@ public class SlimefunItem implements Placeable {
|
||||
SlimefunPlugin.getRegistry().getBlockHandlers().put(id, handler);
|
||||
}
|
||||
|
||||
public void registerChargeableBlock(boolean vanilla, int capacity, ItemHandler... handlers) {
|
||||
addItemHandler(handlers);
|
||||
registerChargeableBlock(vanilla, capacity);
|
||||
}
|
||||
|
||||
/**
|
||||
* This method will assign the given wiki page to this Item.
|
||||
* Note that you only need to provide the page name itself,
|
||||
@ -496,13 +552,13 @@ public class SlimefunItem implements Placeable {
|
||||
*
|
||||
* @param page The associated wiki page
|
||||
*/
|
||||
public void addWikipage(String page) {
|
||||
public void addOficialWiki(String page) {
|
||||
wiki = "https://github.com/TheBusyBiscuit/Slimefun4/wiki/" + page;
|
||||
}
|
||||
|
||||
/**
|
||||
* This method returns whether this item has been assigned a wiki page.
|
||||
* @see SlimefunItem#addWikipage(String)
|
||||
* @see SlimefunItem#addOficialWiki(String)
|
||||
*
|
||||
* @return Whether this Item has a wiki page
|
||||
*/
|
||||
@ -513,7 +569,7 @@ public class SlimefunItem implements Placeable {
|
||||
/**
|
||||
* This method returns the wiki page that has been asigned to this item.
|
||||
* It will return null, if no wiki page was found.
|
||||
* @see SlimefunItem#addWikipage(String)
|
||||
* @see SlimefunItem#addOficialWiki(String)
|
||||
*
|
||||
* @return This item's wiki page
|
||||
*/
|
||||
@ -578,7 +634,7 @@ public class SlimefunItem implements Placeable {
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "SlimefunItem: " + id + " (" + state + ", vanilla=" + !addon + ")";
|
||||
return "SlimefunItem: " + id + " (" + state + ", addon=" + (addon == null ? "Unknown": addon.getJavaPlugin().getName()) + ")";
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -0,0 +1,26 @@
|
||||
package me.mrCookieSlime.Slimefun.Objects.SlimefunItem.blocks;
|
||||
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
import io.github.thebusybiscuit.slimefun4.implementation.tasks.RainbowTicker;
|
||||
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
||||
import me.mrCookieSlime.Slimefun.Objects.Category;
|
||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SimpleSlimefunItem;
|
||||
import me.mrCookieSlime.Slimefun.api.SlimefunItemStack;
|
||||
|
||||
public class RainbowBlock extends SimpleSlimefunItem<RainbowTicker> {
|
||||
|
||||
private final RainbowTicker ticker;
|
||||
|
||||
public RainbowBlock(Category category, SlimefunItemStack item, RecipeType recipeType, ItemStack[] recipe, ItemStack recipeOutput, RainbowTicker ticker) {
|
||||
super(category, item, recipeType, recipe, recipeOutput);
|
||||
|
||||
this.ticker = ticker;
|
||||
}
|
||||
|
||||
@Override
|
||||
public RainbowTicker getItemHandler() {
|
||||
return ticker;
|
||||
}
|
||||
|
||||
}
|
@ -17,6 +17,7 @@ import io.github.thebusybiscuit.cscorelib2.config.Config;
|
||||
import io.github.thebusybiscuit.cscorelib2.protection.ProtectionManager;
|
||||
import io.github.thebusybiscuit.cscorelib2.recipes.RecipeSnapshot;
|
||||
import io.github.thebusybiscuit.cscorelib2.reflection.ReflectionUtils;
|
||||
import io.github.thebusybiscuit.slimefun4.api.SlimefunAddon;
|
||||
import io.github.thebusybiscuit.slimefun4.api.gps.GPSNetwork;
|
||||
import io.github.thebusybiscuit.slimefun4.api.network.NetworkManager;
|
||||
import io.github.thebusybiscuit.slimefun4.core.SlimefunRegistry;
|
||||
@ -83,7 +84,7 @@ import me.mrCookieSlime.Slimefun.api.inventory.UniversalBlockMenu;
|
||||
import me.mrCookieSlime.Slimefun.utils.ConfigCache;
|
||||
import me.mrCookieSlime.Slimefun.utils.Utilities;
|
||||
|
||||
public final class SlimefunPlugin extends JavaPlugin {
|
||||
public final class SlimefunPlugin extends JavaPlugin implements SlimefunAddon {
|
||||
|
||||
public static SlimefunPlugin instance;
|
||||
|
||||
@ -179,7 +180,7 @@ public final class SlimefunPlugin extends JavaPlugin {
|
||||
MiscSetup.setupItemSettings();
|
||||
|
||||
try {
|
||||
SlimefunItemSetup.setup();
|
||||
SlimefunItemSetup.setup(this);
|
||||
} catch (Exception x) {
|
||||
getLogger().log(Level.SEVERE, "An Error occured while initializing SlimefunItems for Slimefun " + getVersion(), x);
|
||||
}
|
||||
@ -509,4 +510,14 @@ public final class SlimefunPlugin extends JavaPlugin {
|
||||
.collect(Collectors.toSet());
|
||||
}
|
||||
|
||||
@Override
|
||||
public JavaPlugin getJavaPlugin() {
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getBugTrackerURL() {
|
||||
return "https://github.com/TheBusyBiscuit/Slimefun4/issues";
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -26,8 +26,8 @@ public class EnergyNet extends Network {
|
||||
}
|
||||
|
||||
public static EnergyNetComponent getComponent(String id) {
|
||||
if (SlimefunPlugin.getRegistry().getEnergyGenerators().contains(id)) return EnergyNetComponent.SOURCE;
|
||||
if (SlimefunPlugin.getRegistry().getEnergyCapacitors().contains(id)) return EnergyNetComponent.DISTRIBUTOR;
|
||||
if (SlimefunPlugin.getRegistry().getEnergyGenerators().contains(id)) return EnergyNetComponent.GENERATOR;
|
||||
if (SlimefunPlugin.getRegistry().getEnergyCapacitors().contains(id)) return EnergyNetComponent.CAPACITOR;
|
||||
if (SlimefunPlugin.getRegistry().getEnergyConsumers().contains(id)) return EnergyNetComponent.CONSUMER;
|
||||
return EnergyNetComponent.NONE;
|
||||
}
|
||||
@ -35,8 +35,8 @@ public class EnergyNet extends Network {
|
||||
public static EnergyNetComponent getComponent(Location l) {
|
||||
if (!BlockStorage.hasBlockInfo(l)) return EnergyNetComponent.NONE;
|
||||
String id = BlockStorage.checkID(l);
|
||||
if (SlimefunPlugin.getRegistry().getEnergyGenerators().contains(id)) return EnergyNetComponent.SOURCE;
|
||||
if (SlimefunPlugin.getRegistry().getEnergyCapacitors().contains(id)) return EnergyNetComponent.DISTRIBUTOR;
|
||||
if (SlimefunPlugin.getRegistry().getEnergyGenerators().contains(id)) return EnergyNetComponent.GENERATOR;
|
||||
if (SlimefunPlugin.getRegistry().getEnergyCapacitors().contains(id)) return EnergyNetComponent.CAPACITOR;
|
||||
if (SlimefunPlugin.getRegistry().getEnergyConsumers().contains(id)) return EnergyNetComponent.CONSUMER;
|
||||
return EnergyNetComponent.NONE;
|
||||
}
|
||||
@ -46,10 +46,10 @@ public class EnergyNet extends Network {
|
||||
case CONSUMER:
|
||||
SlimefunPlugin.getRegistry().getEnergyConsumers().add(id);
|
||||
break;
|
||||
case DISTRIBUTOR:
|
||||
case CAPACITOR:
|
||||
SlimefunPlugin.getRegistry().getEnergyCapacitors().add(id);
|
||||
break;
|
||||
case SOURCE:
|
||||
case GENERATOR:
|
||||
SlimefunPlugin.getRegistry().getEnergyGenerators().add(id);
|
||||
break;
|
||||
default:
|
||||
@ -87,10 +87,10 @@ public class EnergyNet extends Network {
|
||||
public NetworkComponent classifyLocation(Location l) {
|
||||
if (regulator.equals(l)) return NetworkComponent.REGULATOR;
|
||||
switch (getComponent(l)) {
|
||||
case DISTRIBUTOR:
|
||||
case CAPACITOR:
|
||||
return NetworkComponent.CONNECTOR;
|
||||
case CONSUMER:
|
||||
case SOURCE:
|
||||
case GENERATOR:
|
||||
return NetworkComponent.TERMINUS;
|
||||
default:
|
||||
return null;
|
||||
@ -104,13 +104,13 @@ public class EnergyNet extends Network {
|
||||
}
|
||||
|
||||
switch (getComponent(l)) {
|
||||
case DISTRIBUTOR:
|
||||
case CAPACITOR:
|
||||
if (ChargableBlock.isCapacitor(l)) storage.add(l);
|
||||
break;
|
||||
case CONSUMER:
|
||||
output.add(l);
|
||||
break;
|
||||
case SOURCE:
|
||||
case GENERATOR:
|
||||
input.add(l);
|
||||
break;
|
||||
default:
|
||||
|
@ -2,8 +2,8 @@ package me.mrCookieSlime.Slimefun.api.energy;
|
||||
|
||||
public enum EnergyNetComponent {
|
||||
|
||||
SOURCE,
|
||||
DISTRIBUTOR,
|
||||
GENERATOR,
|
||||
CAPACITOR,
|
||||
CONSUMER,
|
||||
NONE;
|
||||
|
||||
|
@ -286,8 +286,8 @@ languages:
|
||||
id: 'Indonesian'
|
||||
el: 'Greek'
|
||||
he: 'Hebrew'
|
||||
pt: 'Portugese (Portugal)'
|
||||
pt-BR: 'Portugese (Brazil)'
|
||||
pt: 'Portuguese (Portugal)'
|
||||
pt-BR: 'Portuguese (Brazil)'
|
||||
ar: 'Arabic'
|
||||
af: 'Afrikaans'
|
||||
da: 'Danish'
|
||||
|
Loading…
Reference in New Issue
Block a user