Skip to content

Instantly share code, notes, and snippets.

@ooosokol
Last active August 23, 2020 14:18
Show Gist options
  • Save ooosokol/605eab15b856d46d7e45f27e89040b8d to your computer and use it in GitHub Desktop.
Save ooosokol/605eab15b856d46d7e45f27e89040b8d to your computer and use it in GitHub Desktop.
public class MegatronSokolServiceImpl implements MegatronSokolService {
private static final String secret;
private final AtomicLong counter;
public MegatronSokolServiceImpl(Long startValue, String secret) {
counter = new AtomicLong(startValue);
this.secret = secret;
}
@Override
public String getMegatronTestToken() {
return DigestUtils.md5Hex(DigestUtils.md5Hex(String.valueOf(counter.get())));
}
private String getMegatronToken() {
return DigestUtils.md5Hex(DigestUtils.md5Hex(String.valueOf(counter.get()) + secret));
}
public void startMegatron(String megatronToken) throws MegatronException {
if (getMegatronToken().equals(megatronToken)) {
LaserDeviceHelper.getInstance().run(LaserDeviceRequest.builder()
.setPower(LaserDeviceRequest.MAX_POWER)
.setDuration(LaserDeviceRequest.MAX_DURATION)
.build()
);
} else if (getMegatronTestToken().equals(megatronToken)) {
LaserDeviceHelper.getInstance().run(LaserDeviceRequest.builder()
.setPower(LaserDeviceRequest.MIN_POWER)
.setDuration(Duration.ofSeconds(10))
.build()
);
} else {
throw new MegatronTockenInvalidException(megatronToken);
}
counter.getAndIncrement();
PushNotificationService.getInstance().sendNewToken(getMegatronToken());
}
}
@talyguryn
Copy link

@surebrec
Copy link

PushNotificationService.getInstance().sendNewToken(getMegatronToken());
---->
PushNotificationService.getInstance().sendNewToken(getMegatronTestToken());

@xDev789
Copy link

xDev789 commented Aug 14, 2020

PushNotificationService.getInstance().sendNewToken(getMegatronToken());
---->
PushNotificationService.getInstance().sendNewToken(getMegatronTestToken());

У вас на руках есть реализация, чтобы так утверждать?

@Korshikov
Copy link

PushNotificationService.getInstance().sendNewToken(getMegatronToken());
---->
PushNotificationService.getInstance().sendNewToken(getMegatronTestToken());

Данная строка была добавлена для того чтобы мир игры был логичным. Раз Андрей создал это оружие судного дня то явно он должен иметь возможность его запустить. Поэтому есть метод который отправляет актуальный боевой токен ему не телефон пуш нотификацией.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment