mirror of
https://github.com/StarWishsama/Slimefun4.git
synced 2024-09-20 11:45:51 +00:00
Merge pull request #448 from dpkirchner/master
Don't consume XP until we are about to unlock the requested research.
This commit is contained in:
commit
5dd53540ee
@ -672,34 +672,37 @@ public class SlimefunGuide {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void run(final Player p) {
|
public void run(final Player p) {
|
||||||
if (research.canUnlock(p)) {
|
if (!Research.isResearching(p)) {
|
||||||
p.setLevel(p.getLevel() - research.getCost());
|
if (research.canUnlock(p)) {
|
||||||
|
if (research.hasUnlocked(p))
|
||||||
if (research.hasUnlocked(p)) openCategory(p, category, true, selected_page, experimental);
|
openCategory(p, category, true, selected_page, experimental);
|
||||||
else if (!Research.isResearching(p)) {
|
else {
|
||||||
if (p.getGameMode() == GameMode.CREATIVE) {
|
if (!(p.getGameMode() == GameMode.CREATIVE && Research.creative_research)) {
|
||||||
research.unlock(p, true);
|
p.setLevel(p.getLevel() - research.getCost());
|
||||||
Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new Runnable() {
|
}
|
||||||
|
|
||||||
@Override
|
if (p.getGameMode() == GameMode.CREATIVE) {
|
||||||
public void run() {
|
research.unlock(p, true);
|
||||||
openCategory(p, category, survival, selected_page, experimental);
|
Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new Runnable() {
|
||||||
}
|
|
||||||
}, 1L);
|
@Override
|
||||||
}
|
public void run() {
|
||||||
else {
|
openCategory(p, category, survival, selected_page, experimental);
|
||||||
research.unlock(p, false);
|
}
|
||||||
Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new Runnable() {
|
}, 1L);
|
||||||
|
} else {
|
||||||
@Override
|
research.unlock(p, false);
|
||||||
public void run() {
|
Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new Runnable() {
|
||||||
openCategory(p, category, survival, selected_page, experimental);
|
|
||||||
}
|
@Override
|
||||||
}, 103L);
|
public void run() {
|
||||||
}
|
openCategory(p, category, survival, selected_page, experimental);
|
||||||
}
|
}
|
||||||
}
|
}, 103L);
|
||||||
else Messages.local.sendTranslation(p, "messages.not-enough-xp", true);
|
}
|
||||||
|
}
|
||||||
|
} else Messages.local.sendTranslation(p, "messages.not-enough-xp", true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -859,30 +862,31 @@ public class SlimefunGuide {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onClick(final Player p, int slot, ItemStack item, ClickAction action) {
|
public boolean onClick(final Player p, int slot, ItemStack item, ClickAction action) {
|
||||||
if (research.canUnlock(p)) {
|
if (!Research.isResearching(p)) {
|
||||||
if (!(p.getGameMode() == GameMode.CREATIVE && Research.creative_research)) {
|
if (research.canUnlock(p)) {
|
||||||
p.setLevel(p.getLevel() - research.getCost());
|
if (research.hasUnlocked(p))
|
||||||
}
|
openCategory(p, category, true, selected_page, experimental);
|
||||||
|
else {
|
||||||
if (research.hasUnlocked(p)) openCategory(p, category, true, selected_page, experimental);
|
if (!(p.getGameMode() == GameMode.CREATIVE && Research.creative_research)) {
|
||||||
else if (!Research.isResearching(p)) {
|
p.setLevel(p.getLevel() - research.getCost());
|
||||||
if (p.getGameMode() == GameMode.CREATIVE) {
|
}
|
||||||
research.unlock(p, Research.creative_research);
|
|
||||||
openCategory(p, category, survival, selected_page, experimental);
|
if (p.getGameMode() == GameMode.CREATIVE) {
|
||||||
}
|
research.unlock(p, Research.creative_research);
|
||||||
else {
|
openCategory(p, category, survival, selected_page, experimental);
|
||||||
research.unlock(p, false);
|
} else {
|
||||||
Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new Runnable() {
|
research.unlock(p, false);
|
||||||
|
Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new Runnable() {
|
||||||
@Override
|
|
||||||
public void run() {
|
@Override
|
||||||
openCategory(p, category, survival, selected_page, experimental);
|
public void run() {
|
||||||
}
|
openCategory(p, category, survival, selected_page, experimental);
|
||||||
}, 103L);
|
}
|
||||||
}
|
}, 103L);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
} else Messages.local.sendTranslation(p, "messages.not-enough-xp", true);
|
||||||
}
|
}
|
||||||
else Messages.local.sendTranslation(p, "messages.not-enough-xp", true);
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
Loading…
Reference in New Issue
Block a user