Created
May 20, 2022 06:35
-
-
Save RaiTaki/294bb10a9299c7919821ba3a0d078b14 to your computer and use it in GitHub Desktop.
Main Class and Skill classes
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package xyz.raitaki.CandyHunters.Class.Classes; | |
import org.bukkit.entity.Player; | |
import xyz.raitaki.CandyHunters.Class.ClassMain; | |
import xyz.raitaki.CandyHunters.Skill.Skills.TestSkill; | |
public class TestClass extends ClassMain { | |
public TestClass(Player p){ | |
super(p); | |
addSkill(0, new TestSkill(this)); | |
} | |
@Override | |
public String getName() { | |
return "TestClass"; | |
} | |
@Override | |
public TYPE getType() { | |
return TYPE.WILDLING; | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package xyz.raitaki.CandyHunters.Class; | |
import lombok.Getter; | |
import org.bukkit.entity.Player; | |
import xyz.raitaki.CandyHunters.Skill.SkillMain; | |
import java.util.ArrayList; | |
import java.util.List; | |
public abstract class ClassMain { | |
public ClassMain(Player p){ | |
player = p; | |
} | |
@Getter public Player player; | |
@Getter public List<SkillMain> skills = new ArrayList<>(); | |
public abstract String getName(); | |
public abstract TYPE getType(); | |
public void useSkill(Integer slot){ | |
skills.get(slot).useSkill(); | |
} | |
public void addSkill(Integer slot, SkillMain skill){ | |
skills.add(slot, skill); | |
} | |
public enum TYPE{WILDLING, CYBERLING, SUBCLASS} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package xyz.raitaki.CandyHunters.Skill.Skills; | |
import org.bukkit.Bukkit; | |
import xyz.raitaki.CandyHunters.Class.ClassMain; | |
import xyz.raitaki.CandyHunters.Skill.SkillMain; | |
public class TestSkill extends SkillMain { | |
public TestSkill(ClassMain cClass) { | |
super(cClass); | |
} | |
@Override | |
public void skill() { | |
Bukkit.broadcastMessage("You used your skill"); | |
startCooldown(); | |
} | |
@Override | |
public String getSkillName() { | |
return null; | |
} | |
@Override | |
public int getCooldown() { | |
return 3; | |
} | |
@Override | |
public boolean canUse() { | |
return isCanuse(); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package xyz.raitaki.CandyHunters.Skill; | |
import lombok.Getter; | |
import lombok.Setter; | |
import org.bukkit.Bukkit; | |
import org.bukkit.entity.Player; | |
import org.bukkit.scheduler.BukkitRunnable; | |
import xyz.raitaki.CandyHunters.Class.ClassMain; | |
import xyz.raitaki.CandyHunters.Main; | |
public abstract class SkillMain { | |
public SkillMain(ClassMain cClass){ | |
this.cClass = cClass; | |
} | |
@Getter public ClassMain cClass; | |
@Getter @Setter public boolean canuse = true; | |
public abstract void skill(); | |
public abstract String getSkillName(); | |
public abstract int getCooldown(); | |
public abstract boolean canUse(); | |
public void useSkill(){ | |
skill(); | |
} | |
public void startCooldown(){ | |
canuse = false; | |
new BukkitRunnable() { | |
@Override | |
public void run() { | |
canuse = true; | |
} | |
}.runTaskLater(Main.getInstance(), getCooldown() * 20L); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment