Small Tutorial Island Fixes (#57)

* Added Music Tab stage load for advancing Tutorial Island

* Commented out starter pack applying on new player login - read comments in file
This commit is contained in:
Qweqker 2020-01-19 10:08:41 -05:00 committed by Daniel Ginovker
parent 139a12b1b7
commit fd0ca73bf1
2 changed files with 138 additions and 123 deletions

View file

@ -20,7 +20,7 @@ import org.crandor.plugin.Plugin;
/**
* Represents the component plugin used for the game interface.
* @author Vexia
*
*
*/
@InitializablePlugin
public final class GameInterface extends ComponentPlugin {
@ -38,134 +38,145 @@ public final class GameInterface extends ComponentPlugin {
@Override
public boolean handle(final Player player, Component component, int opcode, int button, int slot, int itemId) {
switch (component.getId()) {
case 740:
switch (button){
case 3:
player.getInterfaceManager().closeChatbox();
break;
}
return true;
case 746:
switch (button){
case 110:
configureWorldMap(player);
break;
}
return true;
case 548:
int tut_stage = TutorialSession.getExtension(player).getStage();
if (button >= 38 && button<= 44 || button >= 20 && button <= 26) {
player.getInterfaceManager().setCurrentTabIndex(getTabIndex(button));
}
switch (button) {
case 21://friends tab
if (tut_stage == 63) {
player.getConfigManager().set(1021, 0);
TutorialStage.load(player, 64, false);
case 740:
switch (button){
case 3:
player.getInterfaceManager().closeChatbox();
break;
}
break;
case 22://ignore tab
if (tut_stage == 64) {
player.getConfigManager().set(1021, 0);
TutorialStage.load(player, 65, false);
return true;
case 746:
switch (button){
case 110:
configureWorldMap(player);
break;
}
break;
case 24://settings tab
if (tut_stage == 1) {
TutorialStage.load(player, 2, false);
return true;
case 548:
int tut_stage = TutorialSession.getExtension(player).getStage();
if (button >= 38 && button<= 44 || button >= 20 && button <= 26) {
player.getInterfaceManager().setCurrentTabIndex(getTabIndex(button));
}
break;
case 38://attack tab
if (tut_stage == 49) {
player.getConfigManager().set(1021, 0);
TutorialStage.load(player, 50, false);
} else {
if (TutorialSession.getExtension(player).getStage() > TutorialSession.MAX_STAGE) {
if (player.getExtension(WeaponInterface.class) == WeaponInterfaces.STAFF) {
final Component c = new Component(WeaponInterfaces.STAFF.getInterfaceId());
player.getInterfaceManager().openTab(0, c);
final WeaponInterface inter = player.getExtension(WeaponInterface.class);
inter.updateInterface();
//Interface buttons that advance the Tutorial Island stages
switch (button) {
case 21://Friends Tab
if (tut_stage == 63) {
player.getConfigManager().set(1021, 0);
TutorialStage.load(player, 64, false);
}
break;
case 22://Ignore Tab
if (tut_stage == 64) {
player.getConfigManager().set(1021, 0);
TutorialStage.load(player, 65, false);
}
break;
case 24://Settings Tab
if (tut_stage == 1) {
TutorialStage.load(player, 2, false);
}
break;
case 25://Emotes Tab
if (tut_stage == 23) {
TutorialStage.load(player, 24, false);
}
break;
case 26://Music Tab
if (tut_stage == 21) {
TutorialStage.load(player, 22, false);
}
break;
case 38://Attack Tab
if (tut_stage == 49) {
player.getConfigManager().set(1021, 0);
TutorialStage.load(player, 50, false);
} else {
if (TutorialSession.getExtension(player).getStage() > TutorialSession.MAX_STAGE) {
if (player.getExtension(WeaponInterface.class) == WeaponInterfaces.STAFF) {
final Component c = new Component(WeaponInterfaces.STAFF.getInterfaceId());
player.getInterfaceManager().openTab(0, c);
final WeaponInterface inter = player.getExtension(WeaponInterface.class);
inter.updateInterface();
}
}
}
break;
case 39://Skill Tab
if (tut_stage == 10) {
player.getConfigManager().set(1021, 0);
TutorialStage.load(player, 11, false);
}
break;
case 40://Quest Tab
if (tut_stage == 27) {
TutorialStage.load(player, 28, false);
}
}
}
break;
case 39://skill tab
if (tut_stage == 10) {
player.getConfigManager().set(1021, 0);
TutorialStage.load(player, 11, false);
}
break;
case 40://quest tab
if (tut_stage == 27) {
TutorialStage.load(player, 28, false);
}
/*if (GameWorld.isEconomyWorld()) {
player.getQuestRepository().syncronizeTab(player);
} else {
player.getSavedData().getSpawnData().drawStatsTab(player);
}*/
player.getQuestRepository().syncronizeTab(player);
break;
case 41://invy tab
if (tut_stage == 5) {
player.getConfigManager().set(1021, 0);
TutorialStage.load(player, 6, false);
player.getQuestRepository().syncronizeTab(player);
break;
case 41://Inventory Tab
if (tut_stage == 5) {
player.getConfigManager().set(1021, 0);
TutorialStage.load(player, 6, false);
}
player.getInventory().refresh();
break;
case 42://Worn Equipment Tab
if (tut_stage == 45) {
player.getConfigManager().set(1021, 0);
TutorialStage.load(player, 46, false);
}
break;
case 43://Prayer Tab
if (tut_stage == 61) {
player.getConfigManager().set(1021, 0);
TutorialStage.load(player, 62, false);
}
break;
case 44://Magic Tab
if (tut_stage == 68) {
player.getConfigManager().set(1021, 0);
TutorialStage.load(player, 69, false);
player.getDialogueInterpreter().open(946, RegionManager.getNpc(player, 946));
}
break;
case 66://World map
case 110:
configureWorldMap(player);
break;
case 69://Logout
player.getPacketDispatch().sendString("When you have finished playing " + GameWorld.getName() + ", always use the button below to logout safely. ", 182, 0);
break;
}
player.getInventory().refresh();
break;
case 42://equipment tab
if (tut_stage == 45) {
player.getConfigManager().set(1021, 0);
TutorialStage.load(player, 46, false);
return true;
case 750:
switch (opcode) {
case 155:
switch (button) {
case 1:
player.getSettings().toggleRun();
break;
}
break;
}
break;
case 43://prayer tab
if (tut_stage == 61) {
player.getConfigManager().set(1021, 0);
TutorialStage.load(player, 62, false);
}
break;
case 44://magic tab
if (tut_stage == 68) {
player.getConfigManager().set(1021, 0);
TutorialStage.load(player, 69, false);
player.getDialogueInterpreter().open(946, RegionManager.getNpc(player, 946));
return true;
case 751:
switch (opcode) {
case 155:
switch (button) {
case 27:
openReport(player);
break;
}
break;
}
break;
case 66: // World map
case 110:
configureWorldMap(player);
break;
case 69://Logout
player.getPacketDispatch().sendString("When you have finished playing " + GameWorld.getName() + ", always use the button below to logout safely. ", 182, 0);
break;
}
return true;
case 750:
switch (opcode) {
case 155:
switch (button) {
case 1:
player.getSettings().toggleRun();
break;
}
break;
}
return true;
case 751:
switch (opcode) {
case 155:
switch (button) {
case 27:
openReport(player);
break;
}
break;
}
return true;
return true;
}
return true;
}
@ -176,10 +187,10 @@ public final class GameInterface extends ComponentPlugin {
*/
public static void openReport(final Player player) {
player.getInterfaceManager().open(new Component(553)).setCloseEvent((player1, c) -> {
player1.getPacketDispatch().sendRunScript(80, "");
player1.getPacketDispatch().sendRunScript(137, "");
return true;
});
player1.getPacketDispatch().sendRunScript(80, "");
player1.getPacketDispatch().sendRunScript(137, "");
return true;
});
player.getPacketDispatch().sendRunScript(508, "");
if (player.getDetails().getRights() != Rights.REGULAR_PLAYER) {
for (int i = 0; i < 18; i++) {
@ -200,7 +211,7 @@ public final class GameInterface extends ComponentPlugin {
}
return tabIndex;
}
/**
* Configures the world map for a player.
* @param player The player.

View file

@ -27,9 +27,13 @@ public class BasicStarter implements Plugin<Player> {
@Override
public Plugin<Player> newInstance(Player player) throws Throwable {
if (player.getDetails().getLastLogin() == 0) {
for (int[] item : STARTER_ITEMS) {
//Redundant if the Tutorial Completion Dialogue is going to clear the bank, inventory and equipment after teleporting to Lumbridge.
//Causes a full inventory on tutorial island when the instructors are giving the player more items.
//The Starter pack array exists in the TutorialCompletionDialogue file... So could this file be deleted?
/*for (int[] item : STARTER_ITEMS) {
player.getInventory().add(new Item(item[0], item[1]));
}
}*/
}
return this;
}