123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 |
- package me.km.jobsystem;
- import me.km.api.Module;
- import me.km.databank.SimpleDataBank;
- import java.util.ArrayList;
- import me.km.databank.DataBank;
- import net.minecraft.entity.player.EntityPlayer;
- public class JobBank extends SimpleDataBank
- {
- public JobBank(Module m, DataBank c)
- {
- super(m, c);
- }
-
- @Override
- protected void init()
- {
- // Speicher für den aktuellen Beruf
- if(!this.doesTableExist("currentjob"))
- {
- this.getModule().sendToConsole("Der Speicher für die aktuellen Beruf wurde nicht gefunden, erstelle ...");
- if(this.update("CREATE TABLE IF NOT EXISTS currentjob ("
- + "id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, "
- + "player_id INT NOT NULL, "
- + "job TINYINT NOT NULL, "
- + "INDEX (player_id), "
- + "UNIQUE INDEX (player_id,job), "
- + "FOREIGN KEY (player_id) REFERENCES minecraft.players(id) ON DELETE RESTRICT);", false))
- {
- this.getModule().sendToConsole("Der Speicher für die aktuellen Beruf wurde erstellt.");
- }
- }
- else
- {
- this.getModule().sendToConsole("Der Speicher für die aktuellen Beruf wurde gefunden.");
- }
-
- // Jobdatenbank
- if(!this.doesTableExist("jobs"))
- {
- this.getModule().sendToConsole("Die Jobdatenbank wurde nicht gefunden, erstelle ...");
- if(this.update("CREATE TABLE IF NOT EXISTS jobs ("
- + "id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, "
- + "player_id INT NOT NULL, "
- + "job TINYINT NOT NULL, "
- + "xp INT NOT NULL DEFAULT 0, "
- + "level TINYINT NOT NULL DEFAULT 1, "
- + "UNIQUE INDEX (player_id,job), "
- + "FOREIGN KEY (player_id) REFERENCES minecraft.players(id) ON DELETE RESTRICT);", false))
- {
- this.getModule().sendToConsole("Die Jobdatenbank wurde erstellt.");
- }
- }
- else
- {
- this.getModule().sendToConsole("Die Jobdatenbank wurde gefunden.");
- }
- }
- // -------------------------------------------------------------------------
- // Job-Level
- // -------------------------------------------------------------------------
-
- public Byte getLevel(EntityPlayer p, byte job)
- {
- return this.getFirstByte("SELECT level from jobs " +
- "LEFT JOIN players ON players.id = jobs.player_id " +
- "WHERE players.uuid = '" + p.getUniqueID() + "' AND " +
- "jobs.job=" + job + ";");
- }
-
- public void setLevel(EntityPlayer p, byte job, byte level)
- {
- this.update("INSERT INTO jobs (player_id,job,level) "
- + "SELECT id, " + job + ", " + level + " "
- + "FROM players WHERE uuid='" + p.getUniqueID() + "' "
- + "ON DUPLICATE KEY UPDATE level=" + level + ";", false);
- }
-
- // -------------------------------------------------------------------------
- // Jobs
- // -------------------------------------------------------------------------
-
- public boolean hasJob(EntityPlayer p, byte job)
- {
- return this.getFirstByte("SELECT job from currentjob " +
- "LEFT JOIN players ON players.id = currentjob.player_id " +
- "WHERE players.uuid = '" + p.getUniqueID() + "' AND " +
- "currentjob.job=" + job + ";") != null;
- }
-
- public ArrayList<Byte> getJobs(EntityPlayer p)
- {
- return this.getFirstByteColumn("SELECT job from currentjob " +
- "LEFT JOIN players ON players.id = currentjob.player_id " +
- "WHERE players.uuid = '" + p.getUniqueID() + "';");
- }
-
- public void setJob(EntityPlayer p, byte job, boolean b)
- {
- if(b)
- {
- this.update("INSERT INTO currentjob (player_id,job) " +
- "SELECT id, " + job + " " +
- "FROM players WHERE uuid='" + p.getUniqueID() + "' " +
- "ON DUPLICATE KEY UPDATE job=" + job + ";", false);
- return;
- }
- this.update("DELETE currentjob FROM currentjob " +
- "LEFT JOIN players ON players.id = currentjob.player_id " +
- "WHERE players.uuid = '" + p.getUniqueID() + "' AND job=" + job + ";", false);
- }
-
- // -------------------------------------------------------------------------
- // Job-XP
- // -------------------------------------------------------------------------
-
- public Integer getXp(EntityPlayer p, byte job)
- {
- return this.getFirst("SELECT xp from jobs " +
- "LEFT JOIN players ON players.id = jobs.player_id " +
- "WHERE players.uuid = '" + p.getUniqueID() + "' AND " +
- "jobs.job=" + job + ";", Integer.class);
- }
-
- public void setXp(EntityPlayer p, byte job, int xp)
- {
- this.update("INSERT INTO jobs (player_id,job,xp) " +
- "SELECT id, " + job + ", " + xp + " " +
- "FROM players WHERE uuid='" + p.getUniqueID() + "' " +
- "ON DUPLICATE KEY UPDATE xp=" + xp + ";", false);
- }
- }
|