Skip to content
This repository was archived by the owner on Sep 7, 2022. It is now read-only.

Commit 9c5e99c

Browse files
committed
0.4P3 update
1 parent 50fb632 commit 9c5e99c

5 files changed

Lines changed: 99 additions & 17 deletions

File tree

src/main/java/pw/ipex/plex/Plex.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ public class Plex {
3333
public static final String MODID = "PolyEdge_Plex";
3434
public static final String VERSION = "0.4";
3535
public static final String PATCHID = "PATCH_3";
36-
public static final String RELEASENOTICE = "Welcome to Plex 0.4!";
36+
public static final String RELEASENOTICE = "Welcome to 0.4!";
3737

3838
public static Minecraft minecraft = Minecraft.getMinecraft();
3939
public static Configuration config;

src/main/java/pw/ipex/plex/mods/autogg/PlexAutoGGMessage.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ public void listItemSelect() {
2626

2727
@Override
2828
public void listItemClick() {
29-
this.selected = true;
29+
this.selected = !this.selected;
3030
}
3131

3232
@Override

src/main/java/pw/ipex/plex/mods/autogg/PlexAutoGGUI.java

Lines changed: 94 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,16 @@
33
import net.minecraft.client.gui.GuiButton;
44
import pw.ipex.plex.Plex;
55
import pw.ipex.plex.core.PlexCore;
6+
import pw.ipex.plex.core.PlexCoreUtils;
67
import pw.ipex.plex.ui.PlexUIBase;
78
import pw.ipex.plex.ui.PlexUIModMenuScreen;
89
import pw.ipex.plex.ui.widget.PlexUISlider;
910
import pw.ipex.plex.ui.widget.PlexUITextField;
11+
import pw.ipex.plex.ui.widget.autocomplete.PlexUIAutoCompleteItem;
1012
import pw.ipex.plex.ui.widget.itemlist.PlexUIScrolledItemList;
1113

14+
import java.util.List;
15+
1216
public class PlexAutoGGUI extends PlexUIBase {
1317
public PlexUIScrolledItemList ggMessagesList;
1418
public PlexUITextField ggMessageEdit;
@@ -44,10 +48,13 @@ public void uiAddButtons(PlexUIModMenuScreen ui) {
4448

4549
this.ggMessageEdit = new PlexUITextField(9, Plex.minecraft.fontRendererObj, pane1Pos + 5, top + 154, paneSize * 2 - 5 - 3 - 20 - 3 - 20 - 5, 20);
4650
this.ggMessageEdit.text.setMaxStringLength(100);
51+
this.ggMessageEdit.text.setCanLoseFocus(false);
52+
this.ggMessageEdit.text.setFocused(true);
4753

4854
ui.addElement(this.newGGButton = new GuiButton(10, pane2Pos + paneSize - 20 - 20 - 3 - 5, top + 154, 20, 20, "+"));
4955
ui.addElement(this.removeGGButton = new GuiButton(11, pane2Pos + paneSize - 20 - 5, top + 154, 20, 20, "-"));
5056

57+
this.deselectAll();
5158
this.updateSelectedItem();
5259
}
5360

@@ -69,7 +76,6 @@ public void updateSelectedItem() {
6976
PlexAutoGGMessage selectedMessage = this.getSelectedItem();
7077
if (selectedMessage == null) {
7178
this.ggMessageEdit.text.setText("");
72-
this.ggMessageEdit.text.setEnabled(false);
7379
this.removeGGButton.enabled = false;
7480
this.oldSelectedMessage = null;
7581
return;
@@ -88,6 +94,78 @@ public void deselectAll() {
8894
message.selected = false;
8995
}
9096
}
97+
98+
public void newItem() {
99+
PlexAutoGGMod modInstance = PlexCore.modInstance(PlexAutoGGMod.class);
100+
PlexAutoGGMessage newMessage = new PlexAutoGGMessage(this.ggMessageEdit.text.getText());
101+
this.deselectAll();
102+
newMessage.selected = true;
103+
modInstance.ggMessages.add(newMessage);
104+
this.ggMessagesList.scrollToItemIfNotCompletelyInView(newMessage);
105+
}
106+
107+
public void deleteItem(PlexAutoGGMessage message) {
108+
PlexAutoGGMod modInstance = PlexCore.modInstance(PlexAutoGGMod.class);
109+
if (message == null) {
110+
return;
111+
}
112+
PlexAutoGGMessage messageBefore = null;
113+
PlexAutoGGMessage messageAfter = null;
114+
boolean messageFound = false;
115+
for (PlexAutoGGMessage ggMessage : modInstance.ggMessages) {
116+
if (ggMessage == message) {
117+
messageFound = true;
118+
continue;
119+
}
120+
if (!messageFound) {
121+
messageBefore = ggMessage;
122+
}
123+
else {
124+
messageAfter = ggMessage;
125+
}
126+
if (messageFound && messageAfter != null) {
127+
break;
128+
}
129+
}
130+
modInstance.ggMessages.remove(message);
131+
deselectAll();
132+
PlexAutoGGMessage newSelectedMessage = null;
133+
if (messageAfter != null) {
134+
newSelectedMessage = messageAfter;
135+
}
136+
else if (messageBefore != null) {
137+
newSelectedMessage = messageBefore;
138+
}
139+
140+
if (newSelectedMessage != null) {
141+
newSelectedMessage.selected = true;
142+
this.ggMessagesList.scrollToItemIfNotCompletelyInView(newSelectedMessage);
143+
}
144+
}
145+
146+
public void moveSelection(int indexes) {
147+
PlexAutoGGMod modInstance = PlexCore.modInstance(PlexAutoGGMod.class);
148+
List<PlexAutoGGMessage> messages = modInstance.ggMessages;
149+
if (messages.size() == 0) {
150+
return;
151+
}
152+
153+
PlexAutoGGMessage selectedItem = this.getSelectedItem();
154+
if (selectedItem == null) {
155+
selectedItem = messages.get(0);
156+
}
157+
selectedItem.selected = false;
158+
159+
int selectedIndex = -1;
160+
for (int itemIndex = 0; itemIndex < messages.size(); itemIndex++) {
161+
if (messages.get(itemIndex) == selectedItem) {
162+
selectedIndex = itemIndex;
163+
}
164+
}
165+
selectedIndex = PlexCoreUtils.clamp(selectedIndex + indexes, 0, messages.size() - 1);
166+
messages.get(selectedIndex).selected = true;
167+
this.ggMessagesList.scrollToItemIfNotCompletelyInView(messages.get(selectedIndex));
168+
}
91169

92170
@Override
93171
public void mouseClicked(int par1, int par2, int btn) {
@@ -119,7 +197,19 @@ public void updateScreen() {
119197

120198
@Override
121199
public void keyTyped(char par1, int par2) {
122-
this.ggMessageEdit.keyTyped(par1, par2);
200+
if (par2 == 200) {
201+
this.moveSelection(-1);
202+
}
203+
else if (par2 == 208) {
204+
this.moveSelection(1);
205+
}
206+
else if (par2 == 28) {
207+
this.newItem();
208+
}
209+
else {
210+
this.ggMessageEdit.keyTyped(par1, par2);
211+
}
212+
this.updateSelectedItem();
123213
PlexAutoGGMessage selectedMessage = this.getSelectedItem();
124214
if (selectedMessage != null) {
125215
selectedMessage.message = this.ggMessageEdit.text.getText();
@@ -186,18 +276,10 @@ public void uiButtonClicked(GuiButton button) {
186276
button.displayString = this.ggModeDisplayString();
187277
}
188278
if (button.id == 10) {
189-
this.deselectAll();
190-
PlexAutoGGMessage newMessage = new PlexAutoGGMessage("gg");
191-
newMessage.selected = true;
192-
modInstance.ggMessages.add(newMessage);
279+
this.newItem();
193280
}
194281
if (button.id == 11) {
195-
PlexAutoGGMessage selectedMessage = this.getSelectedItem();
196-
if (selectedMessage == null) {
197-
return;
198-
}
199-
selectedMessage.selected = false;
200-
modInstance.ggMessages.remove(selectedMessage);
282+
this.deleteItem(this.getSelectedItem());
201283
}
202284
this.updateSelectedItem();
203285
}

src/main/java/pw/ipex/plex/mods/messagingscreen/translate/PlexMessagingChatMessageConstructor.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@ public class PlexMessagingChatMessageConstructor {
2727
addAdapter("party", "party_disband", "&7The party was disbanded.", "@Party");
2828
addAdapter("party", "party_invite_local", "&7Party invite from &e{sender}&7:\n{{ACCEPT_BUTTON|&a&lACCEPT}} {{DENY_BUTTON|&c&lDENY}}", "@Party").addMessageTag("invitation_sender_ign", "{sender}").setUsesFormatRegions(true).addCallback(new PlexMessagingMessageEventParty());
2929
addAdapter("party", "party_invite", "&7Party invite from &e{sender}&7 in &e{server}&7:\n{{ACCEPT_BUTTON|&a&lACCEPT}} {{DENY_BUTTON|&c&lDENY}}", "@Party").addMessageTag("invitation_sender_ign", "{sender}").setUsesFormatRegions(true).addCallback(new PlexMessagingMessageEventParty());
30-
addAdapter("party", "party_invite_search", "&Party invite sent to &e{invited_player}&7.", "@Party");
31-
addAdapter("party", "party_invite_sent", "&Invited &e{invited_player}&7 to the party.", "@Party");
30+
addAdapter("party", "party_invite_search", "&7Party invite sent to &e{invited_player}&7.", "@Party");
31+
addAdapter("party", "party_invite_sent", "&7Invited &e{invited_player}&7 to the party.", "@Party");
3232
addAdapter("party", "party_join", "&e{ign} &7joined the party.", "@Party");
3333
//addAdapter("party", "party_join", "&e{ign} &7joined the party.", "@Party").condition("{ign} !equals " + PlexCore.getPlayerIGN());
3434
//addAdapter("party", "party_join", "&e{ign} &7joined the party.", "@Party").condition("{ign} equals " + PlexCore.getPlayerIGN()).setChannelOpenedRequired(true);

src/main/java/pw/ipex/plex/ui/widget/itemlist/PlexUIScrolledItemList.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -360,8 +360,8 @@ public void mouseClicked(int par1, int par2, int btn) {
360360
item.listItemOtherItemClicked();
361361
}
362362
}
363-
hoverItem.listItemSelect();
364363
hoverItem.listItemClick();
364+
hoverItem.listItemSelect();
365365
}
366366
}
367367

0 commit comments

Comments
 (0)