essential-actions
Clone or download
Modified Files
Binary files 'a/PreBuiltPlugins/twitch-chat-connect.jar' and b/PreBuiltPlugins/twitch-chat-connect.jar differ
Binary files 'a/PreBuiltPlugins/twitch-send-channel-msg.jar' and b/PreBuiltPlugins/twitch-send-channel-msg.jar differ
--- 'a/twitch/send-channel-msg/src/main/java/sendchannelmsg/SendChannelMessageAction.java'
+++ b/twitch/send-channel-msg/src/main/java/sendchannelmsg/SendChannelMessageAction.java
@@ -9,6 +9,9 @@ import com.stream_pi.util.exception.Stre
import com.stream_pi.util.version.Version;
import connect.chat.TwitchChatCredentials;
+import static connect.chat.TwitchChatCredentials.DEFAULT_TWITCH_NICKNAME;
+import static connect.chat.TwitchChatCredentials.DEFAULT_TWITCH_TOKEN;
+
public class SendChannelMessageAction extends NormalAction
{
@@ -90,12 +93,12 @@ public class SendChannelMessageAction ex
final String twitchNickname = credentials.getNickname();
boolean isNicknameInitialized = twitchNickname != null &&
!twitchNickname.isEmpty() &&
- !twitchNickname.equalsIgnoreCase("twitch_nickname");
+ !twitchNickname.equalsIgnoreCase(DEFAULT_TWITCH_NICKNAME);
final String twitchChatOauthToken = credentials.getOauthToken();
boolean isTokenInitialized = twitchChatOauthToken != null &&
!twitchChatOauthToken.isEmpty() &&
- !twitchChatOauthToken.equalsIgnoreCase("twitch_oauth_token");
+ !twitchChatOauthToken.equalsIgnoreCase(DEFAULT_TWITCH_TOKEN);
return isNicknameInitialized && isTokenInitialized;
}
--- 'a/twitch/twitch-chat-connect/src/main/java/connect/TwitchChatConnectAction.java'
+++ b/twitch/twitch-chat-connect/src/main/java/connect/TwitchChatConnectAction.java
@@ -16,7 +16,7 @@ public class TwitchChatConnectAction ext
private static final String TWITCH_ACCESS_TOKEN_KEY = "twitch_access_token";
private static final String TWITCH_NICKNAME_KEY = "twitch_nickname";
- private final Button saveCredentialsBtn;
+ private final Button clearCredentialsBtn;
public TwitchChatConnectAction()
{
@@ -27,61 +27,64 @@ public class TwitchChatConnectAction ext
setVersion(new Version(1, 0, 0));
setHelpLink("https://github.com/Stream-Pi/essentialactions");
- saveCredentialsBtn = new Button("Save Twitch chat credentials");
- setButtonBar(saveCredentialsBtn);
+ clearCredentialsBtn = new Button("Clear Twitch chat credentials");
+ onClearCredentials();
+ setButtonBar(clearCredentialsBtn);
}
@Override
- public void initProperties() throws Exception
+ public void initProperties()
{
Property twitchNicknameProp = new Property(TWITCH_NICKNAME_KEY, Type.STRING);
twitchNicknameProp.setDisplayName("Twitch Username");
- twitchNicknameProp.setDefaultValueStr("twitch_nickname");
- twitchNicknameProp.setCanBeBlank(false);
Property twitchAccessTokenProp = new Property(TWITCH_ACCESS_TOKEN_KEY, Type.STRING);
twitchAccessTokenProp.setDisplayName("Access Token");
- twitchAccessTokenProp.setDefaultValueStr("twitch_oauth_token");
- twitchAccessTokenProp.setCanBeBlank(false);
addServerProperties(twitchNicknameProp, twitchAccessTokenProp);
}
@Override
- public void initAction() throws Exception
+ public void initAction() throws MinorException
{
- saveCredentialsBtn.setOnAction(action ->
+ clearCredentialsBtn.setDisable(isEmptyCredentials());
+
+ TwitchChatCredentials.setCredentials(
+ new TwitchChatCredentials.ChatCredentials()
+ .setOauthToken(getServerProperties().getSingleProperty(TWITCH_ACCESS_TOKEN_KEY).getStringValue())
+ .setNickname(getServerProperties().getSingleProperty(TWITCH_NICKNAME_KEY).getStringValue()));
+ }
+
+ private boolean isEmptyCredentials() throws MinorException {
+ final String twitchNickname = getServerProperties().getSingleProperty(TWITCH_NICKNAME_KEY).getStringValue();
+ final String twitchChatOauthToken = getServerProperties().getSingleProperty(TWITCH_ACCESS_TOKEN_KEY).getStringValue();
+ return (twitchNickname == null || twitchNickname.isEmpty()) &&
+ (twitchChatOauthToken == null || twitchChatOauthToken.isEmpty());
+ }
+
+ private void onClearCredentials()
+ {
+ clearCredentialsBtn.setOnAction(action ->
{
try
{
- persistCredentials();
-
+ getServerProperties().getSingleProperty(TWITCH_ACCESS_TOKEN_KEY).setStringValue("");
+ getServerProperties().getSingleProperty(TWITCH_NICKNAME_KEY).setStringValue("");
+ saveServerProperties();
new StreamPiAlert(
- "Twitch chat credentials saved",
- "Chat credentials been saved, you can now start using Twitch chat integration actions.",
+ "Twitch chat credentials cleared",
+ "To revoke token access, disconnect \"Twitch Chat OAuth Token Generator\" from your Twitch settings (https://www.twitch.tv/settings/connections).",
StreamPiAlertType.INFORMATION)
.show();
} catch (Exception e)
{
new StreamPiAlert(
"Failed to save chat credentials",
- "An error has occurred while saving chat credentials, please try again.",
+ "An error has occurred while clearing chat credentials, please try again.",
StreamPiAlertType.WARNING)
.show();
}
});
-
- persistCredentials();
- }
-
- private void persistCredentials() throws MinorException
- {
- final String token = getServerProperties().getSingleProperty(TWITCH_ACCESS_TOKEN_KEY).getStringValue();
- final String nickname = getServerProperties().getSingleProperty(TWITCH_NICKNAME_KEY).getStringValue();
- TwitchChatCredentials.setCredentials(
- new TwitchChatCredentials.ChatCredentials()
- .setOauthToken(token)
- .setNickname(nickname));
}
@Override
--- 'a/twitch/twitch-chat-connect/src/main/java/connect/chat/TwitchChatCredentials.java'
+++ b/twitch/twitch-chat-connect/src/main/java/connect/chat/TwitchChatCredentials.java
@@ -2,6 +2,8 @@ package connect.chat;
public final class TwitchChatCredentials
{
+ public static final String DEFAULT_TWITCH_NICKNAME = "twitch_username";
+ public static final String DEFAULT_TWITCH_TOKEN = "twitch_token";
private static ChatCredentials credentials;