Englisch:
This API version is a simplified way to create commands, timers and GUI as well as a simplified version of a MySQL connection and administration.
This API contains a lot of data and possibilities.
The API is available in the following Spigot versions:
► 1.8.x
► 1.12.x
► 1.13.x (GUI Beta (is deprecated))
► 1.14.x (GUI Beta (is deprecated))
You can create commands without documenting them in the plugin.yml file.
Documentation: see section Document
German:
Diese API Version ist eine vereinfachte möglichkeit Befehle, Timers und GUI zu erstellen so wie auch eine Vereinfachte version einer MySQL verbindung und verwaltung.
Diese API beinhaltet eine Menge an Daten und Möglichkeiten.
Die API ist in folgenden Spigot Versionen erhältlich:
► 1.8.x
► 1.12.x
► 1.13.x (GUI Beta (ist deprecated))
► 1.14.x (GUI Beta (ist deprecated))
Du kannst befehle erstellen ohne diese in der plugin.yml datei zu dokumentieren.
Documentation: siehe bereich Dokument
Document:
Core
CorePlayer
CoreTimer ( Implements )
CoreCommand (Implements)
CoreCache (Static)
CorePlayerData (Static)
GUI (Constructor)
IDManager (Static)
ItemBuilder (Constructor)
MySQL (Static)
YamlConfig (Constructor)
WarpManager (Static)
Some exsample
This API version is a simplified way to create commands, timers and GUI as well as a simplified version of a MySQL connection and administration.
This API contains a lot of data and possibilities.
The API is available in the following Spigot versions:
► 1.8.x
► 1.12.x
► 1.13.x (GUI Beta (is deprecated))
► 1.14.x (GUI Beta (is deprecated))
You can create commands without documenting them in the plugin.yml file.
Documentation: see section Document
German:
Diese API Version ist eine vereinfachte möglichkeit Befehle, Timers und GUI zu erstellen so wie auch eine Vereinfachte version einer MySQL verbindung und verwaltung.
Diese API beinhaltet eine Menge an Daten und Möglichkeiten.
Die API ist in folgenden Spigot Versionen erhältlich:
► 1.8.x
► 1.12.x
► 1.13.x (GUI Beta (ist deprecated))
► 1.14.x (GUI Beta (ist deprecated))
Du kannst befehle erstellen ohne diese in der plugin.yml datei zu dokumentieren.
Documentation: siehe bereich Dokument
Document:
Core
Spoiler: Core
Code (Java):
Core.
getInstance
(
) .
isDebug
(
)
;
//return boolean;
Core. getInstance ( ) . registerCommand ( CoreCommand coreCommand ) ;
Core. getInstance ( ) . registerCommand ( CoreCommand coreCommand ) ;
CorePlayer
Spoiler: CorePlayer
The CorePlayer is already available in the cache. To get the CorePlayer use: CoreCache.getCorePlayer (Player player)
Code (Java):
// online Methode
CorePlayer corePlayer = new CorePlayer ( Player player ) ;
// offline Methode
CorePlayer corePlayer = new CorePlayer ( String playerName ) ;
corePlayer. convertToOfflineUUID ( ) ; // return String
// ==========================================
getBukkitPlayer ( ) // return Player
sendMessage ( String prefix, String s )
setInvisibleForPlayer ( CorePlayer cplayer )
editVelocity ( float x, float y, float z )
teleport ( Location location )
teleport ( Entity entity )
getLocation ( ) // return Location
hasPotionEffect ( PotionEffectType type ) // return boolean
removePotionEffect ( PotionEffectType type )
addPotionEffect ( PotionEffectType type, int duration, int amplifier )
addPotionEffect ( PotionEffectType type, int amplifier )
playsound ( Sound sound, int volum, int pitch )
playsound ( Sound sound, int volum )
playsound ( Sound sound )
sendActionbar ( String msg )
sendScoreboard ( String header, String ... args )
sendTitle ( Integer fadeIn, Integer stay, Integer fadeOut, String title, String subtitle )
sendTitle ( Integer fadeIn, Integer stay, Integer fadeOut, String title )
CorePlayer corePlayer = new CorePlayer ( Player player ) ;
// offline Methode
CorePlayer corePlayer = new CorePlayer ( String playerName ) ;
corePlayer. convertToOfflineUUID ( ) ; // return String
// ==========================================
getBukkitPlayer ( ) // return Player
sendMessage ( String prefix, String s )
setInvisibleForPlayer ( CorePlayer cplayer )
editVelocity ( float x, float y, float z )
teleport ( Location location )
teleport ( Entity entity )
getLocation ( ) // return Location
hasPotionEffect ( PotionEffectType type ) // return boolean
removePotionEffect ( PotionEffectType type )
addPotionEffect ( PotionEffectType type, int duration, int amplifier )
addPotionEffect ( PotionEffectType type, int amplifier )
playsound ( Sound sound, int volum, int pitch )
playsound ( Sound sound, int volum )
playsound ( Sound sound )
sendActionbar ( String msg )
sendScoreboard ( String header, String ... args )
sendTitle ( Integer fadeIn, Integer stay, Integer fadeOut, String title, String subtitle )
sendTitle ( Integer fadeIn, Integer stay, Integer fadeOut, String title )
CoreTimer ( Implements )
Spoiler: CoreTimer
Code (Java):
public
interface CoreTimer
{
public void tick ( ) ;
}
public void tick ( ) ;
}
CoreCommand (Implements)
Spoiler: CoreCommand
Permissions to see all Registert Commands: core.default
Command: /core
here are commands with external value true. If this is false than have a prefix with /core <command>
Command: /core
here are commands with external value true. If this is false than have a prefix with /core <command>
Code (Text):
public interface CoreCommand {
public String command();
public String desception();
public String permission();
public boolean external();
public void run(CorePlayer player, String[] args);
public boolean runNoPerms(CorePlayer player, String[] args);
}
public String command();
public String desception();
public String permission();
public boolean external();
public void run(CorePlayer player, String[] args);
public boolean runNoPerms(CorePlayer player, String[] args);
}
CoreCache (Static)
Spoiler: CoreCache
Code (Java):
CoreCache.
regCoreTimer
( CoreTimer coreTimer
)
;
CoreCache. getCorePlayer ( Player player ) ; // return CorePlayer
CoreCache. getCorePlayer ( Player player ) ; // return CorePlayer
CorePlayerData (Static)
Spoiler: CorePlayerData
GUI (Constructor)
Spoiler: GUI
(extends)
Code (Java):
GUI
( CorePlayer cPlayer,
String title
)
;
GUI ( CorePlayer cPlayer, String title, int size ) ;
GUI ( CorePlayer cPlayer, String title, InventoryType inventoryType ) ;
setButton ( int slot, GUIButton gUIButton ) ;
setButton ( HashMap < Integer , GUIButton > buttons ) ;
open ( ) ;
getInventory ( ) : // return Inverntory
GUI ( CorePlayer cPlayer, String title, int size ) ;
GUI ( CorePlayer cPlayer, String title, InventoryType inventoryType ) ;
setButton ( int slot, GUIButton gUIButton ) ;
setButton ( HashMap < Integer , GUIButton > buttons ) ;
open ( ) ;
getInventory ( ) : // return Inverntory
Spoiler: GUI Button
Code (Java):
public
abstract
class GUIButton
{
private CorePlayer cPlayer ;
public abstract void onClick ( InventoryClickEvent event ) ;
public abstract ItemStack getIcon ( ) ;
public void setPlayer ( CorePlayer player ) {
this . cPlayer = player ;
}
protected CorePlayer getCorePlayer ( ) {
return cPlayer ;
}
}
private CorePlayer cPlayer ;
public abstract void onClick ( InventoryClickEvent event ) ;
public abstract ItemStack getIcon ( ) ;
public void setPlayer ( CorePlayer player ) {
this . cPlayer = player ;
}
protected CorePlayer getCorePlayer ( ) {
return cPlayer ;
}
}
IDManager (Static)
Spoiler: IDManager
Code (Java):
IDManager.
generateID
(
int size
)
;
//return String
IDManager. generateIDWithSlpit ( int size, int slpitAt ) ; //return String
IDManager. generateIDWithSlpit ( int size, int slpitAt ) ; //return String
ItemBuilder (Constructor)
Spoiler: ItemBuilder
Code (Java):
ItemStack item
=
new ItemBuilder
( Material.
STONE
) .
setName
(
"§6TEST"
) .
build
(
)
;
//And more
//And more
MySQL (Static)
Spoiler: MySQL
Code (Java):
//Static
MySQL. createTable ( String table, String clumName, ColumType type ) ;
createTable ( String table, ArrayList < String > list, ArrayList < ColumType > types ) ;
createTable ( String table, HashMap < String , ColumType > map ) ;
createTable ( String table, String [ ] list, ColumType [ ] types ) ;
getString ( String table, String where, String match, String colum ) ; // return String
getInt ( String table, String colum, String where, String match ) // return int
exsistValue ( String table, String where, String match, String colum ) ; // return boolean;
getArrayList ( String table, String where, String match, String colum ) ; //return ArrayList<String>
set ( String table, String colum, Object value ) ;
update ( String table, String colum, String value, String where, String match ) ;
deleteRowString table, String where, String match ) ;
MySQL. createTable ( String table, String clumName, ColumType type ) ;
createTable ( String table, ArrayList < String > list, ArrayList < ColumType > types ) ;
createTable ( String table, HashMap < String , ColumType > map ) ;
createTable ( String table, String [ ] list, ColumType [ ] types ) ;
getString ( String table, String where, String match, String colum ) ; // return String
getInt ( String table, String colum, String where, String match ) // return int
exsistValue ( String table, String where, String match, String colum ) ; // return boolean;
getArrayList ( String table, String where, String match, String colum ) ; //return ArrayList<String>
set ( String table, String colum, Object value ) ;
update ( String table, String colum, String value, String where, String match ) ;
deleteRowString table, String where, String match ) ;
Spoiler: ColumType
Code (Java):
VARCHAR_128,
VARCHAR_64,
VARCHAR_32,
VARCHAR_256,
VARCHAR_512,
VARCHAR_1024,
VARCHAR_2048,
INT,
LONG,
DOUBLE ;
VARCHAR_64,
VARCHAR_32,
VARCHAR_256,
VARCHAR_512,
VARCHAR_1024,
VARCHAR_2048,
INT,
LONG,
DOUBLE ;
YamlConfig (Constructor)
Spoiler: YamlConfig
Code (Java):
YamlConfig config
=
new YamlConfig
(
String path,
String file
)
;
config. set ( String path, Object value ) ;
config. exsistPath ( String path ) // return boolean
config. get ( String path ) ; // return Object
config. getOrDefault ( String path, Class <? extends T > clazz, T t ) //return T
config. save ( ) ;
config. set ( String path, Object value ) ;
config. exsistPath ( String path ) // return boolean
config. get ( String path ) ; // return Object
config. getOrDefault ( String path, Class <? extends T > clazz, T t ) //return T
config. save ( ) ;
WarpManager (Static)
Spoiler: WarpManager
Code (Text):
WarpManager.createWarp(CorePlayer player, String name);
WarpManager.getWarpLocation(String name); //return Location
WarpManager.deleteWarp(String name)// retun boolean
//==============================
WarpManager.createWarp(CorePlayer player, String dir, String name);
WarpManager.getWarpLocation(String dir, String name); // return Location
WarpManager.deleteWarp(String dir, String name); //return boolean
WarpManager.getWarpLocation(String name); //return Location
WarpManager.deleteWarp(String name)// retun boolean
//==============================
WarpManager.createWarp(CorePlayer player, String dir, String name);
WarpManager.getWarpLocation(String dir, String name); // return Location
WarpManager.deleteWarp(String dir, String name); //return boolean
Some exsample
Spoiler: CoreCommand & GUI & ItemBuilder (/warp)
Code (Java):
package
de.deminosa.factions.commands
;
import org.bukkit.Material ;
import org.bukkit.event.inventory.InventoryClickEvent ;
import org.bukkit.inventory.ItemStack ;
import de.deminosa.core.builders.CorePlayer ;
import de.deminosa.core.builders.command.CoreCommand ;
import de.deminosa.core.utils.gui.GUI ;
import de.deminosa.core.utils.gui.GUIButton ;
import de.deminosa.core.utils.itembuilder.ItemBuilder ;
import de.deminosa.factions.system.warp.WarpManager ;
/*
* Class Create by Deminosa
* YouTube: Deminosa
* Web: deminosa.de
* Create at: 11:54:50 # 11.05.2019
*
*/
public class WarpCommand implements CoreCommand {
@Override
public String command ( ) {
return "warp" ;
}
@Override
public String desception ( ) {
return "Öffnet ein Warp GUI Setting" ;
}
@Override
public boolean external ( ) {
return true ;
}
@Override
public String permission ( ) {
return "system.command.warp" ;
}
@Override
public void run ( CorePlayer player, String [ ] args ) {
GUI gui = new GUI ( player, "WarpManager" , 18 ) ;
gui. setButton ( 0 + 1 , new GUIButton ( ) {
@Override
public void onClick ( InventoryClickEvent event ) {
WarpManager. createWarp ( player, "tutorial" ) ;
player. getBukkitPlayer ( ) . closeInventory ( ) ;
player. sendMessage ( "Warp" , "Warp für tutorial wurde gesetzt!" ) ;
}
@Override
public ItemStack getIcon ( ) {
return new ItemBuilder ( Material. ENDER_PEARL )
. setName ( "§6Set FirstJoin Spawn (Tutorial Spawn)" )
. build ( ) ;
}
} ) ;
gui. setButton ( 9 + 1 , new GUIButton ( ) {
@Override
public void onClick ( InventoryClickEvent event ) {
player. getBukkitPlayer ( ) . closeInventory ( ) ;
player. teleport ( WarpManager. getWarpLocation ( "tutorial" ) ) ;
}
@Override
public ItemStack getIcon ( ) {
return new ItemBuilder ( Material. EYE_OF_ENDER )
. setName ( "§6Teleport to Tutorial Spawn" )
. build ( ) ;
}
} ) ;
gui. setButton ( 0 + 3 , new GUIButton ( ) {
@Override
public void onClick ( InventoryClickEvent event ) {
WarpManager. createWarp ( player, "elfen" ) ;
player. getBukkitPlayer ( ) . closeInventory ( ) ;
player. sendMessage ( "Warp" , "Warp für Elfen wurde gesetzt!" ) ;
}
@Override
public ItemStack getIcon ( ) {
return new ItemBuilder ( Material. BOW )
. setName ( "§6Set Elfen Spawn" )
. build ( ) ;
}
} ) ;
gui. setButton ( 9 + 3 , new GUIButton ( ) {
@Override
public void onClick ( InventoryClickEvent event ) {
player. getBukkitPlayer ( ) . closeInventory ( ) ;
player. teleport ( WarpManager. getWarpLocation ( "elfen" ) ) ;
}
@Override
public ItemStack getIcon ( ) {
return new ItemBuilder ( Material. ARROW )
. setName ( "§6Teleport to Elfen Spawn" )
. build ( ) ;
}
} ) ;
gui. setButton ( 0 + 5 , new GUIButton ( ) {
@Override
public void onClick ( InventoryClickEvent event ) {
WarpManager. createWarp ( player, "zandaren" ) ;
player. getBukkitPlayer ( ) . closeInventory ( ) ;
player. sendMessage ( "Warp" , "Warp für Zandaren wurde gesetzt!" ) ;
}
@Override
public ItemStack getIcon ( ) {
return new ItemBuilder ( Material. WATER_BUCKET )
. setName ( "§6Set Zandaren Spawn" )
. build ( ) ;
}
} ) ;
gui. setButton ( 9 + 5 , new GUIButton ( ) {
@Override
public void onClick ( InventoryClickEvent event ) {
player. getBukkitPlayer ( ) . closeInventory ( ) ;
player. teleport ( WarpManager. getWarpLocation ( "zandaren" ) ) ;
}
@Override
public ItemStack getIcon ( ) {
return new ItemBuilder ( Material. LAVA_BUCKET )
. setName ( "§6Teleport to Zandaren Spawn" )
. build ( ) ;
}
} ) ;
gui. setButton ( 0 + 7 , new GUIButton ( ) {
@Override
public void onClick ( InventoryClickEvent event ) {
WarpManager. createWarp ( player, "zwerge" ) ;
player. getBukkitPlayer ( ) . closeInventory ( ) ;
player. sendMessage ( "Warp" , "Warp für Zwerge wurde gesetzt!" ) ;
}
@Override
public ItemStack getIcon ( ) {
return new ItemBuilder ( Material. IRON_AXE )
. setName ( "§6Set Zwerge Spawn" )
. build ( ) ;
}
} ) ;
gui. setButton ( 9 + 7 , new GUIButton ( ) {
@Override
public void onClick ( InventoryClickEvent event ) {
player. getBukkitPlayer ( ) . closeInventory ( ) ;
player. teleport ( WarpManager. getWarpLocation ( "zwerge" ) ) ;
}
@Override
public ItemStack getIcon ( ) {
return new ItemBuilder ( Material. DIAMOND_AXE )
. setName ( "§6Teleport to Zwerge Spawn" )
. build ( ) ;
}
} ) ;
gui. open ( ) ;
}
@Override
public boolean runNoPerms ( CorePlayer arg0 ) {
return false ;
}
}
import org.bukkit.Material ;
import org.bukkit.event.inventory.InventoryClickEvent ;
import org.bukkit.inventory.ItemStack ;
import de.deminosa.core.builders.CorePlayer ;
import de.deminosa.core.builders.command.CoreCommand ;
import de.deminosa.core.utils.gui.GUI ;
import de.deminosa.core.utils.gui.GUIButton ;
import de.deminosa.core.utils.itembuilder.ItemBuilder ;
import de.deminosa.factions.system.warp.WarpManager ;
/*
* Class Create by Deminosa
* YouTube: Deminosa
* Web: deminosa.de
* Create at: 11:54:50 # 11.05.2019
*
*/
public class WarpCommand implements CoreCommand {
@Override
public String command ( ) {
return "warp" ;
}
@Override
public String desception ( ) {
return "Öffnet ein Warp GUI Setting" ;
}
@Override
public boolean external ( ) {
return true ;
}
@Override
public String permission ( ) {
return "system.command.warp" ;
}
@Override
public void run ( CorePlayer player, String [ ] args ) {
GUI gui = new GUI ( player, "WarpManager" , 18 ) ;
gui. setButton ( 0 + 1 , new GUIButton ( ) {
@Override
public void onClick ( InventoryClickEvent event ) {
WarpManager. createWarp ( player, "tutorial" ) ;
player. getBukkitPlayer ( ) . closeInventory ( ) ;
player. sendMessage ( "Warp" , "Warp für tutorial wurde gesetzt!" ) ;
}
@Override
public ItemStack getIcon ( ) {
return new ItemBuilder ( Material. ENDER_PEARL )
. setName ( "§6Set FirstJoin Spawn (Tutorial Spawn)" )
. build ( ) ;
}
} ) ;
gui. setButton ( 9 + 1 , new GUIButton ( ) {
@Override
public void onClick ( InventoryClickEvent event ) {
player. getBukkitPlayer ( ) . closeInventory ( ) ;
player. teleport ( WarpManager. getWarpLocation ( "tutorial" ) ) ;
}
@Override
public ItemStack getIcon ( ) {
return new ItemBuilder ( Material. EYE_OF_ENDER )
. setName ( "§6Teleport to Tutorial Spawn" )
. build ( ) ;
}
} ) ;
gui. setButton ( 0 + 3 , new GUIButton ( ) {
@Override
public void onClick ( InventoryClickEvent event ) {
WarpManager. createWarp ( player, "elfen" ) ;
player. getBukkitPlayer ( ) . closeInventory ( ) ;
player. sendMessage ( "Warp" , "Warp für Elfen wurde gesetzt!" ) ;
}
@Override
public ItemStack getIcon ( ) {
return new ItemBuilder ( Material. BOW )
. setName ( "§6Set Elfen Spawn" )
. build ( ) ;
}
} ) ;
gui. setButton ( 9 + 3 , new GUIButton ( ) {
@Override
public void onClick ( InventoryClickEvent event ) {
player. getBukkitPlayer ( ) . closeInventory ( ) ;
player. teleport ( WarpManager. getWarpLocation ( "elfen" ) ) ;
}
@Override
public ItemStack getIcon ( ) {
return new ItemBuilder ( Material. ARROW )
. setName ( "§6Teleport to Elfen Spawn" )
. build ( ) ;
}
} ) ;
gui. setButton ( 0 + 5 , new GUIButton ( ) {
@Override
public void onClick ( InventoryClickEvent event ) {
WarpManager. createWarp ( player, "zandaren" ) ;
player. getBukkitPlayer ( ) . closeInventory ( ) ;
player. sendMessage ( "Warp" , "Warp für Zandaren wurde gesetzt!" ) ;
}
@Override
public ItemStack getIcon ( ) {
return new ItemBuilder ( Material. WATER_BUCKET )
. setName ( "§6Set Zandaren Spawn" )
. build ( ) ;
}
} ) ;
gui. setButton ( 9 + 5 , new GUIButton ( ) {
@Override
public void onClick ( InventoryClickEvent event ) {
player. getBukkitPlayer ( ) . closeInventory ( ) ;
player. teleport ( WarpManager. getWarpLocation ( "zandaren" ) ) ;
}
@Override
public ItemStack getIcon ( ) {
return new ItemBuilder ( Material. LAVA_BUCKET )
. setName ( "§6Teleport to Zandaren Spawn" )
. build ( ) ;
}
} ) ;
gui. setButton ( 0 + 7 , new GUIButton ( ) {
@Override
public void onClick ( InventoryClickEvent event ) {
WarpManager. createWarp ( player, "zwerge" ) ;
player. getBukkitPlayer ( ) . closeInventory ( ) ;
player. sendMessage ( "Warp" , "Warp für Zwerge wurde gesetzt!" ) ;
}
@Override
public ItemStack getIcon ( ) {
return new ItemBuilder ( Material. IRON_AXE )
. setName ( "§6Set Zwerge Spawn" )
. build ( ) ;
}
} ) ;
gui. setButton ( 9 + 7 , new GUIButton ( ) {
@Override
public void onClick ( InventoryClickEvent event ) {
player. getBukkitPlayer ( ) . closeInventory ( ) ;
player. teleport ( WarpManager. getWarpLocation ( "zwerge" ) ) ;
}
@Override
public ItemStack getIcon ( ) {
return new ItemBuilder ( Material. DIAMOND_AXE )
. setName ( "§6Teleport to Zwerge Spawn" )
. build ( ) ;
}
} ) ;
gui. open ( ) ;
}
@Override
public boolean runNoPerms ( CorePlayer arg0 ) {
return false ;
}
}
Spoiler: CoreTimer & EXPBooster
Code (Java):
package
de.deminosa.factions.utils.expbooster
;
import java.util.HashMap ;
import org.bukkit.Bukkit ;
import org.bukkit.Sound ;
import de.deminosa.core.builders.CorePlayer ;
import de.deminosa.core.builders.CoreTimer ;
import de.deminosa.core.cache.CoreCache ;
/*
* Class Create by Deminosa
* YouTube: Deminosa
* Web: deminosa.de
* Create at: 12:44:20 # 12.05.2019
*
*/
public class ExpBoosterTimer implements CoreTimer {
int i = 0 ;
@Override
public void tick ( ) {
i ++;
if ( i == 20 * 60 ) {
i = 0 ;
Bukkit. getOnlinePlayers ( ) . forEach ( ( bukkitPlayer ) -> {
CorePlayer player = CoreCache. getCorePlayer ( bukkitPlayer ) ;
String player_UUID = player. getBukkitPlayer ( ) . getUniqueId ( ) . toString ( ) ;
if ( ExpBooster. getEnableBoosters ( ) != null ) {
HashMap < String , Integer > list = ExpBooster. getEnableBoosters ( ) . get ( player_UUID ) ;
if ( list != null ) {
for ( String UID : list. keySet ( ) ) {
int time = list. get ( UID ) ;
time --;
ExpBooster. addToEnableList ( player_UUID, UID , time ) ;
if ( time == 1 ) {
player. sendMessage ( "EXP" , "Einer deiner Booster läuft bald ab!" ) ;
player. playsound ( Sound. AMBIENCE_CAVE ) ;
}
if ( time <= 0 ) {
player. sendMessage ( "EXP" , "Einer deiner Booster ist abgelaufen!" ) ;
player. playsound ( Sound. NOTE_PLING ) ;
list. remove ( UID ) ;
ExpBooster. delete ( UID ) ;
} else {
list. put ( UID , time ) ;
}
}
}
}
} ) ;
}
}
}
import java.util.HashMap ;
import org.bukkit.Bukkit ;
import org.bukkit.Sound ;
import de.deminosa.core.builders.CorePlayer ;
import de.deminosa.core.builders.CoreTimer ;
import de.deminosa.core.cache.CoreCache ;
/*
* Class Create by Deminosa
* YouTube: Deminosa
* Web: deminosa.de
* Create at: 12:44:20 # 12.05.2019
*
*/
public class ExpBoosterTimer implements CoreTimer {
int i = 0 ;
@Override
public void tick ( ) {
i ++;
if ( i == 20 * 60 ) {
i = 0 ;
Bukkit. getOnlinePlayers ( ) . forEach ( ( bukkitPlayer ) -> {
CorePlayer player = CoreCache. getCorePlayer ( bukkitPlayer ) ;
String player_UUID = player. getBukkitPlayer ( ) . getUniqueId ( ) . toString ( ) ;
if ( ExpBooster. getEnableBoosters ( ) != null ) {
HashMap < String , Integer > list = ExpBooster. getEnableBoosters ( ) . get ( player_UUID ) ;
if ( list != null ) {
for ( String UID : list. keySet ( ) ) {
int time = list. get ( UID ) ;
time --;
ExpBooster. addToEnableList ( player_UUID, UID , time ) ;
if ( time == 1 ) {
player. sendMessage ( "EXP" , "Einer deiner Booster läuft bald ab!" ) ;
player. playsound ( Sound. AMBIENCE_CAVE ) ;
}
if ( time <= 0 ) {
player. sendMessage ( "EXP" , "Einer deiner Booster ist abgelaufen!" ) ;
player. playsound ( Sound. NOTE_PLING ) ;
list. remove ( UID ) ;
ExpBooster. delete ( UID ) ;
} else {
list. put ( UID , time ) ;
}
}
}
}
} ) ;
}
}
}
Quick facts
- Edition: Minecraft Java
- File type: .jar
- Minecraft versions listed: 1.8, 1.12, 1.13
- How to install: Install the matching mod loader (Forge, Fabric or NeoForge) for your Minecraft version. → Download the .jar. → Put it in the .minecraft/mods folder and launch that loader profile.
- Where to get it: Opens on Spigot — not every file is mirrored on our own servers.
Install steps are the general flow for this file type — How to install Minecraft Java mods & modpacks walks through it step by step.
Demi's Core library (1.8.X & 1.12.X - 1.14.X) is a free Minecraft Java mod. Compatible with Minecraft 1.8, 1.12, 1.13, 1.14. Downloaded 335 times (via Spigot). Download it and open it directly in the game.